I was looking at Viet Hoang's UART1 fix.  Although his fix works, the
root cause of the malfunctioning UART1 is actually a bug in the
MontaVista 2.6.10 kernel's /arch/arm/mach-davinci/serial.c  This bug
probably also affects UART2, though I haven't done any testing with UART2.

The fix is to duplicate the davinci_serial_outp(...) function as a new
function, say davinci_serial_outw(...).  Change the __raw_writeb(...)
command to __raw_write_w(...).  You'll note that the bits to take UART1
out of reset are actually in the upper byte of the short (bits 13 and
14).  Then, modify davinci_serial_reset to use the new
davinci_serial_outw(...) function for the two writes to the UART pwremu
register.

After I got my fix working on the MV kernel, I decided to check the GIT
tree kernel. A similar fix appears to be in place there.  I'm not
running the GIT tree kernel, so I can't test it, but the fix there looks
solid.

Thanks for posting your fix Viet Hoang!  It made debugging this issue
much easier.

-Chris

-- 
This message, including any attachments, contains confidential information 
intended for a specific individual and purpose, and is protected by law. If you 
are not the intended recipient, please contact the sender immediately and 
destroy all copies. You are hereby notified that any disclosure, copying, or 
distribution of this message, or the taking of any action based on it, is 
strictly prohibited.


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to