]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'v3.8-samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel...
authorOlof Johansson <olof@lixom.net>
Thu, 20 Dec 2012 16:04:48 +0000 (08:04 -0800)
committerOlof Johansson <olof@lixom.net>
Thu, 20 Dec 2012 17:42:46 +0000 (09:42 -0800)
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>
arch/arm/mach-exynos/clock-exynos4.c
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/mach-exynos5-dt.c
arch/arm/mach-exynos/mach-origen.c
arch/arm/mach-exynos/mach-smdk4x12.c
arch/arm/mach-exynos/mach-smdkv310.c
arch/arm/mach-exynos/platsmp.c
arch/arm/plat-samsung/include/plat/gpio-core.h
drivers/pinctrl/pinctrl-exynos5440.c
drivers/pinctrl/pinctrl-samsung.c
drivers/pinctrl/pinctrl-samsung.h

index efead60b943699d160fa8754e9435cfba4a658fc..bbcb3dea0d40e61de4c003a6c3ac46cc8b5157dc 100644 (file)
@@ -529,7 +529,7 @@ static struct clk exynos4_init_clocks_off[] = {
                .enable         = exynos4_clk_ip_fsys_ctrl,
                .ctrlbit        = (1 << 8),
        }, {
-               .name           = "dwmmc",
+               .name           = "biu",
                .parent         = &exynos4_clk_aclk_133.clk,
                .enable         = exynos4_clk_ip_fsys_ctrl,
                .ctrlbit        = (1 << 9),
@@ -1134,7 +1134,7 @@ static struct clksrc_clk exynos4_clksrcs[] = {
                .reg_div = { .reg = EXYNOS4_CLKDIV_MFC, .shift = 0, .size = 4 },
        }, {
                .clk    = {
-                       .name           = "sclk_dwmmc",
+                       .name           = "ciu",
                        .parent         = &exynos4_clk_dout_mmc4.clk,
                        .enable         = exynos4_clksrc_mask_fsys_ctrl,
                        .ctrlbit        = (1 << 16),
index ddd4b72c6f9a9530e432399708b7e38af889e1c6..d6d0dc651089a4a253d473783c156d453eda55be 100644 (file)
@@ -679,7 +679,8 @@ void __init exynos5_init_irq(void)
         * Theses parameters should be NULL and 0 because EXYNOS4
         * uses GIC instead of VIC.
         */
-       s5p_init_irq(NULL, 0);
+       if (!of_machine_is_compatible("samsung,exynos5440"))
+               s5p_init_irq(NULL, 0);
 
        gic_arch_extn.irq_set_wake = s3c_irq_wake;
 }
index f038c8cadca484e1831cd3277394bd8565ab88c1..e99d3d8f2bcf436ab52a07f5c8d1d7ad519d8467 100644 (file)
@@ -163,6 +163,7 @@ static char const *exynos5_dt_compat[] __initdata = {
 
 static void __init exynos5_reserve(void)
 {
+#ifdef CONFIG_S5P_DEV_MFC
        struct s5p_mfc_dt_meminfo mfc_mem;
 
        /* Reserve memory for MFC only if it's available */
@@ -170,6 +171,7 @@ static void __init exynos5_reserve(void)
        if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, &mfc_mem))
                s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff,
                                mfc_mem.lsize);
+#endif
 }
 
 DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
index e6f4191cd14c1af36c5df0ac14bb9d136f2f22e9..5e34b9c16196c4d7009d90e5bb55a596c918ee20 100644 (file)
@@ -621,7 +621,7 @@ static struct pwm_lookup origen_pwm_lookup[] = {
        PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL),
 };
 
