video: raydium_rm68200: fill characteristics of DSI data link
authorYannick Fertre <yannick.fertre@st.com>
Wed, 24 Jun 2020 08:45:41 +0000 (10:45 +0200)
committerAnatolij Gustschin <agust@denx.de>
Sat, 27 Jun 2020 23:26:55 +0000 (01:26 +0200)
Fill characteristics of DSI data link to platform data instead of
mipi device to avoid memory corruption.

Signed-off-by: Yannick Fertre <yannick.fertre@st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
drivers/video/raydium-rm68200.c

index 9169280..3538945 100644 (file)
@@ -75,9 +75,6 @@ struct rm68200_panel_priv {
        struct udevice *reg;
        struct udevice *backlight;
        struct gpio_desc reset;
-       unsigned int lanes;
-       enum mipi_dsi_pixel_format format;
-       unsigned long mode_flags;
 };
 
 static const struct display_timing default_timing = {
@@ -259,17 +256,8 @@ static int rm68200_panel_enable_backlight(struct udevice *dev)
 static int rm68200_panel_get_display_timing(struct udevice *dev,
                                            struct display_timing *timings)
 {
-       struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
-       struct mipi_dsi_device *device = plat->device;
-       struct rm68200_panel_priv *priv = dev_get_priv(dev);
-
        memcpy(timings, &default_timing, sizeof(*timings));
 
-       /* fill characteristics of DSI data link */
-       device->lanes = priv->lanes;
-       device->format = priv->format;
-       device->mode_flags = priv->mode_flags;
-
        return 0;
 }
 
@@ -308,6 +296,7 @@ static int rm68200_panel_ofdata_to_platdata(struct udevice *dev)
 static int rm68200_panel_probe(struct udevice *dev)
 {
        struct rm68200_panel_priv *priv = dev_get_priv(dev);
+       struct mipi_dsi_panel_plat *plat = dev_get_platdata(dev);
        int ret;
 
        if (IS_ENABLED(CONFIG_DM_REGULATOR) && priv->reg) {
@@ -322,9 +311,10 @@ static int rm68200_panel_probe(struct udevice *dev)
        dm_gpio_set_value(&priv->reset, false);
        mdelay(10);
 
-       priv->lanes = 2;
-       priv->format = MIPI_DSI_FMT_RGB888;
-       priv->mode_flags = MIPI_DSI_MODE_VIDEO |
+       /* fill characteristics of DSI data link */
+       plat->lanes = 2;
+       plat->format = MIPI_DSI_FMT_RGB888;
+       plat->mode_flags = MIPI_DSI_MODE_VIDEO |
                           MIPI_DSI_MODE_VIDEO_BURST |
                           MIPI_DSI_MODE_LPM;