[PATCH v5 4/7] drm: sun4i: dsi: Add mode_set function
Jagan Teki
jagan at amarulasolutions.com
Sun Nov 21 22:52:20 PST 2021
Get the display mode settings via mode_set bridge function
instead of explicitly de-reference.
Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
---
Changes for v5:
- new patch
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 12 +++++++++++-
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 1 +
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index a6a272b55f77..731af31e2bde 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -718,7 +718,7 @@ static void sun6i_dsi_bridge_atomic_enable(struct drm_bridge *bridge,
struct drm_bridge_state *old_bridge_state)
{
struct sun6i_dsi *dsi = bridge_to_sun6i_dsi(bridge);
- struct drm_display_mode *mode = &bridge->encoder->crtc->state->adjusted_mode;
+ struct drm_display_mode *mode = &dsi->mode;
struct mipi_dsi_device *device = dsi->device;
union phy_configure_opts opts = { };
struct phy_configure_opts_mipi_dphy *cfg = &opts.mipi_dphy;
@@ -854,6 +854,15 @@ static const struct drm_connector_funcs sun6i_dsi_connector_funcs = {
.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
};
+static void sun6i_dsi_bridge_mode_set(struct drm_bridge *bridge,
+ const struct drm_display_mode *mode,
+ const struct drm_display_mode *adjusted_mode)
+{
+ struct sun6i_dsi *dsi = bridge_to_sun6i_dsi(bridge);
+
+ drm_mode_copy(&dsi->mode, adjusted_mode);
+}
+
static int sun6i_dsi_bridge_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{
@@ -872,6 +881,7 @@ static const struct drm_bridge_funcs sun6i_dsi_bridge_funcs = {
.atomic_reset = drm_atomic_helper_bridge_reset,
.atomic_enable = sun6i_dsi_bridge_atomic_enable,
.atomic_disable = sun6i_dsi_bridge_atomic_disable,
+ .mode_set = sun6i_dsi_bridge_mode_set,
.attach = sun6i_dsi_bridge_attach,
};
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
index d269304691c9..acdd586a4157 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
@@ -20,6 +20,7 @@ struct sun6i_dsi {
struct drm_connector connector;
struct drm_encoder encoder;
struct mipi_dsi_host host;
+ struct drm_display_mode mode;
struct clk *bus_clk;
struct clk *mod_clk;
--
2.25.1
More information about the linux-arm-kernel
mailing list