All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 1/8] drm/dp: add drm_dp_128b132b_read_aux_rd_interval()
Date: Thu, 27 Jan 2022 09:26:34 +0200	[thread overview]
Message-ID: <YfJJKmKH64MKrg7C@intel.com> (raw)
In-Reply-To: <46401f9df30907ba851b68d7772740d64fc6ee83.1643130139.git.jani.nikula@intel.com>

On Tue, Jan 25, 2022 at 07:03:39PM +0200, Jani Nikula wrote:
> The DP 2.0 errata changes DP_128B132B_TRAINING_AUX_RD_INTERVAL (DPCD
> 0x2216) completely. Add a new function to read that. Follow-up will need
> to clean up existing functions.
> 
> v2: fix reversed interpretation of bit 7 meaning (Uma)
> 
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/dp/drm_dp.c    | 20 ++++++++++++++++++++
>  include/drm/dp/drm_dp_helper.h |  3 +++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/drivers/gpu/drm/dp/drm_dp.c b/drivers/gpu/drm/dp/drm_dp.c
> index 6d43325acca5..52c6da510142 100644
> --- a/drivers/gpu/drm/dp/drm_dp.c
> +++ b/drivers/gpu/drm/dp/drm_dp.c
> @@ -281,6 +281,26 @@ int drm_dp_read_channel_eq_delay(struct drm_dp_aux *aux, const u8 dpcd[DP_RECEIV
>  }
>  EXPORT_SYMBOL(drm_dp_read_channel_eq_delay);
>  
> +/* Per DP 2.0 Errata */
> +int drm_dp_128b132b_read_aux_rd_interval(struct drm_dp_aux *aux)
> +{
> +	int unit;
> +	u8 val;
> +
> +	if (drm_dp_dpcd_readb(aux, DP_128B132B_TRAINING_AUX_RD_INTERVAL, &val) != 1) {
> +		drm_err(aux->drm_dev, "%s: failed rd interval read\n",
> +			aux->name);
> +		/* default to max */
> +		val = DP_128B132B_TRAINING_AUX_RD_INTERVAL_MASK;
> +	}
> +
> +	unit = (val & DP_128B132B_TRAINING_AUX_RD_INTERVAL_1MS_UNIT) ? 1 : 2;
> +	val &= DP_128B132B_TRAINING_AUX_RD_INTERVAL_MASK;
> +
> +	return (val + 1) * unit * 1000;
> +}
> +EXPORT_SYMBOL(drm_dp_128b132b_read_aux_rd_interval);
> +
>  void drm_dp_link_train_clock_recovery_delay(const struct drm_dp_aux *aux,
>  					    const u8 dpcd[DP_RECEIVER_CAP_SIZE])
>  {
> diff --git a/include/drm/dp/drm_dp_helper.h b/include/drm/dp/drm_dp_helper.h
> index 98d020835b49..aa73dfc817ff 100644
> --- a/include/drm/dp/drm_dp_helper.h
> +++ b/include/drm/dp/drm_dp_helper.h
> @@ -1112,6 +1112,7 @@ struct drm_panel;
>  # define DP_UHBR13_5                           (1 << 2)
>  
>  #define DP_128B132B_TRAINING_AUX_RD_INTERVAL                    0x2216 /* 2.0 */
> +# define DP_128B132B_TRAINING_AUX_RD_INTERVAL_1MS_UNIT          (1 << 7)
>  # define DP_128B132B_TRAINING_AUX_RD_INTERVAL_MASK              0x7f
>  # define DP_128B132B_TRAINING_AUX_RD_INTERVAL_400_US            0x00
>  # define DP_128B132B_TRAINING_AUX_RD_INTERVAL_4_MS              0x01
> @@ -1549,6 +1550,8 @@ void drm_dp_link_train_channel_eq_delay(const struct drm_dp_aux *aux,
>  void drm_dp_lttpr_link_train_channel_eq_delay(const struct drm_dp_aux *aux,
>  					      const u8 caps[DP_LTTPR_PHY_CAP_SIZE]);
>  
> +int drm_dp_128b132b_read_aux_rd_interval(struct drm_dp_aux *aux);
> +
>  u8 drm_dp_link_rate_to_bw_code(int link_rate);
>  int drm_dp_bw_code_to_link_rate(u8 link_bw);
>  
> -- 
> 2.30.2

-- 
Ville Syrjälä
Intel

WARNING: multiple messages have this Message-ID (diff)
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org, uma.shankar@intel.com,
	dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/8] drm/dp: add drm_dp_128b132b_read_aux_rd_interval()
Date: Thu, 27 Jan 2022 09:26:34 +0200	[thread overview]
Message-ID: <YfJJKmKH64MKrg7C@intel.com> (raw)
In-Reply-To: <46401f9df30907ba851b68d7772740d64fc6ee83.1643130139.git.jani.nikula@intel.com>

On Tue, Jan 25, 2022 at 07:03:39PM +0200, Jani Nikula wrote:
> The DP 2.0 errata changes DP_128B132B_TRAINING_AUX_RD_INTERVAL (DPCD
> 0x2216) completely. Add a new function to read that. Follow-up will need
> to clean up existing functions.
> 
> v2: fix reversed interpretation of bit 7 meaning (Uma)
> 
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/dp/drm_dp.c    | 20 ++++++++++++++++++++
>  include/drm/dp/drm_dp_helper.h |  3 +++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/drivers/gpu/drm/dp/drm_dp.c b/drivers/gpu/drm/dp/drm_dp.c
> index 6d43325acca5..52c6da510142 100644
> --- a/drivers/gpu/drm/dp/drm_dp.c
> +++ b/drivers/gpu/drm/dp/drm_dp.c
> @@ -281,6 +281,26 @@ int drm_dp_read_channel_eq_delay(struct drm_dp_aux *aux, const u8 dpcd[DP_RECEIV
>  }
>  EXPORT_SYMBOL(drm_dp_read_channel_eq_delay);
>  
> +/* Per DP 2.0 Errata */
> +int drm_dp_128b132b_read_aux_rd_interval(struct drm_dp_aux *aux)
> +{
> +	int unit;
> +	u8 val;
> +
> +	if (drm_dp_dpcd_readb(aux, DP_128B132B_TRAINING_AUX_RD_INTERVAL, &val) != 1) {
> +		drm_err(aux->drm_dev, "%s: failed rd interval read\n",
> +			aux->name);
> +		/* default to max */
> +		val = DP_128B132B_TRAINING_AUX_RD_INTERVAL_MASK;
> +	}
> +
> +	unit = (val & DP_128B132B_TRAINING_AUX_RD_INTERVAL_1MS_UNIT) ? 1 : 2;
> +	val &= DP_128B132B_TRAINING_AUX_RD_INTERVAL_MASK;
> +
> +	return (val + 1) * unit * 1000;
> +}
> +EXPORT_SYMBOL(drm_dp_128b132b_read_aux_rd_interval);
> +
>  void drm_dp_link_train_clock_recovery_delay(const struct drm_dp_aux *aux,
>  					    const u8 dpcd[DP_RECEIVER_CAP_SIZE])
>  {
> diff --git a/include/drm/dp/drm_dp_helper.h b/include/drm/dp/drm_dp_helper.h
> index 98d020835b49..aa73dfc817ff 100644
> --- a/include/drm/dp/drm_dp_helper.h
> +++ b/include/drm/dp/drm_dp_helper.h
> @@ -1112,6 +1112,7 @@ struct drm_panel;
>  # define DP_UHBR13_5                           (1 << 2)
>  
>  #define DP_128B132B_TRAINING_AUX_RD_INTERVAL                    0x2216 /* 2.0 */
> +# define DP_128B132B_TRAINING_AUX_RD_INTERVAL_1MS_UNIT          (1 << 7)
>  # define DP_128B132B_TRAINING_AUX_RD_INTERVAL_MASK              0x7f
>  # define DP_128B132B_TRAINING_AUX_RD_INTERVAL_400_US            0x00
>  # define DP_128B132B_TRAINING_AUX_RD_INTERVAL_4_MS              0x01
> @@ -1549,6 +1550,8 @@ void drm_dp_link_train_channel_eq_delay(const struct drm_dp_aux *aux,
>  void drm_dp_lttpr_link_train_channel_eq_delay(const struct drm_dp_aux *aux,
>  					      const u8 caps[DP_LTTPR_PHY_CAP_SIZE]);
>  
> +int drm_dp_128b132b_read_aux_rd_interval(struct drm_dp_aux *aux);
> +
>  u8 drm_dp_link_rate_to_bw_code(int link_rate);
>  int drm_dp_bw_code_to_link_rate(u8 link_bw);
>  
> -- 
> 2.30.2

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2022-01-27  7:27 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-25 17:03 [Intel-gfx] [PATCH 0/8] drm/dp, drm/i915: 128b/132b updates Jani Nikula
2022-01-25 17:03 ` Jani Nikula
2022-01-25 17:03 ` [Intel-gfx] [PATCH 1/8] drm/dp: add drm_dp_128b132b_read_aux_rd_interval() Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-27  7:26   ` Ville Syrjälä [this message]
2022-01-27  7:26     ` Ville Syrjälä
2022-01-25 17:03 ` [Intel-gfx] [PATCH 2/8] drm/dp: add 128b/132b link status helpers from DP 2.0 E11 Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-25 17:03 ` [Intel-gfx] [PATCH 3/8] drm/dp: add some new DPCD macros " Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-27  7:31   ` [Intel-gfx] " Ville Syrjälä
2022-01-27  7:31     ` Ville Syrjälä
2022-01-25 17:03 ` [Intel-gfx] [PATCH 4/8] drm/i915/dp: move intel_dp_prepare_link_train() call Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-25 17:03 ` [Intel-gfx] [PATCH 5/8] drm/i915/dp: rewrite DP 2.0 128b/132b link training based on errata Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-26  5:34   ` [Intel-gfx] " Ville Syrjälä
2022-01-26  5:34     ` Ville Syrjälä
2022-02-02 10:22     ` [Intel-gfx] " Jani Nikula
2022-02-02 10:22       ` Jani Nikula
2022-01-27  7:49   ` [Intel-gfx] " Ville Syrjälä
2022-01-27  7:49     ` Ville Syrjälä
2022-02-02 10:23     ` [Intel-gfx] " Jani Nikula
2022-02-02 10:23       ` Jani Nikula
2022-01-25 17:03 ` [Intel-gfx] [PATCH 6/8] drm/i915/dp: add 128b/132b support to link status checks Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-27  7:50   ` [Intel-gfx] " Ville Syrjälä
2022-01-27  7:50     ` Ville Syrjälä
2022-01-25 17:03 ` [Intel-gfx] [PATCH 7/8] drm/i915/dp: give more time for CDS Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-25 17:03 ` [Intel-gfx] [PATCH 8/8] drm/i915/mst: update slot information for 128b/132b Jani Nikula
2022-01-25 17:03   ` Jani Nikula
2022-01-25 18:07   ` [Intel-gfx] " Lyude Paul
2022-01-25 18:07     ` Lyude Paul
2022-01-25 17:22 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/dp, drm/i915: 128b/132b updates Patchwork
2022-01-25 17:25 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-01-25 17:57 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-01-25 19:23 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

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=YfJJKmKH64MKrg7C@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    /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.