Messages in this thread | | | From | Bartlomiej Zolnierkiewicz <> | Subject | Re: Any guides for adding new IDE chipset drivers? | Date | Tue, 17 Feb 2004 20:10:34 +0100 |
| |
On Tuesday 17 of February 2004 15:27, Alex Bennee wrote: > On Monday 16 of Febuary 2004 09:40:21 PST, Bart wrote: > >On Monday 16 of February 2004 18:04, Alex Bennee wrote: > >> Is there a driver that can be held of as an example of good taste and > >> the "right" way to implement a chipset driver? > > > >Yep. Please take a look at drivers/ide/arm/icside.c. > >It is well written, quite simple and has DMA support. > > Thanks. I'll base my driver on this one as it does seem quite easy > to follow. However I'm wondering what the point of the begin/end functions > are. The dma_read/write functions just seem to call dma_count which starts > the dma requests going.
hwif->ide_dma_count() is gone in 2.6.3-rc4.
ATAPI drivers (ie. ide-cd.c) and TCQ code (ide-tcq.c) use ->ide_dma_begin() and ->ide_dma_end() directly.
DMA timeout recovery functions also call ->ide_dma_end().
> Am I missing something here? Is all that required from the higher level a > single call to dma_read/write or should I be expecting a series of calls to > setup a transfer?
To setup a DMA transfer:
ATA: ->ide_dma_{read,write}() (they call ->ide_dma_begin()) or __ide_dma_queued_{read,write}() (they may call ->ide_dma_begin())
ATAPI: ->ide_dma_{read,write}() + ->ide_dma_begin()
Hope this helps.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |