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

From: Andy Herzig
Date: Thu Aug 09 2007 - 10:40:43 EST


On Thu, 2007-08-09 at 08:10 -0400, Andy Herzig wrote:
> 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.
>
> 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.
Sorry, the previous patch was fouled up.

Signed-off-by: Andrew J. Herzig <andrew.herzig@xxxxxxx>
---
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 */
+#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
pm_set_ops(&at91_pm_ops);

return 0;
diff -uprN -X linux-2.6.23-rc2/Documentation/dontdiff
linux-2.6.23-rc2-vanilla/drivers/serial/atmel_serial.c
linux-2.6.23-rc2/drivers/serial/atmel_serial.c
--- 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);

static int
ohci_hcd_at91_drv_suspend(struct platform_device *pdev, pm_message_t
mesg)

-
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/