drm/i915/dp: make is_edp non-static and rename to intel_dp_is_edp
Expose across driver for future work. No functional changes. Cc: Manasi Navare <manasi.d.navare@intel.com> Cc: Jim Bride <jim.bride@linux.intel.com> Reviewed-by: Jim Bride <jim.bride@linux.intel.com> Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170818093020.19160-2-jani.nikula@intel.com
This commit is contained in:
parent
7b91bf7f91
commit
1853a9daa1
|
@ -103,13 +103,13 @@ static const int cnl_rates[] = { 162000, 216000, 270000,
|
||||||
static const int default_rates[] = { 162000, 270000, 540000 };
|
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
|
* @intel_dp: DP struct
|
||||||
*
|
*
|
||||||
* If a CPU or PCH DP output is attached to an eDP panel, this function
|
* If a CPU or PCH DP output is attached to an eDP panel, this function
|
||||||
* will return true, and false otherwise.
|
* 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);
|
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);
|
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)
|
if (mode->hdisplay > fixed_mode->hdisplay)
|
||||||
return MODE_PANEL;
|
return MODE_PANEL;
|
||||||
|
|
||||||
|
@ -597,7 +597,7 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
|
||||||
lockdep_assert_held(&dev_priv->pps_mutex);
|
lockdep_assert_held(&dev_priv->pps_mutex);
|
||||||
|
|
||||||
/* We should never land here with regular DP ports */
|
/* 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 &&
|
WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
|
||||||
intel_dp->active_pipe != intel_dp->pps_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);
|
lockdep_assert_held(&dev_priv->pps_mutex);
|
||||||
|
|
||||||
/* We should never land here with regular DP ports */
|
/* 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
|
* 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_device *dev = intel_dp_to_dev(intel_dp);
|
||||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
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;
|
return 0;
|
||||||
|
|
||||||
pps_lock(intel_dp);
|
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_device *dev = intel_dp_to_dev(intel_dp);
|
||||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!edp_have_panel_power(intel_dp) && !edp_have_panel_vdd(intel_dp)) {
|
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
|
else
|
||||||
pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON;
|
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 =
|
struct drm_display_mode *panel_mode =
|
||||||
intel_connector->panel.alt_fixed_mode;
|
intel_connector->panel.alt_fixed_mode;
|
||||||
struct drm_display_mode *req_mode = &pipe_config->base.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
|
/* Walk through all bpp values. Luckily they're all nicely spaced with 2
|
||||||
* bpc in between. */
|
* bpc in between. */
|
||||||
bpp = intel_dp_compute_bpp(intel_dp, pipe_config);
|
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 */
|
/* Get bpp from vbt only for panels that dont have bpp in edid */
|
||||||
if (intel_connector->base.display_info.bpc == 0 &&
|
if (intel_connector->base.display_info.bpc == 0 &&
|
||||||
|
@ -1829,7 +1829,7 @@ found:
|
||||||
* DPLL0 VCO may need to be adjusted to get the correct
|
* DPLL0 VCO may need to be adjusted to get the correct
|
||||||
* clock for eDP. This will affect cdclk as well.
|
* 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;
|
int vco;
|
||||||
|
|
||||||
switch (pipe_config->port_clock / 2) {
|
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);
|
lockdep_assert_held(&dev_priv->pps_mutex);
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
cancel_delayed_work(&intel_dp->panel_vdd_work);
|
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;
|
bool vdd;
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pps_lock(intel_dp);
|
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);
|
lockdep_assert_held(&dev_priv->pps_mutex);
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
I915_STATE_WARN(!intel_dp->want_panel_vdd, "eDP port %c VDD not forced on",
|
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);
|
lockdep_assert_held(&dev_priv->pps_mutex);
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("Turn eDP port %c panel power on\n",
|
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)
|
void intel_edp_panel_on(struct intel_dp *intel_dp)
|
||||||
{
|
{
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pps_lock(intel_dp);
|
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);
|
lockdep_assert_held(&dev_priv->pps_mutex);
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("Turn eDP port %c panel power off\n",
|
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)
|
void intel_edp_panel_off(struct intel_dp *intel_dp)
|
||||||
{
|
{
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pps_lock(intel_dp);
|
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);
|
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;
|
return;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("\n");
|
DRM_DEBUG_KMS("\n");
|
||||||
|
@ -2377,7 +2377,7 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp)
|
||||||
u32 pp;
|
u32 pp;
|
||||||
i915_reg_t pp_ctrl_reg;
|
i915_reg_t pp_ctrl_reg;
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pps_lock(intel_dp);
|
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);
|
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;
|
return;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("\n");
|
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,
|
intel_dotclock_calculate(pipe_config->port_clock,
|
||||||
&pipe_config->dp_m_n);
|
&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) {
|
pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
|
||||||
/*
|
/*
|
||||||
* This is a big fat ugly hack.
|
* 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;
|
intel_dp->active_pipe = crtc->pipe;
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* now it's all ours */
|
/* now it's all ours */
|
||||||
|
@ -3784,7 +3784,7 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Don't clobber cached eDP rates. */
|
/* 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_sink_rates(intel_dp);
|
||||||
intel_dp_set_common_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
|
* downstream port information. So, an early return here saves
|
||||||
* time from performing other operations which are not required.
|
* 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;
|
return false;
|
||||||
|
|
||||||
if (!drm_dp_is_branch(intel_dp->dpcd))
|
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))
|
if (!intel_dp_get_dpcd(intel_dp))
|
||||||
return connector_status_disconnected;
|
return connector_status_disconnected;
|
||||||
|
|
||||||
if (is_edp(intel_dp))
|
if (intel_dp_is_edp(intel_dp))
|
||||||
return connector_status_connected;
|
return connector_status_connected;
|
||||||
|
|
||||||
/* if there's no downstream port, we're done */
|
/* 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);
|
intel_display_power_get(to_i915(dev), intel_dp->aux_power_domain);
|
||||||
|
|
||||||
/* Can't disconnect eDP, but you can close the lid... */
|
/* 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);
|
status = edp_detect(intel_dp);
|
||||||
else if (intel_digital_port_connected(to_i915(dev),
|
else if (intel_digital_port_connected(to_i915(dev),
|
||||||
dp_to_dig_port(intel_dp)))
|
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->aux.i2c_defer_count = 0;
|
||||||
|
|
||||||
intel_dp_set_edid(intel_dp);
|
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;
|
status = connector_status_connected;
|
||||||
intel_dp->detect_done = true;
|
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 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) {
|
intel_connector->panel.fixed_mode) {
|
||||||
struct drm_display_mode *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))
|
if (!IS_ERR_OR_NULL(intel_connector->edid))
|
||||||
kfree(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)
|
if (connector->connector_type == DRM_MODE_CONNECTOR_eDP)
|
||||||
intel_panel_fini(&intel_connector->panel);
|
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;
|
struct intel_dp *intel_dp = &intel_dig_port->dp;
|
||||||
|
|
||||||
intel_dp_mst_encoder_cleanup(intel_dig_port);
|
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);
|
cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
|
||||||
/*
|
/*
|
||||||
* vdd might still be enabled do to the delayed vdd off.
|
* 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);
|
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;
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -5036,7 +5038,7 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
|
||||||
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
|
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
|
||||||
intel_dp->active_pipe = vlv_active_pipe(intel_dp);
|
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. */
|
/* Reinit the power sequencer, in case BIOS did something with it. */
|
||||||
intel_dp_pps_init(encoder->dev, intel_dp);
|
intel_dp_pps_init(encoder->dev, intel_dp);
|
||||||
intel_edp_panel_vdd_sanitize(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_force_audio_property(connector);
|
||||||
intel_attach_broadcast_rgb_property(connector);
|
intel_attach_broadcast_rgb_property(connector);
|
||||||
|
|
||||||
if (is_edp(intel_dp)) {
|
if (intel_dp_is_edp(intel_dp)) {
|
||||||
u32 allowed_scalers;
|
u32 allowed_scalers;
|
||||||
|
|
||||||
allowed_scalers = BIT(DRM_MODE_SCALE_ASPECT) | BIT(DRM_MODE_SCALE_FULLSCREEN);
|
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;
|
struct edid *edid;
|
||||||
enum pipe pipe = INVALID_PIPE;
|
enum pipe pipe = INVALID_PIPE;
|
||||||
|
|
||||||
if (!is_edp(intel_dp))
|
if (!intel_dp_is_edp(intel_dp))
|
||||||
return true;
|
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 */
|
/* eDP only on port B and/or C on vlv/chv */
|
||||||
if (WARN_ON((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
|
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;
|
return false;
|
||||||
|
|
||||||
DRM_DEBUG_KMS("Adding %s connector on port %c\n",
|
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;
|
intel_connector->get_hw_state = intel_connector_get_hw_state;
|
||||||
|
|
||||||
/* init MST on ports that can support it */
|
/* 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))
|
(port == PORT_B || port == PORT_C || port == PORT_D))
|
||||||
intel_dp_mst_encoder_init(intel_dig_port,
|
intel_dp_mst_encoder_init(intel_dig_port,
|
||||||
intel_connector->base.base.id);
|
intel_connector->base.base.id);
|
||||||
|
|
|
@ -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,
|
bool intel_dp_compute_config(struct intel_encoder *encoder,
|
||||||
struct intel_crtc_state *pipe_config,
|
struct intel_crtc_state *pipe_config,
|
||||||
struct drm_connector_state *conn_state);
|
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);
|
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,
|
enum irqreturn intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port,
|
||||||
bool long_hpd);
|
bool long_hpd);
|
||||||
|
|
Loading…
Reference in New Issue