hpt34x: fix CONFIG_HPT34X_AUTODMA=n handling
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>
This commit is contained in:
parent
88b47040f8
commit
76e1faa7cf
1 changed files with 2 additions and 4 deletions
|
@ -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);
|
||||
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue