Skip to content

Commit

Permalink
Merge tag 'samsung-fixes-v4.1' of git://git.kernel.org/pub/scm/linux/…
Browse files Browse the repository at this point in the history
…kernel/git/kgene/linux-samsung into next/fixes-non-critical

Merge "Samsung non-critical fixes for v4.1" from Kukjin Kim:

- mostly trivial build fixes with random configurations
  from Arnd Bergmann

  for s3c24xx:
  avoid a Kconfig warning and fix header file inclusions,
  and fix building without PM_SLEEP and use SAMSUNG_WAKEMASK

  for s3c64xx:
  fix __initdata section mismatch and add I2C dependencies,
  and fix building with PM_SLEEP

* tag 'samsung-fixes-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: S3C24XX: avoid a Kconfig warning
  ARM: S3C24XX: fix header file inclusions
  ARM: S3C24XX: fix building without PM_SLEEP
  ARM: S3C24XX: use SAMSUNG_WAKEMASK for s3c2416
  ARM: S3C64XX: fix __initdata section mismatch
  ARM: S3C64XX: fix building without CONFIG_PM_SLEEP
  ARM: S3C64XX: add I2C dependencies where needed

Signed-off-by: Olof Johansson <[email protected]>
  • Loading branch information
olofj committed Apr 3, 2015
2 parents 77e3c09 + a11176e commit 30a5c18
Show file tree
Hide file tree
Showing 18 changed files with 69 additions and 53 deletions.
19 changes: 10 additions & 9 deletions arch/arm/mach-s3c24xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ config CPU_S3C2412
bool "SAMSUNG S3C2412"
select CPU_ARM926T
select S3C2412_COMMON_CLK
select S3C2412_PM if PM
select S3C2412_PM if PM_SLEEP
help
Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line

config CPU_S3C2416
bool "SAMSUNG S3C2416/S3C2450"
select CPU_ARM926T
select S3C2416_PM if PM
select S3C2416_PM if PM_SLEEP
select S3C2443_COMMON_CLK
help
Support for the S3C2416 SoC from the S3C24XX line
Expand All @@ -55,15 +55,15 @@ config CPU_S3C2440
bool "SAMSUNG S3C2440"
select CPU_ARM920T
select S3C2410_COMMON_CLK
select S3C2410_PM if PM
select S3C2410_PM if PM_SLEEP
help
Support for S3C2440 Samsung Mobile CPU based systems.

config CPU_S3C2442
bool "SAMSUNG S3C2442"
select CPU_ARM920T
select S3C2410_COMMON_CLK
select S3C2410_PM if PM
select S3C2410_PM if PM_SLEEP
help
Support for S3C2442 Samsung Mobile CPU based systems.

Expand Down Expand Up @@ -228,11 +228,6 @@ config H1940BT
This is a simple driver that is able to control
the state of built in bluetooth chip on h1940.

config PM_H1940
bool
help
Internal node for H1940 and related PM

config MACH_N30
bool "Acer N30 family"
select S3C_DEV_NAND
Expand Down Expand Up @@ -362,6 +357,7 @@ if CPU_S3C2416
config S3C2416_PM
bool
select S3C2412_PM_SLEEP
select SAMSUNG_WAKEMASK
help
Internal config node to apply S3C2416 power management

Expand Down Expand Up @@ -584,6 +580,11 @@ config MACH_SMDK2443

endif # CPU_S3C2443

config PM_H1940
bool
help
Internal node for H1940 and related PM

endmenu # SAMSUNG S3C24XX SoCs Support

endif # ARCH_S3C24XX
3 changes: 2 additions & 1 deletion arch/arm/mach-s3c24xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ obj-$(CONFIG_CPU_S3C2443) += s3c2443.o

# PM

obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.o
obj-$(CONFIG_PM) += pm.o
obj-$(CONFIG_PM_SLEEP) += irq-pm.o sleep.o

# common code

Expand Down
24 changes: 22 additions & 2 deletions arch/arm/mach-s3c24xx/include/mach/pm-core.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/delay.h>
#include <linux/io.h>

#include "regs-clock.h"
#include "regs-irq.h"

static inline void s3c_pm_debug_init_uart(void)
{
Expand Down Expand Up @@ -42,8 +47,23 @@ static inline void s3c_pm_arch_stop_clocks(void)
__raw_writel(0x00, S3C2410_CLKCON); /* turn off clocks over sleep */
}

static void s3c_pm_show_resume_irqs(int start, unsigned long which,
unsigned long mask);
/* s3c2410_pm_show_resume_irqs
*
* print any IRQs asserted at resume time (ie, we woke from)
*/
static inline void s3c_pm_show_resume_irqs(int start, unsigned long which,
unsigned long mask)
{
int i;

which &= ~mask;

for (i = 0; i <= 31; i++) {
if (which & (1L<<i)) {
S3C_PMDBG("IRQ %d asserted at resume\n", start+i);
}
}
}

