On Fri, 18 Aug 2017, Manasi Navare <manasi.d.navare@xxxxxxxxx> wrote: > Thanks for the patch, will rebase my patch on top of this. Both pushed, thanks for the reviews. BR, Jani. > > Manasi > > On Fri, Aug 18, 2017 at 12:30:20PM +0300, Jani Nikula wrote: >> Expose across driver for future work. No functional changes. >> >> Cc: Manasi Navare <manasi.d.navare@xxxxxxxxx> >> Cc: Jim Bride <jim.bride@xxxxxxxxxxxxxxx> >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > > Reviewed-by: Manasi Navare <manasi.d.navare@xxxxxxxxx> > >> --- >> drivers/gpu/drm/i915/intel_dp.c | 77 +++++++++++++++++++++------------------- >> drivers/gpu/drm/i915/intel_drv.h | 1 + >> 2 files changed, 41 insertions(+), 37 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c >> index 29ed1deb9c84..e38565829d19 100644 >> --- a/drivers/gpu/drm/i915/intel_dp.c >> +++ b/drivers/gpu/drm/i915/intel_dp.c >> @@ -103,13 +103,13 @@ static const int cnl_rates[] = { 162000, 216000, 270000, >> static const int default_rates[] = { 162000, 270000, 540000 }; >> >> /** >> - * is_edp - is the given port attached to an eDP panel (either CPU or PCH) >> + * intel_dp_is_edp - is the given port attached to an eDP panel (either CPU or PCH) >> * @intel_dp: DP struct >> * >> * If a CPU or PCH DP output is attached to an eDP panel, this function >> * will return true, and false otherwise. >> */ >> -static bool is_edp(struct intel_dp *intel_dp) >> +bool intel_dp_is_edp(struct intel_dp *intel_dp) >> { >> struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); >> >> @@ -388,7 +388,7 @@ intel_dp_mode_valid(struct drm_connector *connector, >> >> max_dotclk = intel_dp_downstream_max_dotclock(intel_dp); >> >> - if (is_edp(intel_dp) && fixed_mode) { >> + if (intel_dp_is_edp(intel_dp) && fixed_mode) { >> if (mode->hdisplay > fixed_mode->hdisplay) >> return MODE_PANEL; >> >> @@ -597,7 +597,7 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp) >> lockdep_assert_held(&dev_priv->pps_mutex); >> >> /* We should never land here with regular DP ports */ >> - WARN_ON(!is_edp(intel_dp)); >> + WARN_ON(!intel_dp_is_edp(intel_dp)); >> >> WARN_ON(intel_dp->active_pipe != INVALID_PIPE && >> intel_dp->active_pipe != intel_dp->pps_pipe); >> @@ -644,7 +644,7 @@ bxt_power_sequencer_idx(struct intel_dp *intel_dp) >> lockdep_assert_held(&dev_priv->pps_mutex); >> >> /* We should never land here with regular DP ports */ >> - WARN_ON(!is_edp(intel_dp)); >> + WARN_ON(!intel_dp_is_edp(intel_dp)); >> >> /* >> * TODO: BXT has 2 PPS instances. The correct port->PPS instance >> @@ -847,7 +847,7 @@ static int edp_notify_handler(struct notifier_block *this, unsigned long code, >> struct drm_device *dev = intel_dp_to_dev(intel_dp); >> struct drm_i915_private *dev_priv = to_i915(dev); >> >> - if (!is_edp(intel_dp) || code != SYS_RESTART) >> + if (!intel_dp_is_edp(intel_dp) || code != SYS_RESTART) >> return 0; >> >> pps_lock(intel_dp); >> @@ -907,7 +907,7 @@ intel_dp_check_edp(struct intel_dp *intel_dp) >> struct drm_device *dev = intel_dp_to_dev(intel_dp); >> struct drm_i915_private *dev_priv = to_i915(dev); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> if (!edp_have_panel_power(intel_dp) && !edp_have_panel_vdd(intel_dp)) { >> @@ -1681,7 +1681,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, >> else >> pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON; >> >> - if (is_edp(intel_dp) && intel_connector->panel.fixed_mode) { >> + if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) { >> struct drm_display_mode *panel_mode = >> intel_connector->panel.alt_fixed_mode; >> struct drm_display_mode *req_mode = &pipe_config->base.mode; >> @@ -1736,7 +1736,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, >> /* Walk through all bpp values. Luckily they're all nicely spaced with 2 >> * bpc in between. */ >> bpp = intel_dp_compute_bpp(intel_dp, pipe_config); >> - if (is_edp(intel_dp)) { >> + if (intel_dp_is_edp(intel_dp)) { >> >> /* Get bpp from vbt only for panels that dont have bpp in edid */ >> if (intel_connector->base.display_info.bpc == 0 && >> @@ -1829,7 +1829,7 @@ intel_dp_compute_config(struct intel_encoder *encoder, >> * DPLL0 VCO may need to be adjusted to get the correct >> * clock for eDP. This will affect cdclk as well. >> */ >> - if (is_edp(intel_dp) && IS_GEN9_BC(dev_priv)) { >> + if (intel_dp_is_edp(intel_dp) && IS_GEN9_BC(dev_priv)) { >> int vco; >> >> switch (pipe_config->port_clock / 2) { >> @@ -2069,7 +2069,7 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp) >> >> lockdep_assert_held(&dev_priv->pps_mutex); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return false; >> >> cancel_delayed_work(&intel_dp->panel_vdd_work); >> @@ -2119,7 +2119,7 @@ void intel_edp_panel_vdd_on(struct intel_dp *intel_dp) >> { >> bool vdd; >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> pps_lock(intel_dp); >> @@ -2203,7 +2203,7 @@ static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync) >> >> lockdep_assert_held(&dev_priv->pps_mutex); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> I915_STATE_WARN(!intel_dp->want_panel_vdd, "eDP port %c VDD not forced on", >> @@ -2226,7 +2226,7 @@ static void edp_panel_on(struct intel_dp *intel_dp) >> >> lockdep_assert_held(&dev_priv->pps_mutex); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> DRM_DEBUG_KMS("Turn eDP port %c panel power on\n", >> @@ -2267,7 +2267,7 @@ static void edp_panel_on(struct intel_dp *intel_dp) >> >> void intel_edp_panel_on(struct intel_dp *intel_dp) >> { >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> pps_lock(intel_dp); >> @@ -2285,7 +2285,7 @@ static void edp_panel_off(struct intel_dp *intel_dp) >> >> lockdep_assert_held(&dev_priv->pps_mutex); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> DRM_DEBUG_KMS("Turn eDP port %c panel power off\n", >> @@ -2316,7 +2316,7 @@ static void edp_panel_off(struct intel_dp *intel_dp) >> >> void intel_edp_panel_off(struct intel_dp *intel_dp) >> { >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> pps_lock(intel_dp); >> @@ -2360,7 +2360,7 @@ void intel_edp_backlight_on(const struct intel_crtc_state *crtc_state, >> { >> struct intel_dp *intel_dp = enc_to_intel_dp(conn_state->best_encoder); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> DRM_DEBUG_KMS("\n"); >> @@ -2377,7 +2377,7 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp) >> u32 pp; >> i915_reg_t pp_ctrl_reg; >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> pps_lock(intel_dp); >> @@ -2401,7 +2401,7 @@ void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state) >> { >> struct intel_dp *intel_dp = enc_to_intel_dp(old_conn_state->best_encoder); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> DRM_DEBUG_KMS("\n"); >> @@ -2666,7 +2666,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder, >> intel_dotclock_calculate(pipe_config->port_clock, >> &pipe_config->dp_m_n); >> >> - if (is_edp(intel_dp) && dev_priv->vbt.edp.bpp && >> + if (intel_dp_is_edp(intel_dp) && dev_priv->vbt.edp.bpp && >> pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) { >> /* >> * This is a big fat ugly hack. >> @@ -3040,7 +3040,7 @@ static void vlv_init_panel_power_sequencer(struct intel_dp *intel_dp) >> >> intel_dp->active_pipe = crtc->pipe; >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> /* now it's all ours */ >> @@ -3784,7 +3784,7 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp) >> return false; >> >> /* Don't clobber cached eDP rates. */ >> - if (!is_edp(intel_dp)) { >> + if (!intel_dp_is_edp(intel_dp)) { >> intel_dp_set_sink_rates(intel_dp); >> intel_dp_set_common_rates(intel_dp); >> } >> @@ -3806,7 +3806,7 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp) >> * downstream port information. So, an early return here saves >> * time from performing other operations which are not required. >> */ >> - if (!is_edp(intel_dp) && !intel_dp->sink_count) >> + if (!intel_dp_is_edp(intel_dp) && !intel_dp->sink_count) >> return false; >> >> if (!drm_dp_is_branch(intel_dp->dpcd)) >> @@ -4396,7 +4396,7 @@ intel_dp_detect_dpcd(struct intel_dp *intel_dp) >> if (!intel_dp_get_dpcd(intel_dp)) >> return connector_status_disconnected; >> >> - if (is_edp(intel_dp)) >> + if (intel_dp_is_edp(intel_dp)) >> return connector_status_connected; >> >> /* if there's no downstream port, we're done */ >> @@ -4712,7 +4712,7 @@ intel_dp_long_pulse(struct intel_connector *intel_connector) >> intel_display_power_get(to_i915(dev), intel_dp->aux_power_domain); >> >> /* Can't disconnect eDP, but you can close the lid... */ >> - if (is_edp(intel_dp)) >> + if (intel_dp_is_edp(intel_dp)) >> status = edp_detect(intel_dp); >> else if (intel_digital_port_connected(to_i915(dev), >> dp_to_dig_port(intel_dp))) >> @@ -4792,7 +4792,7 @@ intel_dp_long_pulse(struct intel_connector *intel_connector) >> intel_dp->aux.i2c_defer_count = 0; >> >> intel_dp_set_edid(intel_dp); >> - if (is_edp(intel_dp) || intel_connector->detect_edid) >> + if (intel_dp_is_edp(intel_dp) || intel_connector->detect_edid) >> status = connector_status_connected; >> intel_dp->detect_done = true; >> >> @@ -4876,7 +4876,7 @@ static int intel_dp_get_modes(struct drm_connector *connector) >> } >> >> /* if eDP has no EDID, fall back to fixed mode */ >> - if (is_edp(intel_attached_dp(connector)) && >> + if (intel_dp_is_edp(intel_attached_dp(connector)) && >> intel_connector->panel.fixed_mode) { >> struct drm_display_mode *mode; >> >> @@ -4927,8 +4927,10 @@ intel_dp_connector_destroy(struct drm_connector *connector) >> if (!IS_ERR_OR_NULL(intel_connector->edid)) >> kfree(intel_connector->edid); >> >> - /* Can't call is_edp() since the encoder may have been destroyed >> - * already. */ >> + /* >> + * Can't call intel_dp_is_edp() since the encoder may have been >> + * destroyed already. >> + */ >> if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) >> intel_panel_fini(&intel_connector->panel); >> >> @@ -4942,7 +4944,7 @@ void intel_dp_encoder_destroy(struct drm_encoder *encoder) >> struct intel_dp *intel_dp = &intel_dig_port->dp; >> >> intel_dp_mst_encoder_cleanup(intel_dig_port); >> - if (is_edp(intel_dp)) { >> + if (intel_dp_is_edp(intel_dp)) { >> cancel_delayed_work_sync(&intel_dp->panel_vdd_work); >> /* >> * vdd might still be enabled do to the delayed vdd off. >> @@ -4968,7 +4970,7 @@ void intel_dp_encoder_suspend(struct intel_encoder *intel_encoder) >> { >> struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base); >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return; >> >> /* >> @@ -5036,7 +5038,7 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder) >> if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) >> intel_dp->active_pipe = vlv_active_pipe(intel_dp); >> >> - if (is_edp(intel_dp)) { >> + if (intel_dp_is_edp(intel_dp)) { >> /* Reinit the power sequencer, in case BIOS did something with it. */ >> intel_dp_pps_init(encoder->dev, intel_dp); >> intel_edp_panel_vdd_sanitize(intel_dp); >> @@ -5160,7 +5162,7 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect >> intel_attach_force_audio_property(connector); >> intel_attach_broadcast_rgb_property(connector); >> >> - if (is_edp(intel_dp)) { >> + if (intel_dp_is_edp(intel_dp)) { >> u32 allowed_scalers; >> >> allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) | BIT(DRM_MODE_SCALE_FULLSCREEN); >> @@ -5826,7 +5828,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, >> struct edid *edid; >> enum pipe pipe = INVALID_PIPE; >> >> - if (!is_edp(intel_dp)) >> + if (!intel_dp_is_edp(intel_dp)) >> return true; >> >> /* >> @@ -6060,7 +6062,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, >> >> /* eDP only on port B and/or C on vlv/chv */ >> if (WARN_ON((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) && >> - is_edp(intel_dp) && port != PORT_B && port != PORT_C)) >> + intel_dp_is_edp(intel_dp) && >> + port != PORT_B && port != PORT_C)) >> return false; >> >> DRM_DEBUG_KMS("Adding %s connector on port %c\n", >> @@ -6088,7 +6091,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, >> intel_connector->get_hw_state = intel_connector_get_hw_state; >> >> /* init MST on ports that can support it */ >> - if (HAS_DP_MST(dev_priv) && !is_edp(intel_dp) && >> + if (HAS_DP_MST(dev_priv) && !intel_dp_is_edp(intel_dp) && >> (port == PORT_B || port == PORT_C || port == PORT_D)) >> intel_dp_mst_encoder_init(intel_dig_port, >> intel_connector->base.base.id); >> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h >> index 690e3b67dc1c..2940d393ecfd 100644 >> --- a/drivers/gpu/drm/i915/intel_drv.h >> +++ b/drivers/gpu/drm/i915/intel_drv.h >> @@ -1499,6 +1499,7 @@ int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc); >> bool intel_dp_compute_config(struct intel_encoder *encoder, >> struct intel_crtc_state *pipe_config, >> struct drm_connector_state *conn_state); >> +bool intel_dp_is_edp(struct intel_dp *intel_dp); >> bool intel_dp_is_port_edp(struct drm_i915_private *dev_priv, enum port port); >> enum irqreturn intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, >> bool long_hpd); >> -- >> 2.11.0 >> -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx