On 11/08/11 11:08, Nicolas Pitre wrote: >> + .macro senduart, rd, rx >> +#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS >> + @ Write the 1 character to UARTDM_TF >> + str \rd, [\rx, #0x70] >> +#else >> teq \rx, #0 >> strne \rd, [\rx, #0x0C] >> +#endif >> .endm > Why testing for zero in the #else part? The upper level code should > never call this macro with a null byte. > Ok I poked into the git logs (thanks Bryan). It was first introduced in bcc0f6a ([ARM] msm: clean up iomap and devices, 2008-09-10). It seems that debug_ll support on MSM at the time had to remove the virtual mapping for the uart base. Thus when the MMU was enabled the addruart macro returned 0 and the senduart macro would test for 0 so that senduart could disable debug_ll when the MMU was enabled. Something about "problems with the peripheral window". Later on, the virtual mapping was added back in 6339f66 (msm: make debugging UART (for DEBUG_LL) configurable, 2009-11-02) but the patch forgot to remove the teq. So as it stands the teq has been useless for two years. -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html