According to C operator precedence 
((http://www.difranco.net/cop2220/op-prec.htm), the following patch should not 
be needed as operator “<<” has higher precedence than operator “|”.

 

-    XLlDma_mBdWrite((BdPtr), XLLDMA_BD_USR1_OFFSET, (Start) << 16 | (Insert))

+    XLlDma_mBdWrite((BdPtr), XLLDMA_BD_USR1_OFFSET, ((Start) << 16) | 

+ (Insert))

 

Also FYI, the XLlDma_mBdWrite currently is defined in xlldma driver as:

 

#define XLlDma_mBdWrite(BaseAddress, Offset, Data)                \

            (*(u32*)((u32)(BaseAddress) + (u32)(Offset)) = (Data))

 

So I don’t understand why the patch could help.

 

Thanks, 

-Xiaochang

________________________________

From: MingLiu [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 03, 2008 2:29 AM
To: John Bonesio; Johann Baudy
Cc: linuxppc-embedded@ozlabs.org; John Linn; git
Subject: RE: Xilinx LLTEMAC driver issues

 

Dear all,

> The change with the extra parenthesis (in the patch starting with line 133) 
> seems unecessary. I looked at the XLlDma_mBdWrite macro and it appeared to 
> have the correct use of parethesis in the implementation.
> So, assuming there's nothing subtle that I missed, it's not needed. However, 
> it does no harm either.

However it really helps after I tried this patch. So there should be some 
difference after it is used. 
 
One more question, does this mean that the problem is not on the hardware 
timing, but the device driver? 
 
BR
Ming

________________________________

Windows Live Writer,支持离线撰写博客内容,随时随地想写就写。 立即使用! 
<http://get.live.cn/product/writer.html> 

_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to