Re: [PATCH] at91 pm: Compilation fix for at91sam926x

From: Marc Pignat
Date: Thu Aug 09 2007 - 12:23:41 EST


Hello!

On Thursday 09 August 2007 16:53, Hans-Jürgen Koch wrote:
> (added linux-arm-kernel to CC)
>
> Am Donnerstag 09 August 2007 14:10 schrieb Andy Herzig:
> > Hello all,
> >
> > This patch is intended to fix compilation errors when I tried to add in
> > power management to my Atmel AT91SAM9260 board. First, there is no
> > separate memory controller in the 9260 as there is in the 9200, so calls
> > to do anything with it in pm.c fail.
>
> Correct. I made the same discovery with my AT91SAM9263 board.
>
> >
> > Secondly, at91_suspend_entering_slow_clock() is not declared extern by
> > drivers that use it. This used to cause only a warning, but in
> > 2.6.23-rc1 and beyond, it is an error.
>
> Patch looks good to me. Kernel compiles for my 9263. Didn't test
> suspend/resume yet, though.
>
> >
> > Signed-off-by: Andrew J. Herzig <andrew.herzig@xxxxxxx>
>
> Acked-by: Hans J. Koch <hjk@xxxxxxxxxxxxx>
>
>
> > ---
> > arch/arm/mach-at91/pm.c | 5 ++++-
> > drivers/serial/atmel_serial.c | 2 ++
> > drivers/usb/gadget/at91_udc.c | 2 ++
> > drivers/usb/host/ohci-at91.c | 1 +
> > 4 files changed, 9 insertions(+), 1 deletion(-)
> >
> > diff -uprN -X linux-2.6.23-rc2/Documentation/dontdiff
> > linux-2.6.23-rc2-vanilla/arch/arm/mach-at91/pm.c
> > linux-2.6.23-rc2/arch/arm/mach-at91/pm.c
> > --- linux-2.6.23-rc2-vanilla/arch/arm/mach-at91/pm.c 2007-08-08
> > 13:28:37.000000000 -0400
> > +++ linux-2.6.23-rc2/arch/arm/mach-at91/pm.c 2007-08-08
> > 13:36:43.000000000 -0400
> > @@ -176,7 +176,9 @@ static int at91_pm_enter(suspend_state_t
> > */
> > asm("b 1f; .align 5; 1:");
> > asm("mcr p15, 0, r0, c7, c10, 4"); /* drain
> > write buffer */
> > +#if defined(CONFIG_ARCH_AT91RM9200)
> > at91_sys_write(AT91_SDRAMC_SRR, 1); /*
> > self-refresh mode */
Why don't use:
if (cpu_is_at91rm9200())
at91_sys_write(AT91_SDRAMC_SRR, 1);

> > +#endif
> > /* fall though to next state */
> >
> > case PM_SUSPEND_ON:
> > @@ -218,8 +220,9 @@ static int __init at91_pm_init(void)
> > #endif
> >
> > /* Disable SDRAM low-power mode. Cannot be used with
> > self-refresh. */
> > +#if defined(CONFIG_ARCH_AT91RM9200)
> > at91_sys_write(AT91_SDRAMC_LPR, 0);
> > -
> > +#endif
same comment

...
> > --- linux-2.6.23-rc2-vanilla/drivers/serial/atmel_serial.c
> > 2007-08-08 13:28:33.000000000 -0400
> > +++ linux-2.6.23-rc2/drivers/serial/atmel_serial.c 2007-08-08
> > 13:32:52.000000000 -0400
> > @@ -916,6 +916,8 @@ static struct uart_driver atmel_uart = {
> > };
> >
> > #ifdef CONFIG_PM
> > +extern int at91_suspend_entering_slow_clock(void);
> > +
> > static int atmel_serial_suspend(struct platform_device *pdev,
> > pm_message_t state)
> > {
> > struct uart_port *port = platform_get_drvdata(pdev);
> > diff -uprN -X linux-2.6.23-rc2/Documentation/dontdiff
> > linux-2.6.23-rc2-vanilla/drivers/usb/gadget/at91_udc.c
> > linux-2.6.23-rc2/drivers/usb/gadget/at91_udc.c
> > --- linux-2.6.23-rc2-vanilla/drivers/usb/gadget/at91_udc.c
> > 2007-08-08 13:28:27.000000000 -0400
> > +++ linux-2.6.23-rc2/drivers/usb/gadget/at91_udc.c 2007-08-08
> > 13:33:21.000000000 -0400
> > @@ -1770,6 +1770,8 @@ static int __exit at91udc_remove(struct
> > }
> >
> > #ifdef CONFIG_PM
> > +extern int at91_suspend_entering_slow_clock(void);
> > +
> > static int at91udc_suspend(struct platform_device *pdev, pm_message_t
> > mesg)
> > {
> > struct at91_udc *udc = platform_get_drvdata(pdev);
> > diff -uprN -X linux-2.6.23-rc2/Documentation/dontdiff
> > linux-2.6.23-rc2-vanilla/drivers/usb/host/ohci-at91.c
> > linux-2.6.23-rc2/drivers/usb/host/ohci-at91.c
> > --- linux-2.6.23-rc2-vanilla/drivers/usb/host/ohci-at91.c
> > 2007-08-08 13:28:27.000000000 -0400
> > +++ linux-2.6.23-rc2/drivers/usb/host/ohci-at91.c 2007-08-08
> > 13:32:45.000000000 -0400
> > @@ -282,6 +282,7 @@ static int ohci_hcd_at91_drv_remove(stru
> > }
> >
> > #ifdef CONFIG_PM
> > +extern int at91_suspend_entering_slow_clock(void);
Why do you define 3 times this function?
Can't you place it in a .h?

Regards

Marc


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/