From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Imre Deak <imre.deak@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 18/23] drm/i915/icl: Split getting the DPLLs to port type specific functions
Date: Tue, 25 Jun 2019 16:55:56 +0300 [thread overview]
Message-ID: <20190625135556.GG5942@intel.com> (raw)
In-Reply-To: <20190620140600.11357-19-imre.deak@intel.com>
On Thu, Jun 20, 2019 at 05:05:55PM +0300, Imre Deak wrote:
> For clarity factor out the combo PHY and TypeC PHY specific code from
> icl_get_dplls() into their own functions.
>
> No functional changes.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 100 ++++++++++++------
> 1 file changed, 66 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> index 14bbab45836d..85c38eed93a8 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> @@ -2856,51 +2856,66 @@ static bool icl_calc_mg_pll_state(struct intel_crtc_state *crtc_state,
> return true;
> }
>
> -static bool icl_get_dplls(struct intel_atomic_state *state,
> - struct intel_crtc *crtc,
> - struct intel_encoder *encoder)
> +static bool icl_get_combo_phy_dpll(struct intel_atomic_state *state,
> + struct intel_crtc *crtc,
> + struct intel_encoder *encoder)
> +{
> + struct intel_crtc_state *crtc_state =
> + intel_atomic_get_new_crtc_state(state, crtc);
> + struct intel_shared_dpll *pll;
> +
> + if (!icl_calc_dpll_state(crtc_state, encoder,
> + &crtc_state->dpll_hw_state)) {
> + DRM_DEBUG_KMS("Could not calculate combo PHY PLL state.\n");
> +
> + return false;
> + }
> +
> + pll = intel_find_shared_dpll(state, crtc, &crtc_state->dpll_hw_state,
> + DPLL_ID_ICL_DPLL0,
> + DPLL_ID_ICL_DPLL1);
> + if (!pll) {
> + DRM_DEBUG_KMS("No combo PHY PLL found for port %c\n",
> + port_name(encoder->port));
> + return false;
> + }
> +
> + intel_reference_shared_dpll(state, crtc,
> + pll, &crtc_state->dpll_hw_state);
> +
> + crtc_state->shared_dpll = pll;
> +
> + return true;
> +}
> +
> +static bool icl_get_tc_phy_dplls(struct intel_atomic_state *state,
> + struct intel_crtc *crtc,
> + struct intel_encoder *encoder)
> {
> struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> struct intel_crtc_state *crtc_state =
> intel_atomic_get_new_crtc_state(state, crtc);
> - struct intel_digital_port *intel_dig_port;
> + enum tc_port tc_port = intel_port_to_tc(dev_priv, encoder->port);
> + struct intel_digital_port *dig_port;
> struct intel_shared_dpll *pll;
> - enum port port = encoder->port;
> enum intel_dpll_id min, max;
> bool ret;
>
> - if (intel_port_is_combophy(dev_priv, port)) {
> - min = DPLL_ID_ICL_DPLL0;
> - max = DPLL_ID_ICL_DPLL1;
> + if (encoder->type == INTEL_OUTPUT_DP_MST)
> + dig_port = enc_to_mst(&encoder->base)->primary;
> + else
> + dig_port = enc_to_dig_port(&encoder->base);
> +
> + if (dig_port->tc_mode == TC_PORT_TBT_ALT) {
> + min = DPLL_ID_ICL_TBTPLL;
> + max = min;
> ret = icl_calc_dpll_state(crtc_state, encoder,
> &crtc_state->dpll_hw_state);
> - } else if (intel_port_is_tc(dev_priv, port)) {
> - if (encoder->type == INTEL_OUTPUT_DP_MST) {
> - struct intel_dp_mst_encoder *mst_encoder;
> -
> - mst_encoder = enc_to_mst(&encoder->base);
> - intel_dig_port = mst_encoder->primary;
> - } else {
> - intel_dig_port = enc_to_dig_port(&encoder->base);
> - }
> -
> - if (intel_dig_port->tc_mode == TC_PORT_TBT_ALT) {
> - min = DPLL_ID_ICL_TBTPLL;
> - max = min;
> - ret = icl_calc_dpll_state(crtc_state, encoder,
> - &crtc_state->dpll_hw_state);
> - } else {
> - enum tc_port tc_port;
> -
> - tc_port = intel_port_to_tc(dev_priv, port);
> - min = icl_tc_port_to_pll_id(tc_port);
> - max = min;
> - ret = icl_calc_mg_pll_state(crtc_state,
> - &crtc_state->dpll_hw_state);
> - }
> } else {
> - MISSING_CASE(port);
> - return false;
> + min = icl_tc_port_to_pll_id(tc_port);
> + max = min;
> + ret = icl_calc_mg_pll_state(crtc_state,
> + &crtc_state->dpll_hw_state);
> }
>
> if (!ret) {
> @@ -2925,6 +2940,23 @@ static bool icl_get_dplls(struct intel_atomic_state *state,
> return true;
> }
>
> +static bool icl_get_dplls(struct intel_atomic_state *state,
> + struct intel_crtc *crtc,
> + struct intel_encoder *encoder)
> +{
> + struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> + enum port port = encoder->port;
> +
> + if (intel_port_is_combophy(dev_priv, port))
> + return icl_get_combo_phy_dpll(state, crtc, encoder);
> + else if (intel_port_is_tc(dev_priv, port))
> + return icl_get_tc_phy_dplls(state, crtc, encoder);
> +
> + MISSING_CASE(port);
> +
> + return false;
> +}
> +
> static bool mg_pll_get_hw_state(struct drm_i915_private *dev_priv,
> struct intel_shared_dpll *pll,
> struct intel_dpll_hw_state *hw_state)
> --
> 2.17.1
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-06-25 13:56 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-20 14:05 [PATCH v2 00/23] drm/i915: Fix TypeC port mode switching Imre Deak
2019-06-20 14:05 ` [PATCH v2 01/23] drm/i915/icl: Add support to read out the TBT PLL HW state Imre Deak
2019-06-20 14:05 ` [PATCH v2 02/23] drm/i915: Tune down WARNs about TBT AUX power well enabling Imre Deak
2019-06-20 14:05 ` [PATCH v2 03/23] drm/i915: Move the TypeC port handling code to a separate file Imre Deak
2019-06-20 14:05 ` [PATCH v2 04/23] drm/i915: Sanitize the terminology used for TypeC port modes Imre Deak
2019-06-20 14:05 ` [PATCH v2 05/23] drm/i915: Don't enable the DDI-IO power in the TypeC TBT-alt mode Imre Deak
2019-06-20 14:05 ` [PATCH v2 06/23] drm/i915: Fix the TBT AUX power well enabling Imre Deak
2019-06-20 14:05 ` [PATCH v2 07/23] drm/i915: Use the correct AUX power domain in TypeC TBT-alt mode Imre Deak
2019-06-20 14:05 ` [PATCH v2 08/23] drm/i915: Unify the TypeC port notation in debug/error messages Imre Deak
2019-06-20 14:05 ` [PATCH v2 09/23] drm/i915: Factor out common parts from TypeC port handling functions Imre Deak
2019-06-25 13:05 ` Ville Syrjälä
2019-06-25 13:48 ` Imre Deak
2019-06-26 20:50 ` [CI v3 " Imre Deak
2019-06-26 22:55 ` Souza, Jose
2019-06-27 10:34 ` Imre Deak
2019-06-20 14:05 ` [PATCH v2 10/23] drm/i915: Wait for TypeC PHY complete flag to clear in safe mode Imre Deak
2019-06-20 14:05 ` [PATCH v2 11/23] drm/i915: Handle the TCCOLD power-down event Imre Deak
2019-06-25 13:17 ` Ville Syrjälä
2019-06-25 14:22 ` Imre Deak
2019-06-26 20:50 ` [CI v3 " Imre Deak
2019-06-20 14:05 ` [PATCH v2 12/23] drm/i915: Sanitize the TypeC connect/detect sequences Imre Deak
2019-06-25 13:42 ` Ville Syrjälä
2019-06-25 18:30 ` Imre Deak
2019-06-26 11:51 ` Ville Syrjälä
2019-06-26 23:55 ` Souza, Jose
2019-06-27 9:48 ` Imre Deak
2019-06-27 21:06 ` Souza, Jose
2019-06-20 14:05 ` [PATCH v2 13/23] drm/i915: Fix the TypeC port mode sanitization during loading/resume Imre Deak
2019-06-26 18:04 ` [PATCH v3 " Imre Deak
2019-06-26 20:50 ` [CI " Imre Deak
2019-06-27 20:38 ` Souza, Jose
2019-06-20 14:05 ` [PATCH v2 14/23] drm/i915: Keep the TypeC port mode fixed for detect/AUX transfers Imre Deak
2019-06-25 13:43 ` Ville Syrjälä
2019-06-20 14:05 ` [PATCH v2 15/23] drm/i915: Sanitize the TypeC FIA lane configuration decoding Imre Deak
2019-06-20 14:05 ` [PATCH v2 16/23] drm/i915: Sanitize the shared DPLL reserve/release interface Imre Deak
2019-06-25 13:53 ` Ville Syrjälä
2019-06-25 18:57 ` Imre Deak
2019-06-25 19:48 ` Imre Deak
2019-06-20 14:05 ` [PATCH v2 17/23] drm/i915: Sanitize the shared DPLL find/reference interface Imre Deak
2019-06-25 13:54 ` Ville Syrjälä
2019-06-20 14:05 ` [PATCH v2 18/23] drm/i915/icl: Split getting the DPLLs to port type specific functions Imre Deak
2019-06-25 13:55 ` Ville Syrjälä [this message]
2019-06-20 14:05 ` [PATCH v2 19/23] drm/i915/icl: Reserve all required PLLs for TypeC ports Imre Deak
2019-06-25 13:58 ` Ville Syrjälä
2019-06-20 14:05 ` [PATCH v2 20/23] drm/i915: Keep the TypeC port mode fixed when the port is active Imre Deak
2019-06-25 14:01 ` Ville Syrjälä
2019-06-20 14:05 ` [PATCH v2 21/23] drm/i915: Add state verification for the TypeC port mode Imre Deak
2019-06-25 14:12 ` Ville Syrjälä
2019-06-25 19:23 ` Imre Deak
2019-06-26 11:52 ` Ville Syrjälä
2019-06-26 18:04 ` [v3 " Imre Deak
2019-06-26 20:50 ` [CI v3 " Imre Deak
2019-06-20 14:05 ` [PATCH v2 22/23] drm/i915: Remove unneeded disconnect in TypeC legacy " Imre Deak
2019-06-20 14:06 ` [PATCH v2 23/23] drm/i915: WARN about invalid lane reversal in TBT-alt/DP-alt modes Imre Deak
2019-06-20 17:23 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Fix TypeC port mode switching (rev3) Patchwork
2019-06-20 17:32 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-06-20 18:05 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-20 22:42 ` ✓ Fi.CI.IGT: " Patchwork
2019-06-26 22:00 ` ✗ Fi.CI.BAT: failure for drm/i915: Fix TypeC port mode switching (rev7) Patchwork
-- strict thread matches above, loose matches on Subject: below --
2019-06-26 18:04 [PATCH v3 09/23] drm/i915: Factor out common parts from TypeC port handling functions Imre Deak
2019-06-26 18:04 ` [PATCH v3 11/23] drm/i915: Handle the TCCOLD power-down event Imre Deak
2019-06-26 22:12 ` Souza, Jose
2019-06-27 10:09 ` Imre Deak
2019-06-27 12:59 ` Ville Syrjälä
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190625135556.GG5942@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.