DMA drivers

Hello all
I have written a driver for a digital video
broadcasting device, which has 4 channels
for video broadcasting (uses card DMA).
Here i am( driver) allocating Kernel buffer
and giving pointers to
application,application is filling data and
sending a request to empty
that buffer so i am doing Bus master DMA
here ( for data transfer)
My doubt is, is it possible to do same bus
master DMA using my device DMA controller
when user allocates buffers and give it to
me.(this
experiment is for reducing memory
consumption,now the driver is allocating
memory for all the channel in DriverEntry )

thanks
shiva


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> My doubt is, is it possible to do same bus

master DMA using my device DMA controller
when user allocates buffers and give it to
me.(this

Surely.
Take the MDL which is the user buffer and pass it to ->MapTransfer
or ->GetScatterGatherList functions.

They will call the specified callback routine of yours, it will have the
information about the physical addresses underlying these pages and you will
be able to program your hardware using it.
Note that there is no guarantee that these physical addresses are
contiguous. Will your hardware tolerate this?

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com