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
