Message ID | 99244c6edf4a26ef2e279c7160d22dbbb5cd95f2.1540900289.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/icl: dsi enabling | expand |
On 10/30/2018 5:26 PM, Jani Nikula wrote: > From: Madhav Chauhan <madhav.chauhan@intel.com> > > Move DSI connector functions to intel_dsi.c and make them available to > both legacy and ICL DSI. > > v2 by Jani: > - Move the functions to intel_dsi.c > - Don't reuse intel_dsi_connector_destroy() Patch 1 & 2 v2 changes, i.e. code movement to intel_dsi.c looks fine to me. Regards, Madhav > > Signed-off-by: Madhav Chauhan <madhav.chauhan@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/intel_dsi.c | 47 +++++++++++++++++++++++++++++++++++++++ > drivers/gpu/drm/i915/intel_dsi.h | 3 +++ > drivers/gpu/drm/i915/vlv_dsi.c | 48 ---------------------------------------- > 3 files changed, 50 insertions(+), 48 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c > index 97e04c272612..b9d5ef79015e 100644 > --- a/drivers/gpu/drm/i915/intel_dsi.c > +++ b/drivers/gpu/drm/i915/intel_dsi.c > @@ -29,6 +29,53 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi) > } > } > > +int intel_dsi_get_modes(struct drm_connector *connector) > +{ > + struct intel_connector *intel_connector = to_intel_connector(connector); > + struct drm_display_mode *mode; > + > + DRM_DEBUG_KMS("\n"); > + > + if (!intel_connector->panel.fixed_mode) { > + DRM_DEBUG_KMS("no fixed mode\n"); > + return 0; > + } > + > + mode = drm_mode_duplicate(connector->dev, > + intel_connector->panel.fixed_mode); > + if (!mode) { > + DRM_DEBUG_KMS("drm_mode_duplicate failed\n"); > + return 0; > + } > + > + drm_mode_probed_add(connector, mode); > + return 1; > +} > + > +enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector, > + struct drm_display_mode *mode) > +{ > + struct intel_connector *intel_connector = to_intel_connector(connector); > + const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode; > + int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; > + > + DRM_DEBUG_KMS("\n"); > + > + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) > + return MODE_NO_DBLESCAN; > + > + if (fixed_mode) { > + if (mode->hdisplay > fixed_mode->hdisplay) > + return MODE_PANEL; > + if (mode->vdisplay > fixed_mode->vdisplay) > + return MODE_PANEL; > + if (fixed_mode->clock > max_dotclk) > + return MODE_CLOCK_HIGH; > + } > + > + return MODE_OK; > +} > + > struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, > const struct mipi_dsi_host_ops *funcs, > enum port port) > diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h > index 09f0fa9ccc7d..10fd1582a8e2 100644 > --- a/drivers/gpu/drm/i915/intel_dsi.h > +++ b/drivers/gpu/drm/i915/intel_dsi.h > @@ -152,6 +152,9 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi); > /* vlv_dsi.c */ > void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port); > enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt); > +int intel_dsi_get_modes(struct drm_connector *connector); > +enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector, > + struct drm_display_mode *mode); > struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, > const struct mipi_dsi_host_ops *funcs, > enum port port); > diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c > index cbb935a9acf3..bab87b62bc2d 100644 > --- a/drivers/gpu/drm/i915/vlv_dsi.c > +++ b/drivers/gpu/drm/i915/vlv_dsi.c > @@ -1212,31 +1212,6 @@ static void intel_dsi_get_config(struct intel_encoder *encoder, > } > } > > -static enum drm_mode_status > -intel_dsi_mode_valid(struct drm_connector *connector, > - struct drm_display_mode *mode) > -{ > - struct intel_connector *intel_connector = to_intel_connector(connector); > - const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode; > - int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; > - > - DRM_DEBUG_KMS("\n"); > - > - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) > - return MODE_NO_DBLESCAN; > - > - if (fixed_mode) { > - if (mode->hdisplay > fixed_mode->hdisplay) > - return MODE_PANEL; > - if (mode->vdisplay > fixed_mode->vdisplay) > - return MODE_PANEL; > - if (fixed_mode->clock > max_dotclk) > - return MODE_CLOCK_HIGH; > - } > - > - return MODE_OK; > -} > - > /* return txclkesc cycles in terms of divider and duration in us */ > static u16 txclkesc(u32 divider, unsigned int us) > { > @@ -1559,29 +1534,6 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder) > } > } > > -static int intel_dsi_get_modes(struct drm_connector *connector) > -{ > - struct intel_connector *intel_connector = to_intel_connector(connector); > - struct drm_display_mode *mode; > - > - DRM_DEBUG_KMS("\n"); > - > - if (!intel_connector->panel.fixed_mode) { > - DRM_DEBUG_KMS("no fixed mode\n"); > - return 0; > - } > - > - mode = drm_mode_duplicate(connector->dev, > - intel_connector->panel.fixed_mode); > - if (!mode) { > - DRM_DEBUG_KMS("drm_mode_duplicate failed\n"); > - return 0; > - } > - > - drm_mode_probed_add(connector, mode); > - return 1; > -} > - > static void intel_dsi_encoder_destroy(struct drm_encoder *encoder) > { > struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c index 97e04c272612..b9d5ef79015e 100644 --- a/drivers/gpu/drm/i915/intel_dsi.c +++ b/drivers/gpu/drm/i915/intel_dsi.c @@ -29,6 +29,53 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi) } } +int intel_dsi_get_modes(struct drm_connector *connector) +{ + struct intel_connector *intel_connector = to_intel_connector(connector); + struct drm_display_mode *mode; + + DRM_DEBUG_KMS("\n"); + + if (!intel_connector->panel.fixed_mode) { + DRM_DEBUG_KMS("no fixed mode\n"); + return 0; + } + + mode = drm_mode_duplicate(connector->dev, + intel_connector->panel.fixed_mode); + if (!mode) { + DRM_DEBUG_KMS("drm_mode_duplicate failed\n"); + return 0; + } + + drm_mode_probed_add(connector, mode); + return 1; +} + +enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) +{ + struct intel_connector *intel_connector = to_intel_connector(connector); + const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode; + int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; + + DRM_DEBUG_KMS("\n"); + + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) + return MODE_NO_DBLESCAN; + + if (fixed_mode) { + if (mode->hdisplay > fixed_mode->hdisplay) + return MODE_PANEL; + if (mode->vdisplay > fixed_mode->vdisplay) + return MODE_PANEL; + if (fixed_mode->clock > max_dotclk) + return MODE_CLOCK_HIGH; + } + + return MODE_OK; +} + struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, const struct mipi_dsi_host_ops *funcs, enum port port) diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h index 09f0fa9ccc7d..10fd1582a8e2 100644 --- a/drivers/gpu/drm/i915/intel_dsi.h +++ b/drivers/gpu/drm/i915/intel_dsi.h @@ -152,6 +152,9 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi); /* vlv_dsi.c */ void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port); enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt); +int intel_dsi_get_modes(struct drm_connector *connector); +enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode); struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, const struct mipi_dsi_host_ops *funcs, enum port port); diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c index cbb935a9acf3..bab87b62bc2d 100644 --- a/drivers/gpu/drm/i915/vlv_dsi.c +++ b/drivers/gpu/drm/i915/vlv_dsi.c @@ -1212,31 +1212,6 @@ static void intel_dsi_get_config(struct intel_encoder *encoder, } } -static enum drm_mode_status -intel_dsi_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) -{ - struct intel_connector *intel_connector = to_intel_connector(connector); - const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode; - int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; - - DRM_DEBUG_KMS("\n"); - - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) - return MODE_NO_DBLESCAN; - - if (fixed_mode) { - if (mode->hdisplay > fixed_mode->hdisplay) - return MODE_PANEL; - if (mode->vdisplay > fixed_mode->vdisplay) - return MODE_PANEL; - if (fixed_mode->clock > max_dotclk) - return MODE_CLOCK_HIGH; - } - - return MODE_OK; -} - /* return txclkesc cycles in terms of divider and duration in us */ static u16 txclkesc(u32 divider, unsigned int us) { @@ -1559,29 +1534,6 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder) } } -static int intel_dsi_get_modes(struct drm_connector *connector) -{ - struct intel_connector *intel_connector = to_intel_connector(connector); - struct drm_display_mode *mode; - - DRM_DEBUG_KMS("\n"); - - if (!intel_connector->panel.fixed_mode) { - DRM_DEBUG_KMS("no fixed mode\n"); - return 0; - } - - mode = drm_mode_duplicate(connector->dev, - intel_connector->panel.fixed_mode); - if (!mode) { - DRM_DEBUG_KMS("drm_mode_duplicate failed\n"); - return 0; - } - - drm_mode_probed_add(connector, mode); - return 1; -} - static void intel_dsi_encoder_destroy(struct drm_encoder *encoder) { struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);