Merge tag 'drm-intel-fixes-2021-11-18' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
One quick fix for return error handling, one fix for ADL-P display and one revert targeting stable 5.4, for TGL's DSI display clocks Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/YZbUPIHpR1S3JZ2b@intel.com
This commit is contained in:
@ -696,10 +696,7 @@ static void gen11_dsi_map_pll(struct intel_encoder *encoder,
|
|||||||
intel_de_write(dev_priv, ICL_DPCLKA_CFGCR0, val);
|
intel_de_write(dev_priv, ICL_DPCLKA_CFGCR0, val);
|
||||||
|
|
||||||
for_each_dsi_phy(phy, intel_dsi->phys) {
|
for_each_dsi_phy(phy, intel_dsi->phys) {
|
||||||
if (DISPLAY_VER(dev_priv) >= 12)
|
val &= ~ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
|
||||||
val |= ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
|
|
||||||
else
|
|
||||||
val &= ~ICL_DPCLKA_CFGCR0_DDI_CLK_OFF(phy);
|
|
||||||
}
|
}
|
||||||
intel_de_write(dev_priv, ICL_DPCLKA_CFGCR0, val);
|
intel_de_write(dev_priv, ICL_DPCLKA_CFGCR0, val);
|
||||||
|
|
||||||
@ -1135,8 +1132,6 @@ static void
|
|||||||
gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
|
gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
|
||||||
const struct intel_crtc_state *crtc_state)
|
const struct intel_crtc_state *crtc_state)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
|
|
||||||
|
|
||||||
/* step 4a: power up all lanes of the DDI used by DSI */
|
/* step 4a: power up all lanes of the DDI used by DSI */
|
||||||
gen11_dsi_power_up_lanes(encoder);
|
gen11_dsi_power_up_lanes(encoder);
|
||||||
|
|
||||||
@ -1162,8 +1157,7 @@ gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
|
|||||||
gen11_dsi_configure_transcoder(encoder, crtc_state);
|
gen11_dsi_configure_transcoder(encoder, crtc_state);
|
||||||
|
|
||||||
/* Step 4l: Gate DDI clocks */
|
/* Step 4l: Gate DDI clocks */
|
||||||
if (DISPLAY_VER(dev_priv) == 11)
|
gen11_dsi_gate_clocks(encoder);
|
||||||
gen11_dsi_gate_clocks(encoder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gen11_dsi_powerup_panel(struct intel_encoder *encoder)
|
static void gen11_dsi_powerup_panel(struct intel_encoder *encoder)
|
||||||
@ -1271,7 +1265,8 @@ static void adlp_set_lp_hs_wakeup_gb(struct intel_encoder *encoder)
|
|||||||
if (DISPLAY_VER(i915) == 13) {
|
if (DISPLAY_VER(i915) == 13) {
|
||||||
for_each_dsi_port(port, intel_dsi->ports)
|
for_each_dsi_port(port, intel_dsi->ports)
|
||||||
intel_de_rmw(i915, TGL_DSI_CHKN_REG(port),
|
intel_de_rmw(i915, TGL_DSI_CHKN_REG(port),
|
||||||
TGL_DSI_CHKN_LSHS_GB, 0x4);
|
TGL_DSI_CHKN_LSHS_GB_MASK,
|
||||||
|
TGL_DSI_CHKN_LSHS_GB(4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3080,8 +3080,8 @@ guc_create_parallel(struct intel_engine_cs **engines,
|
|||||||
|
|
||||||
ce = intel_engine_create_virtual(siblings, num_siblings,
|
ce = intel_engine_create_virtual(siblings, num_siblings,
|
||||||
FORCE_VIRTUAL);
|
FORCE_VIRTUAL);
|
||||||
if (!ce) {
|
if (IS_ERR(ce)) {
|
||||||
err = ERR_PTR(-ENOMEM);
|
err = ERR_CAST(ce);
|
||||||
goto unwind;
|
goto unwind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11717,7 +11717,9 @@ enum skl_power_gate {
|
|||||||
#define TGL_DSI_CHKN_REG(port) _MMIO_PORT(port, \
|
#define TGL_DSI_CHKN_REG(port) _MMIO_PORT(port, \
|
||||||
_TGL_DSI_CHKN_REG_0, \
|
_TGL_DSI_CHKN_REG_0, \
|
||||||
_TGL_DSI_CHKN_REG_1)
|
_TGL_DSI_CHKN_REG_1)
|
||||||
#define TGL_DSI_CHKN_LSHS_GB REG_GENMASK(15, 12)
|
#define TGL_DSI_CHKN_LSHS_GB_MASK REG_GENMASK(15, 12)
|
||||||
|
#define TGL_DSI_CHKN_LSHS_GB(byte_clocks) REG_FIELD_PREP(TGL_DSI_CHKN_LSHS_GB_MASK, \
|
||||||
|
(byte_clocks))
|
||||||
|
|
||||||
/* Display Stream Splitter Control */
|
/* Display Stream Splitter Control */
|
||||||
#define DSS_CTL1 _MMIO(0x67400)
|
#define DSS_CTL1 _MMIO(0x67400)
|
||||||
|
Reference in New Issue
Block a user