diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2006-12-29 19:49:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-30 13:56:43 -0500 |
commit | 242ce41fc92214c3430495edd43783c3ba3dcd2b (patch) | |
tree | e550962d9ee6706ebdf8c49f1165428b0e63ecdc | |
parent | 755cd90029b61b96816b8ac0ab6a33a197f842d0 (diff) |
[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>
-rw-r--r-- | drivers/ide/pci/piix.c | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c index b1e9a8eba6b6..8ecd2d668dba 100644 --- a/drivers/ide/pci/piix.c +++ b/drivers/ide/pci/piix.c | |||
@@ -353,33 +353,6 @@ static int piix_tune_chipset (ide_drive_t *drive, u8 xferspeed) | |||
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 | * piix_config_drive_for_dma - configure drive for DMA | 356 | * piix_config_drive_for_dma - configure drive for DMA |
384 | * @drive: IDE drive to configure | 357 | * @drive: IDE drive to configure |
385 | * | 358 | * |
@@ -391,10 +364,6 @@ static int piix_faulty_dma0(ide_hwif_t *hwif) | |||
391 | static int piix_config_drive_for_dma (ide_drive_t *drive) | 364 | static int piix_config_drive_for_dma (ide_drive_t *drive) |
392 | { | 365 | { |
393 | u8 speed = ide_dma_speed(drive, piix_ratemask(drive)); | 366 | u8 speed = ide_dma_speed(drive, piix_ratemask(drive)); |
394 | |||
395 | /* Some ICH devices cannot support DMA mode 0 */ | ||
396 | if(speed == XFER_MW_DMA_0 && piix_faulty_dma0(HWIF(drive))) | ||
397 | speed = 0; | ||
398 | 367 | ||
399 | /* If no DMA speed was available or the chipset has DMA bugs | 368 | /* If no DMA speed was available or the chipset has DMA bugs |
400 | then disable DMA and use PIO */ | 369 | then disable DMA and use PIO */ |