On Thu, 19 Oct 2006 15:25:55 +0300 (EEST)
[EMAIL PROTECTED] wrote:

> The SMC and SCC hardware transmitter is enabled at the wrong
> place. Simply writing twice to the non-console port, like
> 
> $ echo asdf > /dev/ttyCPM1
> $ echo asdf > /dev/ttyCPM1
> 
> puts the shell into endless uninterruptible sleep, since the
> transmitter is stopped after the first write, and is not enabled
> before the shutdown function of the second write. Thus the transmit
> buffers are never emptied.
> 
Was about to Ack, but... need one more glance at it on hw. 
I recall something that might be reason of the current implementation,
but had no chance to recover the details.

Thanks for the input. I'll follow-up tomorrow.

> Signed-off-by: Kalle Pokki <[EMAIL PROTECTED]>
> ---
>   drivers/serial/cpm_uart/cpm_uart_core.c |    5 ++---
>   1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c
> b/drivers/serial/cpm_uart/cpm_uart_core.c index 90ff96e..8f3b3e5
> 100644 --- a/drivers/serial/cpm_uart/cpm_uart_core.c
> +++ b/drivers/serial/cpm_uart/cpm_uart_core.c
> @@ -194,10 +194,8 @@ static void cpm_uart_start_tx(struct uar
>       if (cpm_uart_tx_pump(port) != 0) {
>               if (IS_SMC(pinfo)) {
>                       smcp->smc_smcm |= SMCM_TX;
> -                     smcp->smc_smcmr |= SMCMR_TEN;
>               } else {
>                       sccp->scc_sccm |= UART_SCCM_TX;
> -                     pinfo->sccp->scc_gsmrl |= SCC_GSMRL_ENT;
>               }
>       }
>   }
> @@ -420,9 +418,10 @@ static int cpm_uart_startup(struct uart_
>       /* Startup rx-int */
>       if (IS_SMC(pinfo)) {
>               pinfo->smcp->smc_smcm |= SMCM_RX;
> -             pinfo->smcp->smc_smcmr |= SMCMR_REN;
> +             pinfo->smcp->smc_smcmr |= (SMCMR_REN | SMCMR_TEN);
>       } else {
>               pinfo->sccp->scc_sccm |= UART_SCCM_RX;
> +             pinfo->sccp->scc_gsmrl |= (SCC_GSMRL_ENR |
> SCC_GSMRL_ENT); }
> 
>       if (!(pinfo->flags & FLAG_CONSOLE))

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to