Misbah khan wrote:
> 
> 
> Scott Wood-2 wrote:
>> 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.

>> /* 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.

>>              {
>>                      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
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to