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: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Laurent Pinchart 2015-03-05 22:50:51 +02:00
parent 9416c9df8e
commit aea3cab1d1
3 changed files with 10 additions and 32 deletions

View File

@ -260,7 +260,7 @@ struct drm_encoder *omap_connector_attached_encoder(
}
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,
.detect = omap_connector_detect,
.fill_modes = drm_helper_probe_single_connector_modes,

View File

@ -592,19 +592,6 @@ static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc)
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)
{
dispc_runtime_get();
@ -749,7 +736,6 @@ static const struct drm_crtc_funcs omap_crtc_funcs = {
};
static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs = {
.dpms = omap_crtc_dpms,
.mode_fixup = omap_crtc_mode_fixup,
.mode_set_nofb = omap_crtc_mode_set_nofb,
.disable = omap_crtc_disable,

View File

@ -62,22 +62,6 @@ static const struct drm_encoder_funcs omap_encoder_funcs = {
.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,
const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
@ -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)
{
}
@ -125,7 +118,6 @@ static void omap_encoder_enable(struct drm_encoder *encoder)
}
static const struct drm_encoder_helper_funcs omap_encoder_helper_funcs = {
.dpms = omap_encoder_dpms,
.mode_fixup = omap_encoder_mode_fixup,
.mode_set = omap_encoder_mode_set,
.disable = omap_encoder_disable,