static inline void s3c_pm_arch_show_resume_irqs(void)
{
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-s3c24xx/pm-s3c2416.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include "s3c2412-power.h"

#ifdef CONFIG_PM_SLEEP
extern void s3c2412_sleep_enter(void);

static int s3c2416_cpu_suspend(unsigned long arg)
Expand Down Expand Up @@ -70,7 +71,7 @@ static __init int s3c2416_pm_init(void)
}

arch_initcall(s3c2416_pm_init);

#endif

static void s3c2416_pm_resume(void)
{
Expand Down
6 changes: 4 additions & 2 deletions arch/arm/mach-s3c24xx/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@

#define PFX "s3c24xx-pm: "

#ifdef CONFIG_PM_SLEEP
static struct sleep_save core_save[] = {
/* we restore the timings here, with the proviso that the board
* brings the system up in an slower, or equal frequency setting
Expand All @@ -67,6 +68,7 @@ static struct sleep_save core_save[] = {
SAVE_ITEM(S3C2410_BANKCON4),
SAVE_ITEM(S3C2410_BANKCON5),
};
#endif

/* s3c_pm_check_resume_pin
*
Expand Down Expand Up @@ -121,7 +123,7 @@ void s3c_pm_configure_extint(void)
}
}


#ifdef CONFIG_PM_SLEEP
void s3c_pm_restore_core(void)
{
s3c_pm_do_restore_core(core_save, ARRAY_SIZE(core_save));
Expand All @@ -131,4 +133,4 @@ void s3c_pm_save_core(void)
{
s3c_pm_do_save(core_save, ARRAY_SIZE(core_save));
}

#endif
2 changes: 1 addition & 1 deletion arch/arm/mach-s3c24xx/s3c2410.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ int __init s3c2410_init(void)
{
printk("S3C2410: Initialising architecture\n");

#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
register_syscore_ops(&s3c2410_pm_syscore_ops);
register_syscore_ops(&s3c24xx_irq_syscore_ops);
#endif
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-s3c24xx/s3c2412.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ int __init s3c2412_init(void)
{
printk("S3C2412: Initialising architecture\n");

#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
register_syscore_ops(&s3c2412_pm_syscore_ops);
register_syscore_ops(&s3c24xx_irq_syscore_ops);
#endif
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-s3c24xx/s3c2416.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ int __init s3c2416_init(void)
s3c_adc_setname("s3c2416-adc");
s3c_rtc_setname("s3c2416-rtc");

#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
register_syscore_ops(&s3c2416_pm_syscore_ops);
register_syscore_ops(&s3c24xx_irq_syscore_ops);
register_syscore_ops(&s3c2416_irq_syscore_ops);
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-s3c24xx/s3c2440.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ int __init s3c2440_init(void)

/* register suspend/resume handlers */

#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
register_syscore_ops(&s3c2410_pm_syscore_ops);
register_syscore_ops(&s3c24xx_irq_syscore_ops);
#endif
register_syscore_ops(&s3c244x_pm_syscore_ops);
#endif

/* register our system device for everything else */

Expand Down
4 changes: 2 additions & 2 deletions arch/arm/mach-s3c24xx/s3c2442.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ int __init s3c2442_init(void)
{
printk("S3C2442: Initialising architecture\n");

#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
register_syscore_ops(&s3c2410_pm_syscore_ops);
register_syscore_ops(&s3c24xx_irq_syscore_ops);
#endif
register_syscore_ops(&s3c244x_pm_syscore_ops);
#endif

return device_register(&s3c2442_dev);
}
Expand Down
7 changes: 2 additions & 5 deletions arch/arm/mach-s3c24xx/s3c244x.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ static int __init s3c2442_core_init(void)
core_initcall(s3c2442_core_init);


#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
static struct sleep_save s3c244x_sleep[] = {
SAVE_ITEM(S3C2440_DSC0),
SAVE_ITEM(S3C2440_DSC1),
Expand All @@ -127,12 +127,9 @@ static void s3c244x_resume(void)
{
s3c_pm_do_restore(s3c244x_sleep, ARRAY_SIZE(s3c244x_sleep));
}
#else
#define s3c244x_suspend NULL
#define s3c244x_resume NULL
#endif

struct syscore_ops s3c244x_pm_syscore_ops = {
.suspend = s3c244x_suspend,
.resume = s3c244x_resume,
};
#endif
4 changes: 3 additions & 1 deletion arch/arm/mach-s3c64xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ endchoice
config SMDK6410_WM1190_EV1
bool "Support Wolfson Microelectronics 1190-EV1 PMIC card"
depends on MACH_SMDK6410
depends on I2C=y
select MFD_WM8350_I2C
select REGULATOR
select REGULATOR_WM8350
Expand All @@ -203,6 +204,7 @@ config SMDK6410_WM1190_EV1
config SMDK6410_WM1192_EV1
bool "Support Wolfson Microelectronics 1192-EV1 PMIC card"
depends on MACH_SMDK6410
depends on I2C=y
select MFD_WM831X
select MFD_WM831X_I2C
select REGULATOR
Expand Down Expand Up @@ -269,8 +271,8 @@ config MACH_SMARTQ7

config MACH_WLF_CRAGG_6410
bool "Wolfson Cragganmore 6410"
depends on I2C=y
select CPU_S3C6410
select I2C
select LEDS_GPIO_REGISTER
select S3C64XX_DEV_SPI0
select S3C64XX_SETUP_FB_24BPP
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-s3c64xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ obj-$(CONFIG_CPU_S3C6410) += s3c6410.o

# PM

obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.o
obj-$(CONFIG_PM) += pm.o
obj-$(CONFIG_PM_SLEEP) += irq-pm.o sleep.o
obj-$(CONFIG_CPU_IDLE) += cpuidle.o

# DMA support
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-s3c64xx/mach-smdk6410.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ static struct platform_device smdk6410_smsc911x = {
};

#ifdef CONFIG_REGULATOR
static struct regulator_consumer_supply smdk6410_b_pwr_5v_consumers[] __initdata = {
static struct regulator_consumer_supply smdk6410_b_pwr_5v_consumers[] = {
REGULATOR_SUPPLY("PVDD", "0-001b"),
REGULATOR_SUPPLY("AVDD", "0-001b"),
};
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-s3c64xx/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ void s3c_pm_debug_smdkled(u32 set, u32 clear)
}
#endif

#ifdef CONFIG_PM_SLEEP
static struct sleep_save core_save[] = {
SAVE_ITEM(S3C64XX_MEM0DRVCON),
SAVE_ITEM(S3C64XX_MEM1DRVCON),
Expand Down Expand Up @@ -238,6 +239,7 @@ void s3c_pm_save_core(void)
s3c_pm_do_save(misc_save, ARRAY_SIZE(misc_save));
s3c_pm_do_save(core_save, ARRAY_SIZE(core_save));
}
#endif

/* since both s3c6400 and s3c6410 share the same sleep pm calls, we
* put the per-cpu code in here until any new cpu comes along and changes
Expand Down
14 changes: 11 additions & 3 deletions arch/arm/plat-samsung/include/plat/pm.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,11 @@ extern unsigned long s3c_irqwake_eintmask;

/* IRQ masks for IRQs allowed to go to sleep (see irq.c) */
extern unsigned long s3c_irqwake_intallow;
#ifdef CONFIG_PM_SLEEP
extern unsigned long s3c_irqwake_eintallow;
#else
#define s3c_irqwake_eintallow 0
#endif

/* per-cpu sleep functions */

Expand All @@ -58,16 +62,20 @@ extern unsigned long s3c_pm_flags;

extern int s3c2410_cpu_suspend(unsigned long);

#ifdef CONFIG_SAMSUNG_PM
#ifdef CONFIG_PM_SLEEP
extern int s3c_irq_wake(struct irq_data *data, unsigned int state);
extern int s3c_irqext_wake(struct irq_data *data, unsigned int state);
extern void s3c_cpu_resume(void);
#else
#define s3c_irq_wake NULL
#define s3c_irqext_wake NULL
#define s3c_cpu_resume NULL
#endif

#ifdef CONFIG_SAMSUNG_PM
extern int s3c_irqext_wake(struct irq_data *data, unsigned int state);
#else
#define s3c_irqext_wake NULL
#endif

#ifdef CONFIG_S3C_PM_DEBUG_LED_SMDK
/**
* s3c_pm_debug_smdkled() - Debug PM suspend/resume via SMDK Board LEDs
Expand Down
1 change: 1 addition & 0 deletions arch/arm/plat-samsung/pm-debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <plat/pm-common.h>

#ifdef CONFIG_SAMSUNG_ATAGS
#include <plat/pm.h>
#include <mach/pm-core.h>
#else
static inline void s3c_pm_debug_init_uart(void) {}
Expand Down
20 changes: 0 additions & 20 deletions arch/arm/plat-samsung/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,26 +65,6 @@ int s3c_irqext_wake(struct irq_data *data, unsigned int state)
return 0;
}

/* s3c2410_pm_show_resume_irqs
*
* print any IRQs asserted at resume time (ie, we woke from)
*/
static void __maybe_unused s3c_pm_show_resume_irqs(int start,
unsigned long which,
unsigned long mask)
{
int i;

which &= ~mask;

for (i = 0; i <= 31; i++) {
if (which & (1L<<i)) {
S3C_PMDBG("IRQ %d asserted at resume\n", start+i);
}
}
}


void (*pm_cpu_prep)(void);
int (*pm_cpu_sleep)(unsigned long);

Expand Down

0 comments on commit 30a5c18

Please sign in to comment.