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. Signed-off-by: Andrew J. Herzig <[EMAIL PROTECTED]> --- 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/