> > Ok, there's a combination of things here:
> 
> >  - First, doing a set_pio from userland (hdparm -p XX) causes the kernel
> > to disable DMA, which I think is incorrect.
> 
>     That's the way ide_config_drive_speed() works.

And I still think that's bad.

> > It's not the case with 2.6.22 from my quick tests.
> 
>    Which means that PIO autotuning is broken there, i.e. that 
> ide_config_drive_speed() not called from the driver's tuneproc() method.

Yes, the driver uses it's own function which doesn't disable DMA
permanently, which is, IMHO, the way to go. I consider the current
behaviour a regression.

> > The problem is that ide_config_drive_speed
> > disables DMA, but only re-enables it when setting a DMA speed.
> 
>     It never "re-enables" DMA. ide_dma_host_on() method is not the same as 
> ide_dma_on() which actually enables DMA.

Ugh ? It re-enables DMA in the sense that if called to configure a DMA
speed, it re-enables dma on the host, thus effectively leaving with DMA
enabled.

> > I think
> > the whole idea of having a "current speed" is bogus here, we should have
> > a separate current DMA speed and current PIO speed. We should be able to
> > set the PIO timings without stopping DMA, toggling DMA is a separate
> > affair.
> 
>     Agreed completely.

Ah good :-)

Cheers,
Ben.


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to