|
@@ -163,16 +163,14 @@ drm_encoder_disable(struct drm_encoder *encoder)
|
|
|
{
|
|
{
|
|
|
const struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
|
const struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
|
|
|
|
|
|
|
- if (encoder->bridge)
|
|
|
|
|
- encoder->bridge->funcs->disable(encoder->bridge);
|
|
|
|
|
|
|
+ drm_bridge_disable(encoder->bridge);
|
|
|
|
|
|
|
|
if (encoder_funcs->disable)
|
|
if (encoder_funcs->disable)
|
|
|
(*encoder_funcs->disable)(encoder);
|
|
(*encoder_funcs->disable)(encoder);
|
|
|
else
|
|
else
|
|
|
(*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
|
(*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
|
|
|
|
|
|
|
|
- if (encoder->bridge)
|
|
|
|
|
- encoder->bridge->funcs->post_disable(encoder->bridge);
|
|
|
|
|
|
|
+ drm_bridge_post_disable(encoder->bridge);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void __drm_helper_disable_unused_functions(struct drm_device *dev)
|
|
static void __drm_helper_disable_unused_functions(struct drm_device *dev)
|
|
@@ -312,13 +310,11 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
|
|
|
if (encoder->crtc != crtc)
|
|
if (encoder->crtc != crtc)
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
- if (encoder->bridge && encoder->bridge->funcs->mode_fixup) {
|
|
|
|
|
- ret = encoder->bridge->funcs->mode_fixup(
|
|
|
|
|
- encoder->bridge, mode, adjusted_mode);
|
|
|
|
|
- if (!ret) {
|
|
|
|
|
- DRM_DEBUG_KMS("Bridge fixup failed\n");
|
|
|
|
|
- goto done;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ret = drm_bridge_mode_fixup(encoder->bridge,
|
|
|
|
|
+ mode, adjusted_mode);
|
|
|
|
|
+ if (!ret) {
|
|
|
|
|
+ DRM_DEBUG_KMS("Bridge fixup failed\n");
|
|
|
|
|
+ goto done;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
encoder_funcs = encoder->helper_private;
|
|
encoder_funcs = encoder->helper_private;
|
|
@@ -343,15 +339,13 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
|
|
|
if (encoder->crtc != crtc)
|
|
if (encoder->crtc != crtc)
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
- if (encoder->bridge)
|
|
|
|
|
- encoder->bridge->funcs->disable(encoder->bridge);
|
|
|
|
|
|
|
+ drm_bridge_disable(encoder->bridge);
|
|
|
|
|
|
|
|
encoder_funcs = encoder->helper_private;
|
|
encoder_funcs = encoder->helper_private;
|
|
|
/* Disable the encoders as the first thing we do. */
|
|
/* Disable the encoders as the first thing we do. */
|
|
|
encoder_funcs->prepare(encoder);
|
|
encoder_funcs->prepare(encoder);
|
|
|
|
|
|
|
|
- if (encoder->bridge)
|
|
|
|
|
- encoder->bridge->funcs->post_disable(encoder->bridge);
|
|
|
|
|
|
|
+ drm_bridge_post_disable(encoder->bridge);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
drm_crtc_prepare_encoders(dev);
|
|
drm_crtc_prepare_encoders(dev);
|
|
@@ -376,9 +370,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
|
|
|
encoder_funcs = encoder->helper_private;
|
|
encoder_funcs = encoder->helper_private;
|
|
|
encoder_funcs->mode_set(encoder, mode, adjusted_mode);
|
|
encoder_funcs->mode_set(encoder, mode, adjusted_mode);
|
|
|
|
|
|
|
|
- if (encoder->bridge && encoder->bridge->funcs->mode_set)
|
|
|
|
|
- encoder->bridge->funcs->mode_set(encoder->bridge, mode,
|
|
|
|
|
- adjusted_mode);
|
|
|
|
|
|
|
+ drm_bridge_mode_set(encoder->bridge, mode, adjusted_mode);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* Now enable the clocks, plane, pipe, and connectors that we set up. */
|
|
/* Now enable the clocks, plane, pipe, and connectors that we set up. */
|
|
@@ -389,14 +381,12 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
|
|
|
if (encoder->crtc != crtc)
|
|
if (encoder->crtc != crtc)
|
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
- if (encoder->bridge)
|
|
|
|
|
- encoder->bridge->funcs->pre_enable(encoder->bridge);
|
|
|
|
|
|
|
+ drm_bridge_pre_enable(encoder->bridge);
|
|
|
|
|
|
|
|
encoder_funcs = encoder->helper_private;
|
|
encoder_funcs = encoder->helper_private;
|
|
|
encoder_funcs->commit(encoder);
|
|
encoder_funcs->commit(encoder);
|
|
|
|
|
|
|
|
- if (encoder->bridge)
|
|
|
|
|
- encoder->bridge->funcs->enable(encoder->bridge);
|
|
|
|
|
|
|
+ drm_bridge_enable(encoder->bridge);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* Calculate and store various constants which
|
|
/* Calculate and store various constants which
|
|
@@ -735,23 +725,19 @@ static void drm_helper_encoder_dpms(struct drm_encoder *encoder, int mode)
|
|
|
struct drm_bridge *bridge = encoder->bridge;
|
|
struct drm_bridge *bridge = encoder->bridge;
|
|
|
const struct drm_encoder_helper_funcs *encoder_funcs;
|
|
const struct drm_encoder_helper_funcs *encoder_funcs;
|
|
|
|
|
|
|
|
- if (bridge) {
|
|
|
|
|
- if (mode == DRM_MODE_DPMS_ON)
|
|
|
|
|
- bridge->funcs->pre_enable(bridge);
|
|
|
|
|
- else
|
|
|
|
|
- bridge->funcs->disable(bridge);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (mode == DRM_MODE_DPMS_ON)
|
|
|
|
|
+ drm_bridge_pre_enable(bridge);
|
|
|
|
|
+ else
|
|
|
|
|
+ drm_bridge_disable(bridge);
|
|
|
|
|
|
|
|
encoder_funcs = encoder->helper_private;
|
|
encoder_funcs = encoder->helper_private;
|
|
|
if (encoder_funcs->dpms)
|
|
if (encoder_funcs->dpms)
|
|
|
encoder_funcs->dpms(encoder, mode);
|
|
encoder_funcs->dpms(encoder, mode);
|
|
|
|
|
|
|
|
- if (bridge) {
|
|
|
|
|
- if (mode == DRM_MODE_DPMS_ON)
|
|
|
|
|
- bridge->funcs->enable(bridge);
|
|
|
|
|
- else
|
|
|
|
|
- bridge->funcs->post_disable(bridge);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (mode == DRM_MODE_DPMS_ON)
|
|
|
|
|
+ drm_bridge_enable(bridge);
|
|
|
|
|
+ else
|
|
|
|
|
+ drm_bridge_post_disable(bridge);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
|
|
static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
|