Omanakuttan wrote:
Hi, in kernel 2.4.17, arch/ppc/8260/uart.c contains the following lines in rs_8xx_stop() { .... sccp->scc_sccm &= ~UART_SCCM_TX; .... }
The start/stop functions enable/disable interrupts. Clearing the TX bit in the interrupt mask causes that interrupt to be disabled.
UART_SCCM_TX is defined to 0x00000020 i.e, only the TX bit is 1 Now the manual (MPC8260UM.pdf) states that clearing a bit is 1 for both SCCE and SCCM. Following it, what I understand is the above C statement clears all the bits of ccp->scc_sccm except TX bit.
No, the C statement above leaves all bits set (that were set) except the TX bit.
Then how does it stop the SCC/SCM?
It doesn't stop the SCC, it only stops the interrupt from being delivered to the driver. -- Dan -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/