Messages in this thread | | | From | Bartlomiej Zolnierkiewicz <> | Subject | Re: [PATCH 2/5] pata_sis: Implement MWDMA for the UDMA 133 capable chips | Date | Tue, 17 Nov 2009 20:33:29 +0100 |
| |
On Tuesday 17 November 2009 19:21:31 Alan Cox wrote: > > > I'm not convinced because for the majority of drivers the libata timing > > > interface handles it. SiS needs it just because it does things by > > > precomputed tables. It's a one off interface. > > > > Controllers based on *Intel* PIIX are in the disagreement with the above > > No the PIIX is quite different. You use the matching PIO timing (which is > a short lookup and shorter code than even a helper function call). You do > not use the clipping instead you set bit 3 to ensure that PIO cycles > occur at low speed but MWDMA runs at the right speed. That is usually a > win over picking a lower mode as the PIIX can do ATAPI DMA happily.
Thank you for the detailed explanation, I certainly would still be scratching my head over it if it wasn't for your great help.
> So the only thing you can "share" is what would be a 4 byte table.
You are of course right, I must have been confused by the old driver.
> > paragraph and having generic helper to do conversion (without a clipping) > > would bring us a little step closer to killing a needless code duplication > > currently present in their ->set_piomode and ->set_dmamode methods. > > > > [ In case somebody wonders: no, 'old' drivers don't have such duplication > > and 'whoever did it didn't port it across' cause said 'whoever'-s were not > > into the development of the square wheels.... ] > > There is no duplication in the old drivers because they don't implement > the needed check and clipping/bit setting that I can see ;)
Seems like the whoever maintained the old driver didn't port across this critical bugfix. :(
-- Bartlomiej Zolnierkiewicz
| |