Commit b31f784f authored by Alexander Stein's avatar Alexander Stein Committed by Robert Foss

drm/bridge: lvds-codec: Implement atomic_get_input_bus_fmts for LVDS encoder

atomic_get_input_bus_fmts is only implemented for LVDS decoders, resulting
that LVDS encoders only support bus format MEDIA_BUS_FMT_FIXED. This
results in warnings like:
mxsfb 21c8000.lcdif: Bridge does not provide bus format, assuming
 MEDIA_BUS_FMT_RGB888_1X24.
Please fix bridge driver by handling atomic_get_input_bus_fmts.

Fix this by reusing lvds_codec_atomic_get_input_bus_fmts currently used
for LVDS decoders. Use RGB888_1X24 for LVDS encoders. This also allows
removing the dedicated struct drm_bridge_funcs for decoders.
Signed-off-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: default avatarRobert Foss <rfoss@kernel.org>
Signed-off-by: default avatarRobert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230810063229.597533-1-alexander.stein@ew.tq-group.com
parent 15f389da
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
*/ */
#include <linux/gpio/consumer.h> #include <linux/gpio/consumer.h>
#include <linux/media-bus-format.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_graph.h> #include <linux/of_graph.h>
...@@ -71,12 +72,6 @@ static void lvds_codec_disable(struct drm_bridge *bridge) ...@@ -71,12 +72,6 @@ static void lvds_codec_disable(struct drm_bridge *bridge)
"Failed to disable regulator \"vcc\": %d\n", ret); "Failed to disable regulator \"vcc\": %d\n", ret);
} }
static const struct drm_bridge_funcs funcs = {
.attach = lvds_codec_attach,
.enable = lvds_codec_enable,
.disable = lvds_codec_disable,
};
#define MAX_INPUT_SEL_FORMATS 1 #define MAX_INPUT_SEL_FORMATS 1
static u32 * static u32 *
lvds_codec_atomic_get_input_bus_fmts(struct drm_bridge *bridge, lvds_codec_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
...@@ -102,7 +97,7 @@ lvds_codec_atomic_get_input_bus_fmts(struct drm_bridge *bridge, ...@@ -102,7 +97,7 @@ lvds_codec_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
return input_fmts; return input_fmts;
} }
static const struct drm_bridge_funcs funcs_decoder = { static const struct drm_bridge_funcs funcs = {
.attach = lvds_codec_attach, .attach = lvds_codec_attach,
.enable = lvds_codec_enable, .enable = lvds_codec_enable,
.disable = lvds_codec_disable, .disable = lvds_codec_disable,
...@@ -184,8 +179,9 @@ static int lvds_codec_probe(struct platform_device *pdev) ...@@ -184,8 +179,9 @@ static int lvds_codec_probe(struct platform_device *pdev)
return ret; return ret;
} else { } else {
lvds_codec->bus_format = ret; lvds_codec->bus_format = ret;
lvds_codec->bridge.funcs = &funcs_decoder;
} }
} else {
lvds_codec->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment