Merge branch 'for-linus/samsung-fixes' of git://git.fluff.org/bjdooks/linux

* 'for-linus/samsung-fixes' of git://git.fluff.org/bjdooks/linux:
ARM: SAMSUNG: Fixup commit 4e6d488af37980d224cbf298224db6173673f362
ARM: SAMSUNG: Fix build error from stale define in <plat/uncompress.h>
ARM: SAMSUNG: Add suspend/resume support for S3C PWM driver
ARM: S3C2440: Fix s3c2440 cpufreq compilation post move.

+38 -5
+1 -1
arch/arm/mach-s3c64xx/include/mach/debug-macro.S
··· 21 21 * aligned and add in the offset when we load the value here. 22 22 */ 23 23 24 - .macro addruart, rx 24 + .macro addruart, rx, rtmp 25 25 mrc p15, 0, \rx, c1, c0 26 26 tst \rx, #1 27 27 ldreq \rx, = S3C_PA_UART
+1 -1
arch/arm/mach-s5p6440/include/mach/debug-macro.S
··· 19 19 * aligned and add in the offset when we load the value here. 20 20 */ 21 21 22 - .macro addruart, rx 22 + .macro addruart, rx, rtmp 23 23 mrc p15, 0, \rx, c1, c0 24 24 tst \rx, #1 25 25 ldreq \rx, = S3C_PA_UART
+1 -1
arch/arm/mach-s5p6442/include/mach/debug-macro.S
··· 15 15 #include <mach/map.h> 16 16 #include <plat/regs-serial.h> 17 17 18 - .macro addruart, rx 18 + .macro addruart, rx, rtmp 19 19 mrc p15, 0, \rx, c1, c0 20 20 tst \rx, #1 21 21 ldreq \rx, = S3C_PA_UART
arch/arm/plat-s3c24xx/s3c2440-cpufreq.c arch/arm/mach-s3c2440/s3c2440-cpufreq.c
-2
arch/arm/plat-samsung/include/plat/uncompress.h
··· 140 140 #define arch_error arch_decomp_error 141 141 #endif 142 142 143 - static void error(char *err); 144 - 145 143 #ifdef CONFIG_S3C_BOOT_UART_FORCE_FIFO 146 144 static inline void arch_enable_uart_fifo(void) 147 145 {
+35
arch/arm/plat-samsung/pwm.c
··· 379 379 return 0; 380 380 } 381 381 382 + #ifdef CONFIG_PM 383 + static int s3c_pwm_suspend(struct platform_device *pdev, pm_message_t state) 384 + { 385 + struct pwm_device *pwm = platform_get_drvdata(pdev); 386 + 387 + /* No one preserve these values during suspend so reset them 388 + * Otherwise driver leaves PWM unconfigured if same values 389 + * passed to pwm_config 390 + */ 391 + pwm->period_ns = 0; 392 + pwm->duty_ns = 0; 393 + 394 + return 0; 395 + } 396 + 397 + static int s3c_pwm_resume(struct platform_device *pdev) 398 + { 399 + struct pwm_device *pwm = platform_get_drvdata(pdev); 400 + unsigned long tcon; 401 + 402 + /* Restore invertion */ 403 + tcon = __raw_readl(S3C2410_TCON); 404 + tcon |= pwm_tcon_invert(pwm); 405 + __raw_writel(tcon, S3C2410_TCON); 406 + 407 + return 0; 408 + } 409 + 410 + #else 411 + #define s3c_pwm_suspend NULL 412 + #define s3c_pwm_resume NULL 413 + #endif 414 + 382 415 static struct platform_driver s3c_pwm_driver = { 383 416 .driver = { 384 417 .name = "s3c24xx-pwm", ··· 419 386 }, 420 387 .probe = s3c_pwm_probe, 421 388 .remove = __devexit_p(s3c_pwm_remove), 389 + .suspend = s3c_pwm_suspend, 390 + .resume = s3c_pwm_resume, 422 391 }; 423 392 424 393 static int __init pwm_init(void)