Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a2ad502 authored by Philipp Zabel's avatar Philipp Zabel
Browse files

drm/imx: imx-ldb: use encoder atomic_mode_set callback



Using atomic_mode_set instead of mode_set allows to access crtc
and connector states in addition to the modes. This allows to
remove the connector list walk.

Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
parent fe4a11c9
Loading
Loading
Loading
Loading
+10 −14
Original line number Diff line number Diff line
@@ -252,11 +252,13 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
	drm_panel_enable(imx_ldb_ch->panel);
}

static void imx_ldb_encoder_mode_set(struct drm_encoder *encoder,
			 struct drm_display_mode *orig_mode,
			 struct drm_display_mode *mode)
static void
imx_ldb_encoder_atomic_mode_set(struct drm_encoder *encoder,
				struct drm_crtc_state *crtc_state,
				struct drm_connector_state *connector_state)
{
	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
	struct drm_display_mode *mode = &crtc_state->adjusted_mode;
	struct imx_ldb *ldb = imx_ldb_ch->ldb;
	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
	unsigned long serial_clk;
@@ -298,17 +300,11 @@ static void imx_ldb_encoder_mode_set(struct drm_encoder *encoder,
	}

	if (!bus_format) {
		struct drm_connector *connector;

		drm_for_each_connector(connector, encoder->dev) {
		struct drm_connector *connector = connector_state->connector;
		struct drm_display_info *di = &connector->display_info;

			if (connector->encoder == encoder &&
			    di->num_bus_formats) {
		if (di->num_bus_formats)
			bus_format = di->bus_formats[0];
				break;
			}
		}
	}
	imx_ldb_ch_set_bus_format(imx_ldb_ch, bus_format);
}
@@ -426,7 +422,7 @@ static const struct drm_encoder_funcs imx_ldb_encoder_funcs = {
};

static const struct drm_encoder_helper_funcs imx_ldb_encoder_helper_funcs = {
	.mode_set = imx_ldb_encoder_mode_set,
	.atomic_mode_set = imx_ldb_encoder_atomic_mode_set,
	.enable = imx_ldb_encoder_enable,
	.disable = imx_ldb_encoder_disable,
	.atomic_check = imx_ldb_encoder_atomic_check,