[PATCH] PIIX: remove check for broken MW DMA mode 0

There's no need to check in piix_config_drive_for_dma() for broken MW DMA
mode 0 as this mode is not supported by the driver (it sets
hwif->mwdma_mask to 0x6), and hence can't be selected by ide_dma_speed().

(Alan sayeth "Probably right but if not you've got a subtle corruptor. Should
at least stick a BUG_ON mode 0 setting right close when the mode is set.")

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Sergei Shtylyov and committed by Linus Torvalds 242ce41f 755cd900

-31
-31
drivers/ide/pci/piix.c
··· 353 353 } 354 354 355 355 /** 356 - * piix_faulty_dma0 - check for DMA0 errata 357 - * @hwif: IDE interface to check 358 - * 359 - * If an ICH/ICH0/ICH2 interface is is operating in multi-word 360 - * DMA mode with 600nS cycle time the IDE PIO prefetch buffer will 361 - * inadvertently provide an extra piece of secondary data to the primary 362 - * device resulting in data corruption. 363 - * 364 - * With such a device this test function returns true. This allows 365 - * our tuning code to follow Intel recommendations and use PIO on 366 - * such devices. 367 - */ 368 - 369 - static int piix_faulty_dma0(ide_hwif_t *hwif) 370 - { 371 - switch(hwif->pci_dev->device) 372 - { 373 - case PCI_DEVICE_ID_INTEL_82801AA_1: /* ICH */ 374 - case PCI_DEVICE_ID_INTEL_82801AB_1: /* ICH0 */ 375 - case PCI_DEVICE_ID_INTEL_82801BA_8: /* ICH2 */ 376 - case PCI_DEVICE_ID_INTEL_82801BA_9: /* ICH2 */ 377 - return 1; 378 - } 379 - return 0; 380 - } 381 - 382 - /** 383 356 * piix_config_drive_for_dma - configure drive for DMA 384 357 * @drive: IDE drive to configure 385 358 * ··· 364 391 static int piix_config_drive_for_dma (ide_drive_t *drive) 365 392 { 366 393 u8 speed = ide_dma_speed(drive, piix_ratemask(drive)); 367 - 368 - /* Some ICH devices cannot support DMA mode 0 */ 369 - if(speed == XFER_MW_DMA_0 && piix_faulty_dma0(HWIF(drive))) 370 - speed = 0; 371 394 372 395 /* If no DMA speed was available or the chipset has DMA bugs 373 396 then disable DMA and use PIO */