Re: [PATCH 1/2] ide: don't allow DMA to be enabled if CONFIG_IDEDMA_{ICS,PCI}_AUTO=n

Sergei Shtylyov
2008-08-10T16:30:39Z

Hello.

Bartlomiej Zolnierkiewicz wrote:

> [PATCH] ide: don't allow DMA to be enabled if CONFIG_IDEDMA_{ICS,PCI}_AUTO=n

> For CONFIG_IDEDMA_{ICS,PCI}_AUTO=n and/or "ide=nodma" option the host/device

Not only that: it also would affect CompactFlash with no DMA support but
with DMA autotuning enabled in IDE core...

> are not programmed for DMA and it is also explicitly disabled by ide_set_dma()
> (->ide_dma_check returns "-1"). However the code responsible for manually
> enabling DMA ("hdparm -d 1") has a bug which results in DMA being erroneously
> enabled - ide_set_dma() incorrectly passes "0" return value to set_using_dma().

Heh, I've just run into this myself while trying to retro-fit Palmchip
BK3710 IDE driver into 2.6.18 properly.

> This may work if BIOS/firmware configured the host/device for DMA and chipset
> allows independent configuration of DMA/PIO modes but won't work after suspend
> and is generally unsafe on many chipsets (possibly including data corruption
> if the same registers are used for DMA/PIO timings).

Timeouts ensued in my case...

WBR, Sergei