]> git.sur5r.net Git - u-boot/blobdiff - drivers/video/exynos/exynos_mipi_dsi.c
video: Drop CONFIG_VIDEO_HW_CURSOR
[u-boot] / drivers / video / exynos / exynos_mipi_dsi.c
index fd963821ac7cd348acf59d4f1bfb6f29f6d5f667..a5d9b5921868c00bf32543ac493f601be6398ec5 100644 (file)
 
 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 {
        int                             bus_id;
        struct list_head                list;
@@ -175,7 +171,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,17 +232,8 @@ 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 exynos_dsim_config_parse_dt(const void *blob, struct mipi_dsim_config *dt,
+                               struct mipi_dsim_lcd_device *lcd_dt)
 {
        int node;
 
@@ -299,16 +286,16 @@ int exynos_dsim_config_parse_dt(const void *blob, struct mipi_dsim_config *dt)
        dt->rx_timeout = fdtdec_get_int(blob, node,
                                "samsung,dsim-config-rx-timeout", 0);
 
-       mipi_lcd_device_dt.name = fdtdec_get_config_string(blob,
+       lcd_dt->name = fdtdec_get_config_string(blob,
                                "samsung,dsim-device-name");
 
-       mipi_lcd_device_dt.id = fdtdec_get_int(blob, node,
+       lcd_dt->id = fdtdec_get_int(blob, node,
                                "samsung,dsim-device-id", 0);
 
-       mipi_lcd_device_dt.bus_id = fdtdec_get_int(blob, node,
+       lcd_dt->bus_id = fdtdec_get_int(blob, node,
                                "samsung,dsim-device-bus_id", 0);
 
-       mipi_lcd_device_dt.reverse_panel = fdtdec_get_int(blob, node,
+       lcd_dt->reverse_panel = fdtdec_get_int(blob, node,
                                "samsung,dsim-device-reverse-panel", 0);
 
        return 0;
@@ -316,9 +303,12 @@ 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;
+       static struct mipi_dsim_lcd_device mipi_lcd_device_dt;
 
-       if (exynos_dsim_config_parse_dt(gd->fdt_blob, &dsim_config_dt))
+       if (exynos_dsim_config_parse_dt(gd->fdt_blob, &dsim_config_dt,
+                                       &mipi_lcd_device_dt))
                debug("Can't get proper dsim config.\n");
 
        strcpy(dsim_platform_data_dt.lcd_panel_name, mipi_lcd_device_dt.name);
@@ -330,5 +320,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;
 }