[LIP] DMA-ACQ-HELP
Kumar V <vhkumar95-/[email protected]>
| Newsgroups | gmane.user-groups.linux.india.programmers |
|---|---|
| Message-ID | <[email protected]> |
Hi All,
I would like to acquire the data through DMA @1kbps
contineously.
I am not able to acquire the data correctly, I am
missing the data.
What would be the reason. From H/W side there is no
problem.
Here Idea is to divide 4k into 128 block of data i.e.
4096/128=32 blocks and I would like to take previously
acquired
block of data. After 4kb it should roll back to
starting, like circular
Q.
Here is the driver code for the same.
Please help me what would be the problem.
Thanks in advance.
Regards
V. Kumar.
*********************************
At open entry
dma_buff = __get_dma_pages(__GFP_DMA, 0); //
1-page(4096 byte)
flags = claim_dma_lock ();
disable_dma (dma_ch);
clear_dma_ff (dma_ch);
set_dma_mode (dma_ch, DMA_MODE_READ | DMA_AUTOINIT);
set_dma_addr (dma_ch, virt_to_bus (dma_buff));
set_dma_count (dma_ch,4096 );
enable_dma (dma_ch);
release_dma_lock (flags);
*******************************
At Read Entry
flags = claim_dma_lock ();
residue = get_dma_residue (dma_ch);
// just to wait for at least 1k bytes to acquire
if (( prev_cntr-residue) < 128 )
{
prevcntr = residue ;
return 0 ;
}
prev_cntr = residue ;
i = 4096 - residue;
// Copying the acquired data to tmp buff of 128 bytes
// mean time DMA can continue the data transfer
start = (int)(i / 128);
start = start * 128;
for (i = 0; i < 128; i++)
tbuff[i] = dma_buff[start + i];
__copy_to_user ((unsigned char *) buf, (unsigned char
*) tbuff,
sizeof (tbuff));
*******************************
__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo
-------------------------------------------------------
This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference
Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer
Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA
REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND