aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2012-12-20 11:04:48 -0500
committerOlof Johansson <olof@lixom.net>2012-12-20 12:42:46 -0500
commitf2420ec2d002d5183e61bdf9d8830f0e1c2a4af3 (patch)
treeff3c8476f054488a403206e6777ee146bc36fa17 /arch/arm
parentfebd41d59dc4a8125b1b5fd0b947ab795bfe4aa5 (diff)
parent454696fdc864aacaab978755d44d73d418c59788 (diff)
Merge branch 'v3.8-samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
From Kukjin Kim: Here is Samsung fixes-1 for v3.8-rc1. Most of them are trivial fixes which are for NULL pointer dereference, MSHC clocks instance names and exynos5440 stuff. * 'v3.8-samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: EXYNOS: Fix MSHC clocks instance names ARM: EXYNOS: Fix NULL pointer dereference bug in SMDKV310 ARM: EXYNOS: Fix NULL pointer dereference bug in SMDK4X12 ARM: EXYNOS: Fix NULL pointer dereference bug in Origen ARM: SAMSUNG: Add missing include guard to gpio-core.h pinctrl: exynos5440/samsung: Staticize pcfgs pinctrl: samsung: Fix a typo in pinctrl-samsung.h ARM: EXYNOS: fix skip scu_enable() for EXYNOS5440 ARM: EXYNOS: fix GIC using for EXYNOS5440 ARM: EXYNOS: fix build error when MFC is not selected Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-exynos/clock-exynos4.c4
-rw-r--r--arch/arm/mach-exynos/common.c3
-rw-r--r--arch/arm/mach-exynos/mach-exynos5-dt.c2
-rw-r--r--arch/arm/mach-exynos/mach-origen.c4
-rw-r--r--arch/arm/mach-exynos/mach-smdk4x12.c4
-rw-r--r--arch/arm/mach-exynos/mach-smdkv310.c4
-rw-r--r--arch/arm/mach-exynos/platsmp.c2
-rw-r--r--arch/arm/plat-samsung/include/plat/gpio-core.h5
8 files changed, 18 insertions, 10 deletions
diff --git a/arch/arm/mach-exynos/clock-exynos4.c b/arch/arm/mach-exynos/clock-exynos4.c
index efead60b9436..bbcb3dea0d40 100644
--- a/arch/arm/mach-exynos/clock-exynos4.c
+++ b/arch/arm/mach-exynos/clock-exynos4.c
@@ -529,7 +529,7 @@ static struct clk exynos4_init_clocks_off[] = {
529 .enable = exynos4_clk_ip_fsys_ctrl, 529 .enable = exynos4_clk_ip_fsys_ctrl,
530 .ctrlbit = (1 << 8), 530 .ctrlbit = (1 << 8),
531 }, { 531 }, {
532 .name = "dwmmc", 532 .name = "biu",
533 .parent = &exynos4_clk_aclk_133.clk, 533 .parent = &exynos4_clk_aclk_133.clk,
534 .enable = exynos4_clk_ip_fsys_ctrl, 534 .enable = exynos4_clk_ip_fsys_ctrl,
535 .ctrlbit = (1 << 9), 535 .ctrlbit = (1 << 9),
@@ -1134,7 +1134,7 @@ static struct clksrc_clk exynos4_clksrcs[] = {
1134 .reg_div = { .reg = EXYNOS4_CLKDIV_MFC, .shift = 0, .size = 4 }, 1134 .reg_div = { .reg = EXYNOS4_CLKDIV_MFC, .shift = 0, .size = 4 },
1135 }, { 1135 }, {
1136 .clk = { 1136 .clk = {
1137 .name = "sclk_dwmmc", 1137 .name = "ciu",
1138 .parent = &exynos4_clk_dout_mmc4.clk, 1138 .parent = &exynos4_clk_dout_mmc4.clk,
1139 .enable = exynos4_clksrc_mask_fsys_ctrl, 1139 .enable = exynos4_clksrc_mask_fsys_ctrl,
1140 .ctrlbit = (1 << 16), 1140 .ctrlbit = (1 << 16),
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index ddd4b72c6f9a..d6d0dc651089 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -679,7 +679,8 @@ void __init exynos5_init_irq(void)
679 * Theses parameters should be NULL and 0 because EXYNOS4 679 * Theses parameters should be NULL and 0 because EXYNOS4
680 * uses GIC instead of VIC. 680 * uses GIC instead of VIC.
681 */ 681 */
682 s5p_init_irq(NULL, 0); 682 if (!of_machine_is_compatible("samsung,exynos5440"))
683 s5p_init_irq(NULL, 0);
683 684
684 gic_arch_extn.irq_set_wake = s3c_irq_wake; 685 gic_arch_extn.irq_set_wake = s3c_irq_wake;
685} 686}
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c
index f038c8cadca4..e99d3d8f2bcf 100644
--- a/arch/arm/mach-exynos/mach-exynos5-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
@@ -163,6 +163,7 @@ static char const *exynos5_dt_compat[] __initdata = {
163 163
164static void __init exynos5_reserve(void) 164static void __init exynos5_reserve(void)
165{ 165{
166#ifdef CONFIG_S5P_DEV_MFC
166 struct s5p_mfc_dt_meminfo mfc_mem; 167 struct s5p_mfc_dt_meminfo mfc_mem;
167 168
168 /* Reserve memory for MFC only if it's available */ 169 /* Reserve memory for MFC only if it's available */
@@ -170,6 +171,7 @@ static void __init exynos5_reserve(void)
170 if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, &mfc_mem)) 171 if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, &mfc_mem))
171 s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff, 172 s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff,
172 mfc_mem.lsize); 173 mfc_mem.lsize);
174#endif
173} 175}
174 176
175DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") 177DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index e6f4191cd14c..5e34b9c16196 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -621,7 +621,7 @@ static struct pwm_lookup origen_pwm_lookup[] = {
621 PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL), 621 PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL),
622}; 622};
623 623
624#ifdef CONFIG_DRM_EXYNOS 624#ifdef CONFIG_DRM_EXYNOS_FIMD
625static struct exynos_drm_fimd_pdata drm_fimd_pdata = { 625static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
626 .panel = { 626 .panel = {
627 .timing = { 627 .timing = {
@@ -793,7 +793,7 @@ static void __init origen_machine_init(void)
793 s5p_i2c_hdmiphy_set_platdata(NULL); 793 s5p_i2c_hdmiphy_set_platdata(NULL);
794 s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0); 794 s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
795 795
796#ifdef CONFIG_DRM_EXYNOS 796#ifdef CONFIG_DRM_EXYNOS_FIMD
797 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; 797 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
798 exynos4_fimd0_gpio_setup_24bpp(); 798 exynos4_fimd0_gpio_setup_24bpp();
799#else 799#else
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c
index a1555a73c7af..ae6da40c2aa9 100644
--- a/arch/arm/mach-exynos/mach-smdk4x12.c
+++ b/arch/arm/mach-exynos/mach-smdk4x12.c
@@ -246,7 +246,7 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = {
246 .cols = 8, 246 .cols = 8,
247}; 247};
248 248
249#ifdef CONFIG_DRM_EXYNOS 249#ifdef CONFIG_DRM_EXYNOS_FIMD
250static struct exynos_drm_fimd_pdata drm_fimd_pdata = { 250static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
251 .panel = { 251 .panel = {
252 .timing = { 252 .timing = {
@@ -360,7 +360,7 @@ static void __init smdk4x12_machine_init(void)
360 360
361 s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); 361 s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata);
362 362
363#ifdef CONFIG_DRM_EXYNOS 363#ifdef CONFIG_DRM_EXYNOS_FIMD
364 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; 364 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
365 exynos4_fimd0_gpio_setup_24bpp(); 365 exynos4_fimd0_gpio_setup_24bpp();
366#else 366#else
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c
index b7384241fb03..35548e3c097d 100644
--- a/arch/arm/mach-exynos/mach-smdkv310.c
+++ b/arch/arm/mach-exynos/mach-smdkv310.c
@@ -159,7 +159,7 @@ static struct platform_device smdkv310_lcd_lte480wv = {
159 .dev.platform_data = &smdkv310_lcd_lte480wv_data, 159 .dev.platform_data = &smdkv310_lcd_lte480wv_data,
160}; 160};
161 161
162#ifdef CONFIG_DRM_EXYNOS 162#ifdef CONFIG_DRM_EXYNOS_FIMD
163static struct exynos_drm_fimd_pdata drm_fimd_pdata = { 163static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
164 .panel = { 164 .panel = {
165 .timing = { 165 .timing = {
@@ -402,7 +402,7 @@ static void __init smdkv310_machine_init(void)
402 samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); 402 samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data);
403 pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup)); 403 pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup));
404 404
405#ifdef CONFIG_DRM_EXYNOS 405#ifdef CONFIG_DRM_EXYNOS_FIMD
406 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; 406 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
407 exynos4_fimd0_gpio_setup_24bpp(); 407 exynos4_fimd0_gpio_setup_24bpp();
408#else 408#else
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 4ca8ff14a5bf..c5c840e947b8 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -198,7 +198,7 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
198{ 198{
199 int i; 199 int i;
200 200
201 if (!soc_is_exynos5250()) 201 if (!(soc_is_exynos5250() || soc_is_exynos5440()))
202 scu_enable(scu_base_addr()); 202 scu_enable(scu_base_addr());
203 203
204 /* 204 /*
diff --git a/arch/arm/plat-samsung/include/plat/gpio-core.h b/arch/arm/plat-samsung/include/plat/gpio-core.h
index dfd8b7af8c7a..f7a3ea2c498a 100644
--- a/arch/arm/plat-samsung/include/plat/gpio-core.h
+++ b/arch/arm/plat-samsung/include/plat/gpio-core.h
@@ -11,6 +11,9 @@
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12*/ 12*/
13 13
14#ifndef __PLAT_SAMSUNG_GPIO_CORE_H
15#define __PLAT_SAMSUNG_GPIO_CORE_H
16
14#define GPIOCON_OFF (0x00) 17#define GPIOCON_OFF (0x00)
15#define GPIODAT_OFF (0x04) 18#define GPIODAT_OFF (0x04)
16 19
@@ -124,3 +127,5 @@ extern struct samsung_gpio_pm samsung_gpio_pm_4bit;
124/* locking wrappers to deal with multiple access to the same gpio bank */ 127/* locking wrappers to deal with multiple access to the same gpio bank */
125#define samsung_gpio_lock(_oc, _fl) spin_lock_irqsave(&(_oc)->lock, _fl) 128#define samsung_gpio_lock(_oc, _fl) spin_lock_irqsave(&(_oc)->lock, _fl)
126#define samsung_gpio_unlock(_oc, _fl) spin_unlock_irqrestore(&(_oc)->lock, _fl) 129#define samsung_gpio_unlock(_oc, _fl) spin_unlock_irqrestore(&(_oc)->lock, _fl)
130
131#endif /* __PLAT_SAMSUNG_GPIO_CORE_H */