Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/tgl: Drop Wa#1178

The TGL workaround database no longer shows Wa #1178 (or anything
similar under different workaround names/numbers) so we should be able
to drop it. In fact Swati just discovered that applying this workaround
is the root cause of some power well enable failures we've been seeing
in CI (gitlab issue 498).

Once we stop applying this WA, TGL no longer utilizes any of the special
handling provided by icl_combo_phy_aux_power_well_ops so we can just
drop back to using the standard hsw-style power well ops instead.

v3: Drop now-unused _TGL_AUX_ANAOVRD1_C definition too. (Lucas)

Closes: https://gitlab.freedesktop.org/drm/intel/issues/498
Fixes: deea06b47574 ("drm/i915/tgl: apply Display WA #1178 to fix type C dongles")
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191213001511.678070-3-matthew.d.roper@intel.com

+4 -6
+3 -3
drivers/gpu/drm/i915/display/intel_display_power.c
··· 3977 3977 { 3978 3978 .name = "AUX A", 3979 3979 .domains = TGL_AUX_A_IO_POWER_DOMAINS, 3980 - .ops = &icl_combo_phy_aux_power_well_ops, 3980 + .ops = &hsw_power_well_ops, 3981 3981 .id = DISP_PW_ID_NONE, 3982 3982 { 3983 3983 .hsw.regs = &icl_aux_power_well_regs, ··· 3987 3987 { 3988 3988 .name = "AUX B", 3989 3989 .domains = TGL_AUX_B_IO_POWER_DOMAINS, 3990 - .ops = &icl_combo_phy_aux_power_well_ops, 3990 + .ops = &hsw_power_well_ops, 3991 3991 .id = DISP_PW_ID_NONE, 3992 3992 { 3993 3993 .hsw.regs = &icl_aux_power_well_regs, ··· 3997 3997 { 3998 3998 .name = "AUX C", 3999 3999 .domains = TGL_AUX_C_IO_POWER_DOMAINS, 4000 - .ops = &icl_combo_phy_aux_power_well_ops, 4000 + .ops = &hsw_power_well_ops, 4001 4001 .id = DISP_PW_ID_NONE, 4002 4002 { 4003 4003 .hsw.regs = &icl_aux_power_well_regs,
+1 -3
drivers/gpu/drm/i915/i915_reg.h
··· 9437 9437 #define _ICL_AUX_REG_IDX(pw_idx) ((pw_idx) - ICL_PW_CTL_IDX_AUX_A) 9438 9438 #define _ICL_AUX_ANAOVRD1_A 0x162398 9439 9439 #define _ICL_AUX_ANAOVRD1_B 0x6C398 9440 - #define _TGL_AUX_ANAOVRD1_C 0x160398 9441 9440 #define ICL_AUX_ANAOVRD1(pw_idx) _MMIO(_PICK(_ICL_AUX_REG_IDX(pw_idx), \ 9442 9441 _ICL_AUX_ANAOVRD1_A, \ 9443 - _ICL_AUX_ANAOVRD1_B, \ 9444 - _TGL_AUX_ANAOVRD1_C)) 9442 + _ICL_AUX_ANAOVRD1_B)) 9445 9443 #define ICL_AUX_ANAOVRD1_LDO_BYPASS (1 << 7) 9446 9444 #define ICL_AUX_ANAOVRD1_ENABLE (1 << 0) 9447 9445