exynos: video: Move struct exynos_platform_mipi_dsim into vidinfo
authorSimon Glass <sjg@chromium.org>
Mon, 22 Feb 2016 04:08:46 +0000 (21:08 -0700)
committerMinkyu Kang <mk7.kang@samsung.com>
Wed, 25 May 2016 04:25:17 +0000 (13:25 +0900)
Put the pointer to this structure in struct vidinfo so that we can
reference it without it being global.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/mach-exynos/include/mach/mipi_dsim.h
drivers/video/exynos/exynos_fb.c
drivers/video/exynos/exynos_mipi_dsi.c
include/exynos_lcd.h

index a77b5c8b1c4180c97116f5a13f90d2fe02783455..df68186c106cc1829dd5c165299a15db5be3a71e 100644 (file)
@@ -347,9 +347,10 @@ struct mipi_dsim_lcd_driver {
 };
 
 #ifdef CONFIG_EXYNOS_MIPI_DSIM
-int exynos_mipi_dsi_init(void);
+int exynos_mipi_dsi_init(struct exynos_platform_mipi_dsim *dsim_pd);
 #else
-static inline int exynos_mipi_dsi_init(void)
+static inline int exynos_mipi_dsi_init(
+                       struct exynos_platform_mipi_dsim *dsim_pd)
 {
        return 0;
 }
index abc6091049e150d339f2f1d830d4ff16f29bf6ca..22b9723e549f2daad638df42f212f4756e06a8ef 100644 (file)
@@ -128,7 +128,7 @@ static void lcd_panel_on(struct vidinfo *vid)
        exynos_enable_ldo(1);
 
        if (vid->mipi_enabled)
-               exynos_mipi_dsi_init();
+               exynos_mipi_dsi_init(panel_info.dsim_platform_data_dt);
 }
 
 int exynos_lcd_early_init(const void *blob)
index fd963821ac7cd348acf59d4f1bfb6f29f6d5f667..b39858a28f8a43b12dedfe72abc4bb473a287647 100644 (file)
@@ -27,8 +27,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static struct exynos_platform_mipi_dsim *dsim_pd;
-static struct exynos_platform_mipi_dsim dsim_platform_data_dt;
 static struct mipi_dsim_lcd_device mipi_lcd_device_dt;
 
 struct mipi_dsim_ddi {
@@ -175,7 +173,7 @@ static struct mipi_dsim_master_ops master_ops = {
        .clear_dsim_frame_done          = exynos_mipi_dsi_clear_frame_done,
 };
 
-int exynos_mipi_dsi_init(void)
+int exynos_mipi_dsi_init(struct exynos_platform_mipi_dsim *dsim_pd)
 {
        struct mipi_dsim_device *dsim;
        struct mipi_dsim_config *dsim_config;
@@ -236,16 +234,6 @@ int exynos_mipi_dsi_init(void)
        return 0;
 }
 
-void exynos_set_dsim_platform_data(struct exynos_platform_mipi_dsim *pd)
-{
-       if (pd == NULL) {
-               debug("pd is NULL\n");
-               return;
-       }
-
-       dsim_pd = pd;
-}
-
 int exynos_dsim_config_parse_dt(const void *blob, struct mipi_dsim_config *dt)
 {
        int node;
@@ -316,7 +304,8 @@ int exynos_dsim_config_parse_dt(const void *blob, struct mipi_dsim_config *dt)
 
 void exynos_init_dsim_platform_data(vidinfo_t *vid)
 {
-       struct mipi_dsim_config dsim_config_dt;
+       static struct mipi_dsim_config dsim_config_dt;
+       static struct exynos_platform_mipi_dsim dsim_platform_data_dt;
 
        if (exynos_dsim_config_parse_dt(gd->fdt_blob, &dsim_config_dt))
                debug("Can't get proper dsim config.\n");
@@ -330,5 +319,5 @@ void exynos_init_dsim_platform_data(vidinfo_t *vid)
        mipi_lcd_device_dt.platform_data = (void *)&dsim_platform_data_dt;
        exynos_mipi_dsi_register_lcd_device(&mipi_lcd_device_dt);
 
-       dsim_pd = &dsim_platform_data_dt;
+       vid->dsim_platform_data_dt = &dsim_platform_data_dt;
 }
index 1f6c6c75a270efb2d76e4ba374bfeff7e3ad5628..0aa0fc71a3b74c95e37dfa898c8ca1a9253a9756 100644 (file)
@@ -76,6 +76,7 @@ typedef struct vidinfo {
 
        unsigned int dual_lcd_enabled;
        struct exynos_fb *fimd_ctrl;
+       struct exynos_platform_mipi_dsim *dsim_platform_data_dt;
 } vidinfo_t;
 
 #endif