diff options
author | Olof Johansson <olof@lixom.net> | 2012-12-20 11:04:48 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-12-20 12:42:46 -0500 |
commit | f2420ec2d002d5183e61bdf9d8830f0e1c2a4af3 (patch) | |
tree | ff3c8476f054488a403206e6777ee146bc36fa17 /arch/arm | |
parent | febd41d59dc4a8125b1b5fd0b947ab795bfe4aa5 (diff) | |
parent | 454696fdc864aacaab978755d44d73d418c59788 (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.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-exynos/common.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-exynos5-dt.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdk4x12.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdkv310.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-exynos/platsmp.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/gpio-core.h | 5 |
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 | ||
164 | static void __init exynos5_reserve(void) | 164 | static 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 | ||
175 | DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") | 177 | DT_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 |
625 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | 625 | static 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 |
250 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | 250 | static 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 |
163 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | 163 | static 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 */ | ||