mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00:00
drm/i915/dp: Disable Port sync mode correctly on teardown
While clearing the Ports ync mode enable and master select bits
we need to clear the register completely instead of using disable masks
v3:
* Remove reg variable (Matt)
v2:
* Just write 0 to the reg (Ville)
* Rebase
Bugzilla: https://gitlab.freedesktop.org/drm/intel/issues/5
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Fixes: 51528afe7c
("drm/i915/display/icl: Disable transcoder port sync as part of crtc_disable() sequence")
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191228031204.10189-3-manasi.d.navare@intel.com
This commit is contained in:
parent
aee40639cd
commit
a3d9382bd4
@ -3878,8 +3878,6 @@ static void icl_disable_transcoder_port_sync(const struct intel_crtc_state *old_
|
||||
{
|
||||
struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
|
||||
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
|
||||
i915_reg_t reg;
|
||||
u32 trans_ddi_func_ctl2_val;
|
||||
|
||||
if (old_crtc_state->master_transcoder == INVALID_TRANSCODER)
|
||||
return;
|
||||
@ -3887,10 +3885,7 @@ static void icl_disable_transcoder_port_sync(const struct intel_crtc_state *old_
|
||||
DRM_DEBUG_KMS("Disabling Transcoder Port Sync on Slave Transcoder %s\n",
|
||||
transcoder_name(old_crtc_state->cpu_transcoder));
|
||||
|
||||
reg = TRANS_DDI_FUNC_CTL2(old_crtc_state->cpu_transcoder);
|
||||
trans_ddi_func_ctl2_val = ~(PORT_SYNC_MODE_ENABLE |
|
||||
PORT_SYNC_MODE_MASTER_SELECT_MASK);
|
||||
I915_WRITE(reg, trans_ddi_func_ctl2_val);
|
||||
I915_WRITE(TRANS_DDI_FUNC_CTL2(old_crtc_state->cpu_transcoder), 0);
|
||||
}
|
||||
|
||||
static void intel_ddi_post_disable(struct intel_encoder *encoder,
|
||||
|
Loading…
Reference in New Issue
Block a user