-#ifdef CONFIG_DRM_EXYNOS
+#ifdef CONFIG_DRM_EXYNOS_FIMD
 static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
        .panel  = {
                .timing = {
@@ -793,7 +793,7 @@ static void __init origen_machine_init(void)
        s5p_i2c_hdmiphy_set_platdata(NULL);
        s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
 
-#ifdef CONFIG_DRM_EXYNOS
+#ifdef CONFIG_DRM_EXYNOS_FIMD
        s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
        exynos4_fimd0_gpio_setup_24bpp();
 #else
index a1555a73c7afd08f46cec725159b8b3ce1d2afd8..ae6da40c2aa9e168e9bb338b91556985089e5e4f 100644 (file)
@@ -246,7 +246,7 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = {
        .cols           = 8,
 };
 
-#ifdef CONFIG_DRM_EXYNOS
+#ifdef CONFIG_DRM_EXYNOS_FIMD
 static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
        .panel  = {
                .timing = {
@@ -360,7 +360,7 @@ static void __init smdk4x12_machine_init(void)
 
        s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata);
 
-#ifdef CONFIG_DRM_EXYNOS
+#ifdef CONFIG_DRM_EXYNOS_FIMD
        s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
        exynos4_fimd0_gpio_setup_24bpp();
 #else
index b7384241fb03ac836e08a74bab3cac4aae8c8881..35548e3c097d8e34916d027457ec6baa2d02b903 100644 (file)
@@ -159,7 +159,7 @@ static struct platform_device smdkv310_lcd_lte480wv = {
        .dev.platform_data      = &smdkv310_lcd_lte480wv_data,
 };
 
-#ifdef CONFIG_DRM_EXYNOS
+#ifdef CONFIG_DRM_EXYNOS_FIMD
 static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
        .panel  = {
                .timing = {
@@ -402,7 +402,7 @@ static void __init smdkv310_machine_init(void)
        samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data);
        pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup));
 
-#ifdef CONFIG_DRM_EXYNOS
+#ifdef CONFIG_DRM_EXYNOS_FIMD
        s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
        exynos4_fimd0_gpio_setup_24bpp();
 #else
index 4ca8ff14a5bfe99dc587bce680fb4afbb4d634a5..c5c840e947b88030156c95c99933891a43416974 100644 (file)
@@ -198,7 +198,7 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
 {
        int i;
 
-       if (!soc_is_exynos5250())
+       if (!(soc_is_exynos5250() || soc_is_exynos5440()))
                scu_enable(scu_base_addr());
 
        /*
index dfd8b7af8c7ac93db4bf6d3d28371a072793c1d9..f7a3ea2c498aa852b2b72d2d8baf79f32f2ac417 100644 (file)
@@ -11,6 +11,9 @@
  * published by the Free Software Foundation.
 */
 
+#ifndef __PLAT_SAMSUNG_GPIO_CORE_H
+#define __PLAT_SAMSUNG_GPIO_CORE_H
+
 #define GPIOCON_OFF    (0x00)
 #define GPIODAT_OFF    (0x04)
 
@@ -124,3 +127,5 @@ extern struct samsung_gpio_pm samsung_gpio_pm_4bit;
 /* locking wrappers to deal with multiple access to the same gpio bank */
 #define samsung_gpio_lock(_oc, _fl) spin_lock_irqsave(&(_oc)->lock, _fl)
 #define samsung_gpio_unlock(_oc, _fl) spin_unlock_irqrestore(&(_oc)->lock, _fl)
+
+#endif /* __PLAT_SAMSUNG_GPIO_CORE_H */
index b8635f634e91c1497f0158421371d521a233e190..07db89528dc3601a13c1b54b02463cb95a12a202 100644 (file)
@@ -117,7 +117,7 @@ struct exynos5440_pinctrl_priv_data {
 };
 
 /* list of all possible config options supported */
-struct pin_config {
+static struct pin_config {
        char            *prop_cfg;
        unsigned int    cfg_type;
 } pcfgs[] = {
index 8f31b656c4e95be33ad04d7256f9594286f37a56..864fed822f9dc1f5839cb359f0475022510e3efc 100644 (file)
@@ -37,7 +37,7 @@
 #define FSUFFIX_LEN            sizeof(FUNCTION_SUFFIX)
 
 /* list of all possible config options supported */
-struct pin_config {
+static struct pin_config {
        char            *prop_cfg;
        unsigned int    cfg_type;
 } pcfgs[] = {
index 5addfd16e3cc461fe7f967e67d2eea072fc62b1b..e2d4e67f7e882c5314d7bfc82235be586c48a438 100644 (file)
@@ -104,7 +104,7 @@ struct samsung_pinctrl_drv_data;
 
 /**
  * struct samsung_pin_bank: represent a controller pin-bank.
- * @reg_offset: starting offset of the pin-bank registers.
+ * @pctl_offset: starting offset of the pin-bank registers.
  * @pin_base: starting pin number of the bank.
  * @nr_pins: number of pins included in this bank.
  * @func_width: width of the function selector bit field.