Skip to content

Commit

Permalink
drm/i915/dsi/xelpd: Add WA to program LP to HS wakeup guardband
Browse files Browse the repository at this point in the history
Wa_16012360555 SW will have to program the "LP to HS Wakeup Guardband"
field to account for the repeaters on the HS Request/Ready PPI signaling
between the Display engine and the DPHY.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
  • Loading branch information
Vanditakulkarni authored and intel-lab-lkp committed Aug 23, 2021
1 parent d7f213c commit d75ce06
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
24 changes: 24 additions & 0 deletions drivers/gpu/drm/i915/display/icl_dsi.c
Expand Up @@ -1270,6 +1270,27 @@ static void icl_apply_kvmr_pipe_a_wa(struct intel_encoder *encoder,
IGNORE_KVMR_PIPE_A,
enable ? IGNORE_KVMR_PIPE_A : 0);
}

/*
* Wa_16012360555:ADLP
* SW will have to program the "LP to HS Wakeup Guardband"
* field (bits 15:12) of register offset 0x6B0C0 (DSI0)
* and 0x6B8C0 (DSI1) to a value of 4 to account for the repeaters
* on the HS Request/Ready PPI signaling between
* the Display engine and the DPHY.
*/
static void adlp_set_lp_hs_wakeup_gb(struct intel_encoder *encoder)
{
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
enum port port;

if (DISPLAY_VER(dev_priv) == 13)
for_each_dsi_port(port, intel_dsi->ports)
intel_de_rmw(dev_priv, TGL_DSI_CHKN_REG(port),
TGL_DSI_CHKN_LSHS_GB, 0x4);
}

static void gen11_dsi_enable(struct intel_atomic_state *state,
struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state,
Expand All @@ -1283,6 +1304,9 @@ static void gen11_dsi_enable(struct intel_atomic_state *state,
/* Wa_1409054076:icl,jsl,ehl */
icl_apply_kvmr_pipe_a_wa(encoder, crtc->pipe, true);

/* Wa_16012360555: adlp */
adlp_set_lp_hs_wakeup_gb(encoder);

/* step6d: enable dsi transcoder */
gen11_dsi_enable_transcoder(encoder);

Expand Down
8 changes: 8 additions & 0 deletions drivers/gpu/drm/i915/i915_reg.h
Expand Up @@ -11612,6 +11612,14 @@ enum skl_power_gate {
_ICL_DSI_IO_MODECTL_1)
#define COMBO_PHY_MODE_DSI (1 << 0)

/* TGL DSI Chicken register */
#define TGL_DSI_CHKN_REG_0 0x6B0C0
#define TGL_DSI_CHKN_REG_1 0x6B8C0
#define TGL_DSI_CHKN_REG(port) _MMIO_PORT(port, \
_TGL_DSI_CHKN_REG_0, \
_TGL_DSI_CHKN_REG_1)
#define TGL_DSI_CHKN_LSHS_GB (0xF << 12)

/* Display Stream Splitter Control */
#define DSS_CTL1 _MMIO(0x67400)
#define SPLITTER_ENABLE (1 << 31)
Expand Down

0 comments on commit d75ce06

Please sign in to comment.