aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2006-12-29 19:49:18 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-30 13:56:43 -0500
commit242ce41fc92214c3430495edd43783c3ba3dcd2b (patch)
treee550962d9ee6706ebdf8c49f1165428b0e63ecdc /drivers/ide
parent755cd90029b61b96816b8ac0ab6a33a197f842d0 (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>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/pci/piix.c31
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
369static 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)
391static int piix_config_drive_for_dma (ide_drive_t *drive) 364static 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 */