Thread (12 messages) 12 messages, 5 authors, 2007-10-04

Re: Is it safe to use these Linux function (test_bit(), set_bit(), clear_bit()) in character device driver for 2.6.10 ppc kernel.

From: Scott Wood <hidden>
Date: 2007-09-28 16:10:01

Misbah khan wrote:

Scott Wood-2 wrote:
quoted
They're used all over the place.  Is there anything about them that you 
find suspect?

-Scott

I have devloped a character driver for FPGA which is memory mapped and
using these API's to test a bit , set a bit or to clear a bit in the
memory for eg :-
Please don't use quote markers on newly added text.
quoted
/* poll till data is transfered from sdram to dpram */
		while((test_bit(DFR_BUSY,(UINT32 *)(\
			(void *)mmap_reg_ptr + DATA_STATUS_REG))==1)\
			&& (delay < MAX_DELAY_BUSY))
You should use in_be32() rather than direct dereferencing.
quoted
		{
			KDEBUG3(" In the Dfr delay loop \n");
			mdelay(DELAY);
			delay+=DELAY;
		}/* End of while(test_bit(FPGA_BUSY,(void *)register name) */

		if(delay==MAX_DELAY_BUSY)
		{
			KDEBUG1("Out of the the Dfr busy loop \n");
			return -1;
		}

People working for FPGA are sure that they are not making the bit high
where in my driver is returning -1 from the kernel space aborting it after
running for few minutes or so .
I don't suppose the "few minutes" corresponds to MAX_DELAY_BUSY?

-Scott
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help