Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76e1faa7 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 88b47040
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -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)