On Wed, Mar 24, 2010 at 6:40 PM, Sergei Shtylyov <sshtylyov@xxxxxxxxxx> wrote: > Hello. > > Manuel Lauss wrote: > >> Hook up the Alchemy on-chip uarts with the platform 8250 PM callback >> and enable/disable the uart blocks as needed. >> >> Tested on Au1200. >> >> Signed-off-by: Manuel Lauss <manuel.lauss@xxxxxxxxx> >> --- >> arch/mips/alchemy/common/platform.c | 17 +++++++++++++++++ >> arch/mips/alchemy/common/power.c | 32 >> -------------------------------- >> 2 files changed, 17 insertions(+), 32 deletions(-) >> >> diff --git a/arch/mips/alchemy/common/platform.c >> b/arch/mips/alchemy/common/platform.c >> index 2580e77..70f4abd 100644 >> --- a/arch/mips/alchemy/common/platform.c >> +++ b/arch/mips/alchemy/common/platform.c >> @@ -21,6 +21,22 @@ >> #include <asm/mach-au1x00/au1100_mmc.h> >> #include <asm/mach-au1x00/au1xxx_eth.h> >> +static void alchemy_8250_pm(struct uart_port *port, unsigned int state, >> + unsigned int old_state) >> +{ >> + if (state == 0) { /* power on */ >> + __raw_writel(0, port->membase + UART_MOD_CNTRL); >> + wmb(); >> + __raw_writel(1, port->membase + UART_MOD_CNTRL); >> + wmb(); >> + __raw_writel(3, port->membase + UART_MOD_CNTRL); >> + wmb(); >> + } else if (state == 3) { /* power off */ >> + __raw_writel(0, port->membase + UART_MOD_CNTRL); >> + wmb(); >> + } >> +} > > A *switch* statement seems more fitting here... Well, those are the only 2 values defined anyway, but I'll change it. Thanks! Manuel Lauss