Commit aea3cab1 authored by Laurent Pinchart's avatar Laurent Pinchart

drm: omapdrm: Switch connector DPMS to atomic helpers

The atomic connector DPMS helper implements the connector DPMS operation
using atomic commit, removing the need for DPMS helper operations on
CRTCs and encoders.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 9416c9df
...@@ -260,7 +260,7 @@ struct drm_encoder *omap_connector_attached_encoder( ...@@ -260,7 +260,7 @@ struct drm_encoder *omap_connector_attached_encoder(
} }
static const struct drm_connector_funcs omap_connector_funcs = { static const struct drm_connector_funcs omap_connector_funcs = {
.dpms = drm_helper_connector_dpms, .dpms = drm_atomic_helper_connector_dpms,
.reset = drm_atomic_helper_connector_reset, .reset = drm_atomic_helper_connector_reset,
.detect = omap_connector_detect, .detect = omap_connector_detect,
.fill_modes = drm_helper_probe_single_connector_modes, .fill_modes = drm_helper_probe_single_connector_modes,
......
...@@ -592,19 +592,6 @@ static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc) ...@@ -592,19 +592,6 @@ static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc)
copy_timings_drm_to_omap(&omap_crtc->timings, mode); copy_timings_drm_to_omap(&omap_crtc->timings, mode);
} }
static void omap_crtc_dpms(struct drm_crtc *crtc, int mode)
{
struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
bool enable = (mode == DRM_MODE_DPMS_ON);
DBG("%s: %d", omap_crtc->name, mode);
if (enable)
omap_crtc_enable(crtc);
else
omap_crtc_disable(crtc);
}
static void omap_crtc_atomic_begin(struct drm_crtc *crtc) static void omap_crtc_atomic_begin(struct drm_crtc *crtc)
{ {
dispc_runtime_get(); dispc_runtime_get();
...@@ -749,7 +736,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = { ...@@ -749,7 +736,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
}; };
static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs = { static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs = {
.dpms = omap_crtc_dpms,
.mode_fixup = omap_crtc_mode_fixup, .mode_fixup = omap_crtc_mode_fixup,
.mode_set_nofb = omap_crtc_mode_set_nofb, .mode_set_nofb = omap_crtc_mode_set_nofb,
.disable = omap_crtc_disable, .disable = omap_crtc_disable,
......
...@@ -62,22 +62,6 @@ static const struct drm_encoder_funcs omap_encoder_funcs = { ...@@ -62,22 +62,6 @@ static const struct drm_encoder_funcs omap_encoder_funcs = {
.destroy = omap_encoder_destroy, .destroy = omap_encoder_destroy,
}; };
/*
* The CRTC drm_crtc_helper_set_mode() doesn't really give us the right
* order.. the easiest way to work around this for now is to make all
* the encoder-helper's no-op's and have the omap_crtc code take care
* of the sequencing and call us in the right points.
*
* Eventually to handle connecting CRTCs to different encoders properly,
* either the CRTC helpers need to change or we need to replace
* drm_crtc_helper_set_mode(), but lets wait until atomic-modeset for
* that.
*/
static void omap_encoder_dpms(struct drm_encoder *encoder, int mode)
{
}
static bool omap_encoder_mode_fixup(struct drm_encoder *encoder, static bool omap_encoder_mode_fixup(struct drm_encoder *encoder,
const struct drm_display_mode *mode, const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode) struct drm_display_mode *adjusted_mode)
...@@ -116,6 +100,15 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder, ...@@ -116,6 +100,15 @@ static void omap_encoder_mode_set(struct drm_encoder *encoder,
} }
} }
/*
* The CRTC drm_crtc_helper_set_mode() didn't really give us the right order.
* The easiest way to work around this was to make all the encoder-helper's
* no-op's and have the omap_crtc code take care of the sequencing and call
* us in the right points.
*
* FIXME: Revisit this after switching to atomic updates completely.
*/
static void omap_encoder_disable(struct drm_encoder *encoder) static void omap_encoder_disable(struct drm_encoder *encoder)
{ {
} }
...@@ -125,7 +118,6 @@ static void omap_encoder_enable(struct drm_encoder *encoder) ...@@ -125,7 +118,6 @@ static void omap_encoder_enable(struct drm_encoder *encoder)
} }
static const struct drm_encoder_helper_funcs omap_encoder_helper_funcs = { static const struct drm_encoder_helper_funcs omap_encoder_helper_funcs = {
.dpms = omap_encoder_dpms,
.mode_fixup = omap_encoder_mode_fixup, .mode_fixup = omap_encoder_mode_fixup,
.mode_set = omap_encoder_mode_set, .mode_set = omap_encoder_mode_set,
.disable = omap_encoder_disable, .disable = omap_encoder_disable,
......
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