mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 02:40:54 +07:00
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
@ -89,11 +89,7 @@ static int hpt34x_config_drive_xfer_rate (ide_drive_t *drive)
|
|||||||
drive->init_speed = 0;
|
drive->init_speed = 0;
|
||||||
|
|
||||||
if (ide_tune_dma(drive))
|
if (ide_tune_dma(drive))
|
||||||
#ifndef CONFIG_HPT34X_AUTODMA
|
|
||||||
return -1;
|
return -1;
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (ide_use_fast_pio(drive))
|
if (ide_use_fast_pio(drive))
|
||||||
hpt34x_tune_drive(drive, 255);
|
hpt34x_tune_drive(drive, 255);
|
||||||
@ -160,9 +156,11 @@ static void __devinit init_hwif_hpt34x(ide_hwif_t *hwif)
|
|||||||
if (!hwif->dma_base)
|
if (!hwif->dma_base)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifdef CONFIG_HPT34X_AUTODMA
|
||||||
hwif->ultra_mask = 0x07;
|
hwif->ultra_mask = 0x07;
|
||||||
hwif->mwdma_mask = 0x07;
|
hwif->mwdma_mask = 0x07;
|
||||||
hwif->swdma_mask = 0x07;
|
hwif->swdma_mask = 0x07;
|
||||||
|
#endif
|
||||||
|
|
||||||
hwif->ide_dma_check = &hpt34x_config_drive_xfer_rate;
|
hwif->ide_dma_check = &hpt34x_config_drive_xfer_rate;
|
||||||
if (!noautodma)
|
if (!noautodma)
|
||||||
|
Loading…
Reference in New Issue
Block a user