sis5513: backport short cables support from pata_sis.c
Backport short cables support from pata_sis.c. This patch allows UDMA > 2 modes on ASUS A6K. Thanks to testing this patch goes out to Jiri Stavinoha. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
This commit is contained in:
parent
95ba8c17bc
commit
f2befd9e80
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* linux/drivers/ide/pci/sis5513.c Version 0.20 Mar 4, 2007
|
* linux/drivers/ide/pci/sis5513.c Version 0.25 Jun 10, 2007
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999-2000 Andre Hedrick <andre@linux-ide.org>
|
* Copyright (C) 1999-2000 Andre Hedrick <andre@linux-ide.org>
|
||||||
* Copyright (C) 2002 Lionel Bouton <Lionel.Bouton@inet6.fr>, Maintainer
|
* Copyright (C) 2002 Lionel Bouton <Lionel.Bouton@inet6.fr>, Maintainer
|
||||||
|
@ -796,10 +796,33 @@ static unsigned int __devinit init_chipset_sis5513 (struct pci_dev *dev, const c
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct sis_laptop {
|
||||||
|
u16 device;
|
||||||
|
u16 subvendor;
|
||||||
|
u16 subdevice;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct sis_laptop sis_laptop[] = {
|
||||||
|
/* devid, subvendor, subdev */
|
||||||
|
{ 0x5513, 0x1043, 0x1107 }, /* ASUS A6K */
|
||||||
|
/* end marker */
|
||||||
|
{ 0, }
|
||||||
|
};
|
||||||
|
|
||||||
static u8 __devinit ata66_sis5513(ide_hwif_t *hwif)
|
static u8 __devinit ata66_sis5513(ide_hwif_t *hwif)
|
||||||
{
|
{
|
||||||
|
struct pci_dev *pdev = hwif->pci_dev;
|
||||||
|
const struct sis_laptop *lap = &sis_laptop[0];
|
||||||
u8 ata66 = 0;
|
u8 ata66 = 0;
|
||||||
|
|
||||||
|
while (lap->device) {
|
||||||
|
if (lap->device == pdev->device &&
|
||||||
|
lap->subvendor == pdev->subsystem_vendor &&
|
||||||
|
lap->subdevice == pdev->subsystem_device)
|
||||||
|
return ATA_CBL_PATA40_SHORT;
|
||||||
|
lap++;
|
||||||
|
}
|
||||||
|
|
||||||
if (chipset_family >= ATA_133) {
|
if (chipset_family >= ATA_133) {
|
||||||
u16 regw = 0;
|
u16 regw = 0;
|
||||||
u16 reg_addr = hwif->channel ? 0x52: 0x50;
|
u16 reg_addr = hwif->channel ? 0x52: 0x50;
|
||||||
|
|
Loading…
Reference in New Issue