On Mon, 17 Sep 2018, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Remove the local lvds fixed mode pointer from the sdvo encoder > structure and instead utilize intel_panel like everyone else. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_sdvo.c | 40 ++++++++++++++++++++------------------- > 1 file changed, 21 insertions(+), 19 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c > index 701372e512a8..11e8d598702e 100644 > --- a/drivers/gpu/drm/i915/intel_sdvo.c > +++ b/drivers/gpu/drm/i915/intel_sdvo.c > @@ -105,11 +105,6 @@ struct intel_sdvo { > bool has_hdmi_audio; > bool rgb_quant_range_selectable; > > - /** > - * This is sdvo fixed pannel mode pointer > - */ > - struct drm_display_mode *sdvo_lvds_fixed_mode; > - > /* DDC bus used by this SDVO encoder */ > uint8_t ddc_bus; > > @@ -765,10 +760,14 @@ intel_sdvo_create_preferred_input_timing(struct intel_sdvo *intel_sdvo, > args.height = height; > args.interlace = 0; > > - if (IS_LVDS(intel_sdvo_connector) && > - (intel_sdvo->sdvo_lvds_fixed_mode->hdisplay != width || > - intel_sdvo->sdvo_lvds_fixed_mode->vdisplay != height)) > - args.scaled = 1; > + if (IS_LVDS(intel_sdvo_connector)) { > + const struct drm_display_mode *fixed_mode = > + intel_sdvo_connector->base.panel.fixed_mode; > + > + if (fixed_mode->hdisplay != width || > + fixed_mode->vdisplay != height) > + args.scaled = 1; > + } > > return intel_sdvo_set_value(intel_sdvo, > SDVO_CMD_CREATE_PREFERRED_INPUT_TIMING, > @@ -1144,7 +1143,7 @@ static bool intel_sdvo_compute_config(struct intel_encoder *encoder, > pipe_config->sdvo_tv_clock = true; > } else if (IS_LVDS(intel_sdvo_connector)) { > if (!intel_sdvo_set_output_timings_from_mode(intel_sdvo, > - intel_sdvo->sdvo_lvds_fixed_mode)) > + intel_sdvo_connector->base.panel.fixed_mode)) > return false; > > (void) intel_sdvo_get_preferred_input_mode(intel_sdvo, > @@ -1301,7 +1300,7 @@ static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder, > /* lvds has a special fixed output timing. */ > if (IS_LVDS(intel_sdvo_connector)) > intel_sdvo_get_dtd_from_mode(&output_dtd, > - intel_sdvo->sdvo_lvds_fixed_mode); > + intel_sdvo_connector->base.panel.fixed_mode); > else > intel_sdvo_get_dtd_from_mode(&output_dtd, mode); > if (!intel_sdvo_set_output_timing(intel_sdvo, &output_dtd)) > @@ -1642,10 +1641,13 @@ intel_sdvo_mode_valid(struct drm_connector *connector, > return MODE_CLOCK_HIGH; > > if (IS_LVDS(intel_sdvo_connector)) { > - if (mode->hdisplay > intel_sdvo->sdvo_lvds_fixed_mode->hdisplay) > + const struct drm_display_mode *fixed_mode = > + intel_sdvo_connector->base.panel.fixed_mode; > + > + if (mode->hdisplay > fixed_mode->hdisplay) > return MODE_PANEL; > > - if (mode->vdisplay > intel_sdvo->sdvo_lvds_fixed_mode->vdisplay) > + if (mode->vdisplay > fixed_mode->vdisplay) > return MODE_PANEL; > } > > @@ -2063,6 +2065,7 @@ static void intel_sdvo_destroy(struct drm_connector *connector) > struct intel_sdvo_connector *intel_sdvo_connector = to_intel_sdvo_connector(connector); > > drm_connector_cleanup(connector); > + intel_panel_fini(&intel_sdvo_connector->base.panel); > kfree(intel_sdvo_connector); > } > > @@ -2267,10 +2270,6 @@ static void intel_sdvo_enc_destroy(struct drm_encoder *encoder) > { > struct intel_sdvo *intel_sdvo = to_sdvo(to_intel_encoder(encoder)); > > - if (intel_sdvo->sdvo_lvds_fixed_mode != NULL) > - drm_mode_destroy(encoder->dev, > - intel_sdvo->sdvo_lvds_fixed_mode); > - > i2c_del_adapter(&intel_sdvo->ddc); > intel_encoder_destroy(encoder); > } > @@ -2663,13 +2662,16 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device) > > list_for_each_entry(mode, &connector->probed_modes, head) { > if (mode->type & DRM_MODE_TYPE_PREFERRED) { > - intel_sdvo->sdvo_lvds_fixed_mode = > + struct drm_display_mode *fixed_mode = > drm_mode_duplicate(connector->dev, mode); > + > + intel_panel_init(&intel_connector->panel, > + fixed_mode, NULL); > break; > } > } > > - if (!intel_sdvo->sdvo_lvds_fixed_mode) > + if (!intel_connector->panel.fixed_mode) > goto err; > > return true; -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx