]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/imx/imx-ldb.c
drm/imx: convey the pixelclk-active and de-active flags from DT to the ipu-di driver
[karo-tx-linux.git] / drivers / gpu / drm / imx / imx-ldb.c
index b03919ed60bade2f2051aeb4fc41389f64843608..3ed2d5037fe2b037582fc238cf76c6e12f6e4d6c 100644 (file)
@@ -66,6 +66,7 @@ struct imx_ldb_channel {
        struct drm_display_mode mode;
        int mode_valid;
        u32 bus_format;
+       u32 bus_flags;
 };
 
 static inline struct imx_ldb_channel *con_to_imx_ldb_ch(struct drm_connector *c)
@@ -379,8 +380,13 @@ static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
        u32 bus_format = imx_ldb_ch->bus_format;
 
        /* Bus format description in DT overrides connector display info. */
-       if (!bus_format && di->num_bus_formats)
+       if (!bus_format && di->num_bus_formats) {
                bus_format = di->bus_formats[0];
+               imx_crtc_state->bus_flags = di->bus_flags;
+       } else {
+               bus_format = imx_ldb_ch->bus_format;
+               imx_crtc_state->bus_flags = imx_ldb_ch->bus_flags;
+       }
        switch (bus_format) {
        case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
                imx_crtc_state->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
@@ -674,6 +680,7 @@ static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
                                /* fallback to display-timings node */
                                ret = of_get_drm_display_mode(child,
                                                              &channel->mode,
+                                                             &channel->bus_flags,
                                                              OF_USE_NATIVE_MODE);
                                if (!ret)
                                        channel->mode_valid = 1;