[PATCH] Don't shutdown mpc5200 serial port if it is a console

Sylvain Munaut tnt at 246tNt.com
Fri Apr 20 04:43:26 EST 2007


The idea is OK,

but only TX should be left active and the interrupts should still be
disabled (imr set to 0), so we don't generate unhandled interrupts ...


        Sylvain


Grant Likely wrote:
> If the serial port gets shut down, then console output stalls.  9 out
> of 10 kernel hackers agree, this is a bad thing.
>
> Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
> Signed-off-by: Bartlomiej Sieka <tur at semihalf.com>
> ---
>
> This is a simple bug fix, but it's not a critical one.  It would be really
> nice to get this merged for 2.6.21
>  drivers/serial/mpc52xx_uart.c |   14 ++++++++------
>  1 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
> index f8c1761..35669f8 100644
> --- a/drivers/serial/mpc52xx_uart.c
> +++ b/drivers/serial/mpc52xx_uart.c
> @@ -257,14 +257,16 @@ mpc52xx_uart_shutdown(struct uart_port *port)
>  {
>  	struct mpc52xx_psc __iomem *psc = PSC(port);
>  
> -	/* Shut down the port, interrupt and all */
> -	out_8(&psc->command,MPC52xx_PSC_RST_RX);
> -	out_8(&psc->command,MPC52xx_PSC_RST_TX);
> +	/* We don't want to shut down a port that is used as a console */
> +	if (!uart_console(port)) {
> +		out_8(&psc->command,MPC52xx_PSC_RST_RX);
> +		out_8(&psc->command,MPC52xx_PSC_RST_TX);
>  
> -	port->read_status_mask = 0;
> -	out_be16(&psc->mpc52xx_psc_imr,port->read_status_mask);
> +		port->read_status_mask = 0;
> +		out_be16(&psc->mpc52xx_psc_imr,port->read_status_mask);
> +	}
>  
> -	/* Release interrupt */
> +	/* Release interrupt (OK for console port b/c console uses polling) */
>  	free_irq(port->irq, port);
>  }
>  
>   




More information about the Linuxppc-dev mailing list