Commit dc9c0beecfeb4866fdbc245c295cf30d340b702c

Authored by Bartlomiej Zolnierkiewicz
Committed by David S. Miller
1 parent 65112dccf8

piix: ICH7 MWDMA1 errata

Based on libata commit c611bed7.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 10 additions and 8 deletions Side-by-side Diff

... ... @@ -331,7 +331,7 @@
331 331 .udma_mask = udma, \
332 332 }
333 333  
334   -#define DECLARE_ICH_DEV(udma) \
  334 +#define DECLARE_ICH_DEV(mwdma, udma) \
335 335 { \
336 336 .name = DRV_NAME, \
337 337 .init_chipset = init_chipset_ich, \
... ... @@ -340,7 +340,7 @@
340 340 .port_ops = &ich_port_ops, \
341 341 .pio_mask = ATA_PIO4, \
342 342 .swdma_mask = ATA_SWDMA2_ONLY, \
343   - .mwdma_mask = ATA_MWDMA12_ONLY, \
  343 + .mwdma_mask = mwdma, \
344 344 .udma_mask = udma, \
345 345 }
346 346  
347 347  
348 348  
... ... @@ -362,13 +362,15 @@
362 362 /* 2: PIIX4 */
363 363 DECLARE_PIIX_DEV(ATA_UDMA2),
364 364 /* 3: ICH0 */
365   - DECLARE_ICH_DEV(ATA_UDMA2),
  365 + DECLARE_ICH_DEV(ATA_MWDMA12_ONLY, ATA_UDMA2),
366 366 /* 4: ICH */
367   - DECLARE_ICH_DEV(ATA_UDMA4),
  367 + DECLARE_ICH_DEV(ATA_MWDMA12_ONLY, ATA_UDMA4),
368 368 /* 5: PIIX4 */
369 369 DECLARE_PIIX_DEV(ATA_UDMA4),
370   - /* 6: ICH[2-7]/ICH[2-3]M/C-ICH/ICH5-SATA/ESB2/ICH8M */
371   - DECLARE_ICH_DEV(ATA_UDMA5),
  370 + /* 6: ICH[2-6]/ICH[2-3]M/C-ICH/ICH5-SATA/ESB2/ICH8M */
  371 + DECLARE_ICH_DEV(ATA_MWDMA12_ONLY, ATA_UDMA5),
  372 + /* 7: ICH7/7-R, no MWDMA1 */
  373 + DECLARE_ICH_DEV(ATA_MWDMA2_ONLY, ATA_UDMA5),
372 374 };
373 375  
374 376 /**
375 377  
... ... @@ -438,9 +440,9 @@
438 440 #endif
439 441 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ESB_2), 6 },
440 442 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH6_19), 6 },
441   - { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH7_21), 6 },
  443 + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH7_21), 7 },
442 444 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_82801DB_1), 6 },
443   - { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ESB2_18), 6 },
  445 + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ESB2_18), 7 },
444 446 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICH8_6), 6 },
445 447 { 0, },
446 448 };