pata_sis: add missing UDMA5 timing value in sis_66_set_dmamode()
sis_66_set_dmamode() also handles early UDMA100 (SIS630 ET) but is missing udma timing value for UDMA100. According to sis5513, this should be 0x8000. This caused UDMA100 device to fail on pata_sis till it downgrades to UDMA66 while it works fine on sis5513 at UDMA100. Reported by Adam Blech. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Adam Blech <desaster.area@addcom.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
228f47b959
commit
edeb614c1c
1 changed files with 2 additions and 1 deletions
|
@ -375,8 +375,9 @@ static void sis_66_set_dmamode (struct ata_port *ap, struct ata_device *adev)
|
|||
int drive_pci = sis_old_port_base(adev);
|
||||
u16 timing;
|
||||
|
||||
/* MWDMA 0-2 and UDMA 0-5 */
|
||||
const u16 mwdma_bits[] = { 0x008, 0x302, 0x301 };
|
||||
const u16 udma_bits[] = { 0xF000, 0xD000, 0xB000, 0xA000, 0x9000};
|
||||
const u16 udma_bits[] = { 0xF000, 0xD000, 0xB000, 0xA000, 0x9000, 0x8000 };
|
||||
|
||||
pci_read_config_word(pdev, drive_pci, &timing);
|
||||
|
||||
|
|
Loading…
Reference in a new issue