Message ID | 20210724001114.249295-5-lucas.demarchi@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Remove CNL support | expand |
On Fri, Jul 23, 2021 at 05:10:48PM -0700, Lucas De Marchi wrote: > The only real platform with DISPLAY_VER == 10 is GLK, so we don't need > any checks and supporting code for CNL. Remove code and rename > functions/macros accordingly. > > Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> > --- > drivers/gpu/drm/i915/display/intel_cdclk.c | 72 +++++----------------- > drivers/gpu/drm/i915/i915_reg.h | 4 +- > 2 files changed, 18 insertions(+), 58 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c > index ff35c29508d5..34fa4130d5c4 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -1195,17 +1195,6 @@ static const struct intel_cdclk_vals glk_cdclk_table[] = { > {} > }; > > -static const struct intel_cdclk_vals cnl_cdclk_table[] = { > - { .refclk = 19200, .cdclk = 168000, .divider = 4, .ratio = 35 }, > - { .refclk = 19200, .cdclk = 336000, .divider = 2, .ratio = 35 }, > - { .refclk = 19200, .cdclk = 528000, .divider = 2, .ratio = 55 }, > - > - { .refclk = 24000, .cdclk = 168000, .divider = 4, .ratio = 28 }, > - { .refclk = 24000, .cdclk = 336000, .divider = 2, .ratio = 28 }, > - { .refclk = 24000, .cdclk = 528000, .divider = 2, .ratio = 44 }, > - {} > -}; > - > static const struct intel_cdclk_vals icl_cdclk_table[] = { > { .refclk = 19200, .cdclk = 172800, .divider = 2, .ratio = 18 }, > { .refclk = 19200, .cdclk = 192000, .divider = 2, .ratio = 20 }, > @@ -1339,16 +1328,6 @@ static u8 bxt_calc_voltage_level(int cdclk) > return DIV_ROUND_UP(cdclk, 25000); > } > > -static u8 cnl_calc_voltage_level(int cdclk) > -{ > - if (cdclk > 336000) > - return 2; > - else if (cdclk > 168000) > - return 1; > - else > - return 0; > -} > - > static u8 icl_calc_voltage_level(int cdclk) > { > if (cdclk > 556800) > @@ -1383,15 +1362,6 @@ static u8 tgl_calc_voltage_level(int cdclk) > return 0; > } > > -static void cnl_readout_refclk(struct drm_i915_private *dev_priv, > - struct intel_cdclk_config *cdclk_config) > -{ > - if (intel_de_read(dev_priv, SKL_DSSM) & CNL_DSSM_CDCLK_PLL_REFCLK_24MHz) > - cdclk_config->ref = 24000; > - else > - cdclk_config->ref = 19200; > -} > - > static void icl_readout_refclk(struct drm_i915_private *dev_priv, > struct intel_cdclk_config *cdclk_config) > { > @@ -1422,8 +1392,6 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv, > cdclk_config->ref = 38400; > else if (DISPLAY_VER(dev_priv) >= 11) > icl_readout_refclk(dev_priv, cdclk_config); > - else if (IS_CANNONLAKE(dev_priv)) > - cnl_readout_refclk(dev_priv, cdclk_config); > else > cdclk_config->ref = 19200; > > @@ -1439,11 +1407,11 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv, > } > > /* > - * CNL+ have the ratio directly in the PLL enable register, gen9lp had > - * it in a separate PLL control register. > + * DISPLAY_VER >= 11 have the ratio directly in the PLL enable register, > + * gen9lp had it in a separate PLL control register. > */ > - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) > - ratio = val & CNL_CDCLK_PLL_RATIO_MASK; > + if (DISPLAY_VER(dev_priv) >= 11) > + ratio = val & ICL_CDCLK_PLL_RATIO_MASK; > else > ratio = intel_de_read(dev_priv, BXT_DE_PLL_CTL) & BXT_DE_PLL_RATIO_MASK; > > @@ -1530,7 +1498,7 @@ static void bxt_de_pll_enable(struct drm_i915_private *dev_priv, int vco) > dev_priv->cdclk.hw.vco = vco; > } > > -static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv) > +static void icl_cdclk_pll_disable(struct drm_i915_private *dev_priv) > { > intel_de_rmw(dev_priv, BXT_DE_PLL_ENABLE, > BXT_DE_PLL_PLL_ENABLE, 0); > @@ -1542,12 +1510,12 @@ static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv) > dev_priv->cdclk.hw.vco = 0; > } > > -static void cnl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco) > +static void icl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco) > { > int ratio = DIV_ROUND_CLOSEST(vco, dev_priv->cdclk.hw.ref); > u32 val; > > - val = CNL_CDCLK_PLL_RATIO(ratio); > + val = ICL_CDCLK_PLL_RATIO(ratio); > intel_de_write(dev_priv, BXT_DE_PLL_ENABLE, val); > > val |= BXT_DE_PLL_PLL_ENABLE; > @@ -1566,7 +1534,7 @@ static void adlp_cdclk_pll_crawl(struct drm_i915_private *dev_priv, int vco) > u32 val; > > /* Write PLL ratio without disabling */ > - val = CNL_CDCLK_PLL_RATIO(ratio) | BXT_DE_PLL_PLL_ENABLE; > + val = ICL_CDCLK_PLL_RATIO(ratio) | BXT_DE_PLL_PLL_ENABLE; > intel_de_write(dev_priv, BXT_DE_PLL_ENABLE, val); > > /* Submit freq change request */ > @@ -1635,7 +1603,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, > int ret; > > /* Inform power controller of upcoming frequency change. */ > - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) > + if (DISPLAY_VER(dev_priv) >= 11) > ret = skl_pcode_request(dev_priv, SKL_PCODE_CDCLK_CONTROL, > SKL_CDCLK_PREPARE_FOR_CHANGE, > SKL_CDCLK_READY_FOR_CHANGE, > @@ -1659,13 +1627,13 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, > if (HAS_CDCLK_CRAWL(dev_priv) && dev_priv->cdclk.hw.vco > 0 && vco > 0) { > if (dev_priv->cdclk.hw.vco != vco) > adlp_cdclk_pll_crawl(dev_priv, vco); > - } else if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) { > + } else if (DISPLAY_VER(dev_priv) >= 11) { > if (dev_priv->cdclk.hw.vco != 0 && > dev_priv->cdclk.hw.vco != vco) > - cnl_cdclk_pll_disable(dev_priv); > + icl_cdclk_pll_disable(dev_priv); > > if (dev_priv->cdclk.hw.vco != vco) > - cnl_cdclk_pll_enable(dev_priv, vco); > + icl_cdclk_pll_enable(dev_priv, vco); > } else { > if (dev_priv->cdclk.hw.vco != 0 && > dev_priv->cdclk.hw.vco != vco) > @@ -1691,7 +1659,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, > if (pipe != INVALID_PIPE) > intel_wait_for_vblank(dev_priv, pipe); > > - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) { > + if (DISPLAY_VER(dev_priv) >= 11) { > ret = sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL, > cdclk_config->voltage_level); > } else { > @@ -1716,7 +1684,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, > > intel_update_cdclk(dev_priv); > > - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) > + if (DISPLAY_VER(dev_priv) >= 11) > /* > * Can't read out the voltage level :( > * Let's just assume everything is as expected. > @@ -2125,7 +2093,7 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state) > crtc_state->port_clock >= 540000 && > crtc_state->lane_count == 4) { > if (DISPLAY_VER(dev_priv) == 10) { > - /* Display WA #1145: glk,cnl */ > + /* Display WA #1145: glk */ > min_cdclk = max(316800, min_cdclk); > } else if (DISPLAY_VER(dev_priv) == 9 || IS_BROADWELL(dev_priv)) { > /* Display WA #1144: skl,bxt */ > @@ -2246,7 +2214,7 @@ static int intel_compute_min_cdclk(struct intel_cdclk_state *cdclk_state) > > /* > * Account for port clock min voltage level requirements. > - * This only really does something on CNL+ but can be > + * This only really does something on DISPLA_VER >= 11 but can be > * called on earlier platforms as well. > * > * Note that this functions assumes that 0 is > @@ -2660,8 +2628,6 @@ void intel_update_max_cdclk(struct drm_i915_private *dev_priv) > dev_priv->max_cdclk_freq = 648000; > else > dev_priv->max_cdclk_freq = 652800; > - } else if (IS_CANNONLAKE(dev_priv)) { > - dev_priv->max_cdclk_freq = 528000; > } else if (IS_GEMINILAKE(dev_priv)) { > dev_priv->max_cdclk_freq = 316800; > } else if (IS_BROXTON(dev_priv)) { > @@ -2925,12 +2891,6 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv) > dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk; > dev_priv->display.calc_voltage_level = icl_calc_voltage_level; > dev_priv->cdclk.table = icl_cdclk_table; > - } else if (IS_CANNONLAKE(dev_priv)) { > - dev_priv->display.bw_calc_min_cdclk = skl_bw_calc_min_cdclk; > - dev_priv->display.set_cdclk = bxt_set_cdclk; > - dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk; > - dev_priv->display.calc_voltage_level = cnl_calc_voltage_level; > - dev_priv->cdclk.table = cnl_cdclk_table; > } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) { > dev_priv->display.bw_calc_min_cdclk = skl_bw_calc_min_cdclk; > dev_priv->display.set_cdclk = bxt_set_cdclk; > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 8e1392028184..6a894ffd91e1 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -11016,8 +11016,8 @@ enum skl_power_gate { > #define BXT_DE_PLL_LOCK (1 << 30) > #define BXT_DE_PLL_FREQ_REQ (1 << 23) > #define BXT_DE_PLL_FREQ_REQ_ACK (1 << 22) > -#define CNL_CDCLK_PLL_RATIO(x) (x) > -#define CNL_CDCLK_PLL_RATIO_MASK 0xff > +#define ICL_CDCLK_PLL_RATIO(x) (x) > +#define ICL_CDCLK_PLL_RATIO_MASK 0xff We could take this opportunity to switch to REG_GENMASK, REG_FIELD_PREP here. Otherwise, Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > > /* GEN9 DC */ > #define DC_STATE_EN _MMIO(0x45504) > -- > 2.31.1 >
On Sat, Jul 24, 2021 at 11:12:07AM -0700, Matt Roper wrote: >On Fri, Jul 23, 2021 at 05:10:48PM -0700, Lucas De Marchi wrote: >> The only real platform with DISPLAY_VER == 10 is GLK, so we don't need >> any checks and supporting code for CNL. Remove code and rename >> functions/macros accordingly. >> >> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> >> --- >> drivers/gpu/drm/i915/display/intel_cdclk.c | 72 +++++----------------- >> drivers/gpu/drm/i915/i915_reg.h | 4 +- >> 2 files changed, 18 insertions(+), 58 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c >> index ff35c29508d5..34fa4130d5c4 100644 >> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c >> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c >> @@ -1195,17 +1195,6 @@ static const struct intel_cdclk_vals glk_cdclk_table[] = { >> {} >> }; >> >> -static const struct intel_cdclk_vals cnl_cdclk_table[] = { >> - { .refclk = 19200, .cdclk = 168000, .divider = 4, .ratio = 35 }, >> - { .refclk = 19200, .cdclk = 336000, .divider = 2, .ratio = 35 }, >> - { .refclk = 19200, .cdclk = 528000, .divider = 2, .ratio = 55 }, >> - >> - { .refclk = 24000, .cdclk = 168000, .divider = 4, .ratio = 28 }, >> - { .refclk = 24000, .cdclk = 336000, .divider = 2, .ratio = 28 }, >> - { .refclk = 24000, .cdclk = 528000, .divider = 2, .ratio = 44 }, >> - {} >> -}; >> - >> static const struct intel_cdclk_vals icl_cdclk_table[] = { >> { .refclk = 19200, .cdclk = 172800, .divider = 2, .ratio = 18 }, >> { .refclk = 19200, .cdclk = 192000, .divider = 2, .ratio = 20 }, >> @@ -1339,16 +1328,6 @@ static u8 bxt_calc_voltage_level(int cdclk) >> return DIV_ROUND_UP(cdclk, 25000); >> } >> >> -static u8 cnl_calc_voltage_level(int cdclk) >> -{ >> - if (cdclk > 336000) >> - return 2; >> - else if (cdclk > 168000) >> - return 1; >> - else >> - return 0; >> -} >> - >> static u8 icl_calc_voltage_level(int cdclk) >> { >> if (cdclk > 556800) >> @@ -1383,15 +1362,6 @@ static u8 tgl_calc_voltage_level(int cdclk) >> return 0; >> } >> >> -static void cnl_readout_refclk(struct drm_i915_private *dev_priv, >> - struct intel_cdclk_config *cdclk_config) >> -{ >> - if (intel_de_read(dev_priv, SKL_DSSM) & CNL_DSSM_CDCLK_PLL_REFCLK_24MHz) >> - cdclk_config->ref = 24000; >> - else >> - cdclk_config->ref = 19200; >> -} >> - >> static void icl_readout_refclk(struct drm_i915_private *dev_priv, >> struct intel_cdclk_config *cdclk_config) >> { >> @@ -1422,8 +1392,6 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv, >> cdclk_config->ref = 38400; >> else if (DISPLAY_VER(dev_priv) >= 11) >> icl_readout_refclk(dev_priv, cdclk_config); >> - else if (IS_CANNONLAKE(dev_priv)) >> - cnl_readout_refclk(dev_priv, cdclk_config); >> else >> cdclk_config->ref = 19200; >> >> @@ -1439,11 +1407,11 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv, >> } >> >> /* >> - * CNL+ have the ratio directly in the PLL enable register, gen9lp had >> - * it in a separate PLL control register. >> + * DISPLAY_VER >= 11 have the ratio directly in the PLL enable register, >> + * gen9lp had it in a separate PLL control register. >> */ >> - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) >> - ratio = val & CNL_CDCLK_PLL_RATIO_MASK; >> + if (DISPLAY_VER(dev_priv) >= 11) >> + ratio = val & ICL_CDCLK_PLL_RATIO_MASK; >> else >> ratio = intel_de_read(dev_priv, BXT_DE_PLL_CTL) & BXT_DE_PLL_RATIO_MASK; >> >> @@ -1530,7 +1498,7 @@ static void bxt_de_pll_enable(struct drm_i915_private *dev_priv, int vco) >> dev_priv->cdclk.hw.vco = vco; >> } >> >> -static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv) >> +static void icl_cdclk_pll_disable(struct drm_i915_private *dev_priv) >> { >> intel_de_rmw(dev_priv, BXT_DE_PLL_ENABLE, >> BXT_DE_PLL_PLL_ENABLE, 0); >> @@ -1542,12 +1510,12 @@ static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv) >> dev_priv->cdclk.hw.vco = 0; >> } >> >> -static void cnl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco) >> +static void icl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco) >> { >> int ratio = DIV_ROUND_CLOSEST(vco, dev_priv->cdclk.hw.ref); >> u32 val; >> >> - val = CNL_CDCLK_PLL_RATIO(ratio); >> + val = ICL_CDCLK_PLL_RATIO(ratio); >> intel_de_write(dev_priv, BXT_DE_PLL_ENABLE, val); >> >> val |= BXT_DE_PLL_PLL_ENABLE; >> @@ -1566,7 +1534,7 @@ static void adlp_cdclk_pll_crawl(struct drm_i915_private *dev_priv, int vco) >> u32 val; >> >> /* Write PLL ratio without disabling */ >> - val = CNL_CDCLK_PLL_RATIO(ratio) | BXT_DE_PLL_PLL_ENABLE; >> + val = ICL_CDCLK_PLL_RATIO(ratio) | BXT_DE_PLL_PLL_ENABLE; >> intel_de_write(dev_priv, BXT_DE_PLL_ENABLE, val); >> >> /* Submit freq change request */ >> @@ -1635,7 +1603,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, >> int ret; >> >> /* Inform power controller of upcoming frequency change. */ >> - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) >> + if (DISPLAY_VER(dev_priv) >= 11) >> ret = skl_pcode_request(dev_priv, SKL_PCODE_CDCLK_CONTROL, >> SKL_CDCLK_PREPARE_FOR_CHANGE, >> SKL_CDCLK_READY_FOR_CHANGE, >> @@ -1659,13 +1627,13 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, >> if (HAS_CDCLK_CRAWL(dev_priv) && dev_priv->cdclk.hw.vco > 0 && vco > 0) { >> if (dev_priv->cdclk.hw.vco != vco) >> adlp_cdclk_pll_crawl(dev_priv, vco); >> - } else if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) { >> + } else if (DISPLAY_VER(dev_priv) >= 11) { >> if (dev_priv->cdclk.hw.vco != 0 && >> dev_priv->cdclk.hw.vco != vco) >> - cnl_cdclk_pll_disable(dev_priv); >> + icl_cdclk_pll_disable(dev_priv); >> >> if (dev_priv->cdclk.hw.vco != vco) >> - cnl_cdclk_pll_enable(dev_priv, vco); >> + icl_cdclk_pll_enable(dev_priv, vco); >> } else { >> if (dev_priv->cdclk.hw.vco != 0 && >> dev_priv->cdclk.hw.vco != vco) >> @@ -1691,7 +1659,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, >> if (pipe != INVALID_PIPE) >> intel_wait_for_vblank(dev_priv, pipe); >> >> - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) { >> + if (DISPLAY_VER(dev_priv) >= 11) { >> ret = sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL, >> cdclk_config->voltage_level); >> } else { >> @@ -1716,7 +1684,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, >> >> intel_update_cdclk(dev_priv); >> >> - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) >> + if (DISPLAY_VER(dev_priv) >= 11) >> /* >> * Can't read out the voltage level :( >> * Let's just assume everything is as expected. >> @@ -2125,7 +2093,7 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state) >> crtc_state->port_clock >= 540000 && >> crtc_state->lane_count == 4) { >> if (DISPLAY_VER(dev_priv) == 10) { >> - /* Display WA #1145: glk,cnl */ >> + /* Display WA #1145: glk */ >> min_cdclk = max(316800, min_cdclk); >> } else if (DISPLAY_VER(dev_priv) == 9 || IS_BROADWELL(dev_priv)) { >> /* Display WA #1144: skl,bxt */ >> @@ -2246,7 +2214,7 @@ static int intel_compute_min_cdclk(struct intel_cdclk_state *cdclk_state) >> >> /* >> * Account for port clock min voltage level requirements. >> - * This only really does something on CNL+ but can be >> + * This only really does something on DISPLA_VER >= 11 but can be >> * called on earlier platforms as well. >> * >> * Note that this functions assumes that 0 is >> @@ -2660,8 +2628,6 @@ void intel_update_max_cdclk(struct drm_i915_private *dev_priv) >> dev_priv->max_cdclk_freq = 648000; >> else >> dev_priv->max_cdclk_freq = 652800; >> - } else if (IS_CANNONLAKE(dev_priv)) { >> - dev_priv->max_cdclk_freq = 528000; >> } else if (IS_GEMINILAKE(dev_priv)) { >> dev_priv->max_cdclk_freq = 316800; >> } else if (IS_BROXTON(dev_priv)) { >> @@ -2925,12 +2891,6 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv) >> dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk; >> dev_priv->display.calc_voltage_level = icl_calc_voltage_level; >> dev_priv->cdclk.table = icl_cdclk_table; >> - } else if (IS_CANNONLAKE(dev_priv)) { >> - dev_priv->display.bw_calc_min_cdclk = skl_bw_calc_min_cdclk; >> - dev_priv->display.set_cdclk = bxt_set_cdclk; >> - dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk; >> - dev_priv->display.calc_voltage_level = cnl_calc_voltage_level; >> - dev_priv->cdclk.table = cnl_cdclk_table; >> } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) { >> dev_priv->display.bw_calc_min_cdclk = skl_bw_calc_min_cdclk; >> dev_priv->display.set_cdclk = bxt_set_cdclk; >> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h >> index 8e1392028184..6a894ffd91e1 100644 >> --- a/drivers/gpu/drm/i915/i915_reg.h >> +++ b/drivers/gpu/drm/i915/i915_reg.h >> @@ -11016,8 +11016,8 @@ enum skl_power_gate { >> #define BXT_DE_PLL_LOCK (1 << 30) >> #define BXT_DE_PLL_FREQ_REQ (1 << 23) >> #define BXT_DE_PLL_FREQ_REQ_ACK (1 << 22) >> -#define CNL_CDCLK_PLL_RATIO(x) (x) >> -#define CNL_CDCLK_PLL_RATIO_MASK 0xff >> +#define ICL_CDCLK_PLL_RATIO(x) (x) >> +#define ICL_CDCLK_PLL_RATIO_MASK 0xff > >We could take this opportunity to switch to REG_GENMASK, REG_FIELD_PREP >here. Otherwise, > >Reviewed-by: Matt Roper <matthew.d.roper@intel.com> I'd rather have a single big patch converting all of i915_reg.h We are doing this conversion piece by piece for a long time and it seems we are never going to achieve the desired end result. todo++ thanks Lucas De Marchi > >> >> /* GEN9 DC */ >> #define DC_STATE_EN _MMIO(0x45504) >> -- >> 2.31.1 >> > >-- >Matt Roper >Graphics Software Engineer >VTT-OSGC Platform Enablement >Intel Corporation >(916) 356-2795
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c index ff35c29508d5..34fa4130d5c4 100644 --- a/drivers/gpu/drm/i915/display/intel_cdclk.c +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -1195,17 +1195,6 @@ static const struct intel_cdclk_vals glk_cdclk_table[] = { {} }; -static const struct intel_cdclk_vals cnl_cdclk_table[] = { - { .refclk = 19200, .cdclk = 168000, .divider = 4, .ratio = 35 }, - { .refclk = 19200, .cdclk = 336000, .divider = 2, .ratio = 35 }, - { .refclk = 19200, .cdclk = 528000, .divider = 2, .ratio = 55 }, - - { .refclk = 24000, .cdclk = 168000, .divider = 4, .ratio = 28 }, - { .refclk = 24000, .cdclk = 336000, .divider = 2, .ratio = 28 }, - { .refclk = 24000, .cdclk = 528000, .divider = 2, .ratio = 44 }, - {} -}; - static const struct intel_cdclk_vals icl_cdclk_table[] = { { .refclk = 19200, .cdclk = 172800, .divider = 2, .ratio = 18 }, { .refclk = 19200, .cdclk = 192000, .divider = 2, .ratio = 20 }, @@ -1339,16 +1328,6 @@ static u8 bxt_calc_voltage_level(int cdclk) return DIV_ROUND_UP(cdclk, 25000); } -static u8 cnl_calc_voltage_level(int cdclk) -{ - if (cdclk > 336000) - return 2; - else if (cdclk > 168000) - return 1; - else - return 0; -} - static u8 icl_calc_voltage_level(int cdclk) { if (cdclk > 556800) @@ -1383,15 +1362,6 @@ static u8 tgl_calc_voltage_level(int cdclk) return 0; } -static void cnl_readout_refclk(struct drm_i915_private *dev_priv, - struct intel_cdclk_config *cdclk_config) -{ - if (intel_de_read(dev_priv, SKL_DSSM) & CNL_DSSM_CDCLK_PLL_REFCLK_24MHz) - cdclk_config->ref = 24000; - else - cdclk_config->ref = 19200; -} - static void icl_readout_refclk(struct drm_i915_private *dev_priv, struct intel_cdclk_config *cdclk_config) { @@ -1422,8 +1392,6 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv, cdclk_config->ref = 38400; else if (DISPLAY_VER(dev_priv) >= 11) icl_readout_refclk(dev_priv, cdclk_config); - else if (IS_CANNONLAKE(dev_priv)) - cnl_readout_refclk(dev_priv, cdclk_config); else cdclk_config->ref = 19200; @@ -1439,11 +1407,11 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv, } /* - * CNL+ have the ratio directly in the PLL enable register, gen9lp had - * it in a separate PLL control register. + * DISPLAY_VER >= 11 have the ratio directly in the PLL enable register, + * gen9lp had it in a separate PLL control register. */ - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) - ratio = val & CNL_CDCLK_PLL_RATIO_MASK; + if (DISPLAY_VER(dev_priv) >= 11) + ratio = val & ICL_CDCLK_PLL_RATIO_MASK; else ratio = intel_de_read(dev_priv, BXT_DE_PLL_CTL) & BXT_DE_PLL_RATIO_MASK; @@ -1530,7 +1498,7 @@ static void bxt_de_pll_enable(struct drm_i915_private *dev_priv, int vco) dev_priv->cdclk.hw.vco = vco; } -static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv) +static void icl_cdclk_pll_disable(struct drm_i915_private *dev_priv) { intel_de_rmw(dev_priv, BXT_DE_PLL_ENABLE, BXT_DE_PLL_PLL_ENABLE, 0); @@ -1542,12 +1510,12 @@ static void cnl_cdclk_pll_disable(struct drm_i915_private *dev_priv) dev_priv->cdclk.hw.vco = 0; } -static void cnl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco) +static void icl_cdclk_pll_enable(struct drm_i915_private *dev_priv, int vco) { int ratio = DIV_ROUND_CLOSEST(vco, dev_priv->cdclk.hw.ref); u32 val; - val = CNL_CDCLK_PLL_RATIO(ratio); + val = ICL_CDCLK_PLL_RATIO(ratio); intel_de_write(dev_priv, BXT_DE_PLL_ENABLE, val); val |= BXT_DE_PLL_PLL_ENABLE; @@ -1566,7 +1534,7 @@ static void adlp_cdclk_pll_crawl(struct drm_i915_private *dev_priv, int vco) u32 val; /* Write PLL ratio without disabling */ - val = CNL_CDCLK_PLL_RATIO(ratio) | BXT_DE_PLL_PLL_ENABLE; + val = ICL_CDCLK_PLL_RATIO(ratio) | BXT_DE_PLL_PLL_ENABLE; intel_de_write(dev_priv, BXT_DE_PLL_ENABLE, val); /* Submit freq change request */ @@ -1635,7 +1603,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, int ret; /* Inform power controller of upcoming frequency change. */ - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) + if (DISPLAY_VER(dev_priv) >= 11) ret = skl_pcode_request(dev_priv, SKL_PCODE_CDCLK_CONTROL, SKL_CDCLK_PREPARE_FOR_CHANGE, SKL_CDCLK_READY_FOR_CHANGE, @@ -1659,13 +1627,13 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, if (HAS_CDCLK_CRAWL(dev_priv) && dev_priv->cdclk.hw.vco > 0 && vco > 0) { if (dev_priv->cdclk.hw.vco != vco) adlp_cdclk_pll_crawl(dev_priv, vco); - } else if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) { + } else if (DISPLAY_VER(dev_priv) >= 11) { if (dev_priv->cdclk.hw.vco != 0 && dev_priv->cdclk.hw.vco != vco) - cnl_cdclk_pll_disable(dev_priv); + icl_cdclk_pll_disable(dev_priv); if (dev_priv->cdclk.hw.vco != vco) - cnl_cdclk_pll_enable(dev_priv, vco); + icl_cdclk_pll_enable(dev_priv, vco); } else { if (dev_priv->cdclk.hw.vco != 0 && dev_priv->cdclk.hw.vco != vco) @@ -1691,7 +1659,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, if (pipe != INVALID_PIPE) intel_wait_for_vblank(dev_priv, pipe); - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) { + if (DISPLAY_VER(dev_priv) >= 11) { ret = sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL, cdclk_config->voltage_level); } else { @@ -1716,7 +1684,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, intel_update_cdclk(dev_priv); - if (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) + if (DISPLAY_VER(dev_priv) >= 11) /* * Can't read out the voltage level :( * Let's just assume everything is as expected. @@ -2125,7 +2093,7 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state) crtc_state->port_clock >= 540000 && crtc_state->lane_count == 4) { if (DISPLAY_VER(dev_priv) == 10) { - /* Display WA #1145: glk,cnl */ + /* Display WA #1145: glk */ min_cdclk = max(316800, min_cdclk); } else if (DISPLAY_VER(dev_priv) == 9 || IS_BROADWELL(dev_priv)) { /* Display WA #1144: skl,bxt */ @@ -2246,7 +2214,7 @@ static int intel_compute_min_cdclk(struct intel_cdclk_state *cdclk_state) /* * Account for port clock min voltage level requirements. - * This only really does something on CNL+ but can be + * This only really does something on DISPLA_VER >= 11 but can be * called on earlier platforms as well. * * Note that this functions assumes that 0 is @@ -2660,8 +2628,6 @@ void intel_update_max_cdclk(struct drm_i915_private *dev_priv) dev_priv->max_cdclk_freq = 648000; else dev_priv->max_cdclk_freq = 652800; - } else if (IS_CANNONLAKE(dev_priv)) { - dev_priv->max_cdclk_freq = 528000; } else if (IS_GEMINILAKE(dev_priv)) { dev_priv->max_cdclk_freq = 316800; } else if (IS_BROXTON(dev_priv)) { @@ -2925,12 +2891,6 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv) dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk; dev_priv->display.calc_voltage_level = icl_calc_voltage_level; dev_priv->cdclk.table = icl_cdclk_table; - } else if (IS_CANNONLAKE(dev_priv)) { - dev_priv->display.bw_calc_min_cdclk = skl_bw_calc_min_cdclk; - dev_priv->display.set_cdclk = bxt_set_cdclk; - dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk; - dev_priv->display.calc_voltage_level = cnl_calc_voltage_level; - dev_priv->cdclk.table = cnl_cdclk_table; } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) { dev_priv->display.bw_calc_min_cdclk = skl_bw_calc_min_cdclk; dev_priv->display.set_cdclk = bxt_set_cdclk; diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 8e1392028184..6a894ffd91e1 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -11016,8 +11016,8 @@ enum skl_power_gate { #define BXT_DE_PLL_LOCK (1 << 30) #define BXT_DE_PLL_FREQ_REQ (1 << 23) #define BXT_DE_PLL_FREQ_REQ_ACK (1 << 22) -#define CNL_CDCLK_PLL_RATIO(x) (x) -#define CNL_CDCLK_PLL_RATIO_MASK 0xff +#define ICL_CDCLK_PLL_RATIO(x) (x) +#define ICL_CDCLK_PLL_RATIO_MASK 0xff /* GEN9 DC */ #define DC_STATE_EN _MMIO(0x45504)
The only real platform with DISPLAY_VER == 10 is GLK, so we don't need any checks and supporting code for CNL. Remove code and rename functions/macros accordingly. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> --- drivers/gpu/drm/i915/display/intel_cdclk.c | 72 +++++----------------- drivers/gpu/drm/i915/i915_reg.h | 4 +- 2 files changed, 18 insertions(+), 58 deletions(-)