Skip to content

Commit

Permalink
hpt34x: fix CONFIG_HPT34X_AUTODMA=n handling
Browse files Browse the repository at this point in the history
Programming DMA mode may destroy current PIO mode setting so if
CONFIG_HPT34X_AUTODMA=n (the default case) make ide_tune_dma() fail
early by disabling all host DMA masks and re-tune PIO mode.

This fix doesn't help with the driver being broken but is needed
for some other changes.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Aug 20, 2007
1 parent 88b4704 commit 76e1faa
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions drivers/ide/pci/hpt34x.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,7 @@ static int hpt34x_config_drive_xfer_rate (ide_drive_t *drive)
drive->init_speed = 0;

if (ide_tune_dma(drive))
#ifndef CONFIG_HPT34X_AUTODMA
return -1;
#else
return 0;
#endif

if (ide_use_fast_pio(drive))
hpt34x_tune_drive(drive, 255);
Expand Down Expand Up @@ -160,9 +156,11 @@ static void __devinit init_hwif_hpt34x(ide_hwif_t *hwif)
if (!hwif->dma_base)
return;

#ifdef CONFIG_HPT34X_AUTODMA
hwif->ultra_mask = 0x07;
hwif->mwdma_mask = 0x07;
hwif->swdma_mask = 0x07;
#endif

hwif->ide_dma_check = &hpt34x_config_drive_xfer_rate;
if (!noautodma)
Expand Down

0 comments on commit 76e1faa

Please sign in to comment.