piix: backport short cables support from ata_piix.c
PATCH 2/5 piix: backport short cables support from ata_piix.c
Backport short cables support from ata_piix.c.
This patch should allow UDMA > 2 modes on:
- Acer 5602WLMi
- Acer 3682WLMi
- Asus W5F
- Acer Aspire 2023WLMi
--- drivers/ide/pci/piix.c | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-)
drivers/ide/pci/piix.c +34 -3
@@ -1,5 +1,5 @@/* -* linux/drivers/ide/pci/piix.c Version 0.47 February 8, 2007 +* linux/drivers/ide/pci/piix.c Version 0.50 Jun 10, 2007 * * Copyright (C) 1998-1999 Andrzej Krzysztofowicz, Author and Maintainer * Copyright (C) 1998-2000 Andre Hedrick <[email protected]>
@@ -394,12 +394,43 @@ static void piix_dma_clear_irq(ide_drive hwif->OUTB (dma_stat, hwif->dma_status); } +struct ich_laptop { +u16 device; +u16 subvendor; +u16 subdevice; +}; + +/* +* List of laptops that use short cables rather than 80 wire +*/ + +static const struct ich_laptop ich_laptop[] = { +/* devid, subvendor, subdev */ + {0x27DF ,0x0005 ,0x0280 },/* ICH7 on Acer 5602WLMi */ + {0x27DF ,0x1025 ,0x0110 },/* ICH7 on Acer 3682WLMi */ + {0x27DF ,0x1043 ,0x1267 },/* ICH7 on Asus W5F */ + {0x24CA ,0x1025 ,0x0061 },/* ICH4 on Acer Aspire 2023WLMi */ +/* end marker */ + {0 , } +}; +static u8 __devinit piix_cable_detect (ide_hwif_t *hwif) { -struct pci_dev *dev = hwif->pci_dev; +struct pci_dev *pdev = hwif->pci_dev; +const struct ich_laptop *lap = &ich_laptop[0 ];u8 reg54h =0 , mask = hwif->channel ?0xc0 :0x30 ; -pci_read_config_byte (dev,0x54 , ®54h); +/* check for specials */ +while (lap->device) { +if (lap->device == pdev->device && + lap->subvendor == pdev->subsystem_vendor && + lap->subdevice == pdev->subsystem_device) { +return ATA_CBL_PATA40_SHORT ; + } + lap++; + } + +pci_read_config_byte (pdev,0x54 , ®54h);return (reg54h & mask) ?ATA_CBL_PATA80 :ATA_CBL_PATA40 ; }
Quoted 9 lines · Bartlomiej Zolnierkiewicz
Backport short cables support from
ata_piix.c.This patch should allow UDMA > 2 modes on:
- Acer 5602WLMi
- Acer 3682WLMi
- Asus W5F
- Acer Aspire 2023WLMiSigned-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Minor nit here:
Quoted 5 lines
Index:
b/drivers/ide/pci/piix.c
===================================================================drivers/ide/pci/piix.c +0
-0@@ -394,12 +394,43 @@ static void piix_dma_clear_irq(ide_drive
[...]
drivers/ide/pci/piix.c static void piix_dma_clear_irq(ide_drive · line 419
Quoted 4 lines
static u8
__devinitpiix_cable_detect(ide_hwif_t *hwif){drivers/ide/pci/piix.c +1
-1-struct pci_dev *dev = hwif->pci_dev; +struct pci_dev *pdev = hwif->pci_dev;
Unnecessary rename.
drivers/ide/pci/piix.c static void piix_dma_clear_irq(ide_drive · line 420
Quoted 1 line
drivers/ide/pci/piix.c +1
-0+const struct ich_laptop *lap = &ich_laptop[0 ];
... and & and [0] are superfluous with arrays -- they behave like pointers
in expression.
MBR, Sergei
Quoted 9 lines · Sergei Shtylyov
Quoted 7 lines · Bartlomiej Zolnierkiewicz
Backport short cables support from
ata_piix.c.This patch should allow UDMA > 2 modes on:
- Acer 5602WLMi
- Acer 3682WLMi
- Asus W5F
- Acer Aspire 2023WLMi
Quoted 3 lines
Quoted 1 line
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>Acked-by Sergei Shtylyov <[email protected]>
Added (as well as ACKs for patches #3-5 of this series).
Quoted 15 lines
Minor nit here:
Quoted 5 lines
Index:
b/drivers/ide/pci/piix.c
===================================================================drivers/ide/pci/piix.c +0
-0@@ -394,12 +394,43 @@ static void piix_dma_clear_irq(ide_drive[...]
drivers/ide/pci/piix.c static void piix_dma_clear_irq(ide_drive · line 419
Quoted 4 lines
static u8
__devinitpiix_cable_detect(ide_hwif_t *hwif){drivers/ide/pci/piix.c +1
-1-struct pci_dev *dev = hwif->pci_dev; +struct pci_dev *pdev = hwif->pci_dev;Unnecessary rename.
Quoted 4 lines
drivers/ide/pci/piix.c static void piix_dma_clear_irq(ide_drive · line 420
Quoted 1 line
drivers/ide/pci/piix.c +1
-0+const struct ich_laptop *lap = &ich_laptop[0 ];... and & and [0] are superfluous with arrays -- they behave like pointers
in expression.
I was blinded by libata code... ;)
Bart