intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
@ 2020-01-17  6:43 ` Patchwork
  2020-01-17  6:43 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-01-17  6:43 UTC (permalink / raw)
  To: Lee Shawn C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Check require bandwidth did not exceed LSPCON limitation
URL   : https://patchwork.freedesktop.org/series/72157/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7758 -> Patchwork_16143
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_16143:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@gem_exec_store@basic-all:
    - {fi-ehl-1}:         [PASS][1] -> [SKIP][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-ehl-1/igt@gem_exec_store@basic-all.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-ehl-1/igt@gem_exec_store@basic-all.html

  * igt@gem_exec_suspend@basic-s0:
    - {fi-ehl-1}:         [INCOMPLETE][3] ([i915#937]) -> [SKIP][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-ehl-1/igt@gem_exec_suspend@basic-s0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-ehl-1/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_exec_suspend@basic-s3:
    - {fi-ehl-1}:         NOTRUN -> [SKIP][5]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-ehl-1/igt@gem_exec_suspend@basic-s3.html

  
Known issues
------------

  Here are the changes found in Patchwork_16143 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-cfl-8700k:       [PASS][6] -> [DMESG-WARN][7] ([i915#889])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-cfl-8700k/igt@i915_module_load@reload-with-fault-injection.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-cfl-8700k/igt@i915_module_load@reload-with-fault-injection.html
    - fi-skl-6770hq:      [PASS][8] -> [INCOMPLETE][9] ([i915#671])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-skl-6770hq/igt@i915_module_load@reload-with-fault-injection.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-skl-6770hq/igt@i915_module_load@reload-with-fault-injection.html
    - fi-skl-lmem:        [PASS][10] -> [INCOMPLETE][11] ([i915#671])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-skl-lmem/igt@i915_module_load@reload-with-fault-injection.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-skl-lmem/igt@i915_module_load@reload-with-fault-injection.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - fi-skl-6770hq:      [PASS][12] -> [SKIP][13] ([fdo#109271]) +27 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html

  
#### Possible fixes ####

  * igt@gem_exec_create@basic:
    - fi-icl-dsi:         [DMESG-WARN][14] ([i915#109]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-icl-dsi/igt@gem_exec_create@basic.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-icl-dsi/igt@gem_exec_create@basic.html

  
#### Warnings ####

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [DMESG-FAIL][16] ([i915#553] / [i915#725]) -> [DMESG-FAIL][17] ([i915#563])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/fi-hsw-4770/igt@i915_selftest@live_blt.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#563]: https://gitlab.freedesktop.org/drm/intel/issues/563
  [i915#671]: https://gitlab.freedesktop.org/drm/intel/issues/671
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#889]: https://gitlab.freedesktop.org/drm/intel/issues/889
  [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937


Participating hosts (47 -> 44)
------------------------------

  Additional (3): fi-kbl-soraka fi-byt-j1900 fi-byt-n2820 
  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-bsw-kefka fi-blb-e6850 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7758 -> Patchwork_16143

  CI-20190529: 20190529
  CI_DRM_7758: d19270ce1f367fbfc1ff3b539bcb50e11ded181f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5371: 1b2816124ec3dbd53b81725d39292f45d41d895b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16143: 33dd964d640714b4136000d72312d66e63339c7d @ git://anongit.freedesktop.org/gfx-ci/linux


== Kernel 32bit build ==

Warning: Kernel 32bit buildtest failed:
https://intel-gfx-ci.01.org/Patchwork_16143/build_32bit.log

  CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  CHK     include/generated/compile.h
Kernel: arch/x86/boot/bzImage is ready  (#1)
  Building modules, stage 2.
  MODPOST 122 modules
ERROR: "__udivdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
scripts/Makefile.modpost:93: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 1
Makefile:1282: recipe for target 'modules' failed
make: *** [modules] Error 2


== Linux commits ==

33dd964d6407 drm/i915: Check require bandwidth did not exceed LSPCON limitation

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BUILD: warning for drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
  2020-01-17  6:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
@ 2020-01-17  6:43 ` Patchwork
  2020-01-17  6:56 ` [Intel-gfx] [PATCH] " Jani Nikula
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-01-17  6:43 UTC (permalink / raw)
  To: Lee Shawn C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Check require bandwidth did not exceed LSPCON limitation
URL   : https://patchwork.freedesktop.org/series/72157/
State : warning

== Summary ==

CALL    scripts/checksyscalls.sh
  CALL    scripts/atomic/check-atomics.sh
  CHK     include/generated/compile.h
Kernel: arch/x86/boot/bzImage is ready  (#1)
  Building modules, stage 2.
  MODPOST 122 modules
ERROR: "__udivdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
scripts/Makefile.modpost:93: recipe for target '__modpost' failed
make[1]: *** [__modpost] Error 1
Makefile:1282: recipe for target 'modules' failed
make: *** [modules] Error 2

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/build_32bit.log
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
  2020-01-17  6:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
  2020-01-17  6:43 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
@ 2020-01-17  6:56 ` Jani Nikula
  2020-01-17  7:15   ` Lee, Shawn C
  2020-01-17 14:04 ` Ville Syrjälä
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 14+ messages in thread
From: Jani Nikula @ 2020-01-17  6:56 UTC (permalink / raw)
  To: Lee Shawn C, intel-gfx; +Cc: Cooper Chiou, Sam McNally

On Fri, 17 Jan 2020, Lee Shawn C <shawn.c.lee@intel.com> wrote:
> While mode setting, driver would calculate mode rate based on
> resolution and bpp. And choose the best bpp that did not exceed
> DP bandwidtd.
>
> But LSPCON had more restriction due to it convert DP to HDMI.
> Driver should respect HDMI's bandwidth limitation if LSPCON
> was active. This change would ignore the bpp when its required
> output bandwidth already over HDMI 2.0 or 1.4 spec.
>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Cooper Chiou <cooper.chiou@intel.com>
> Cc: Sam McNally <sammc@google.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     | 45 +++++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_lspcon.c |  5 +++
>  drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
>  3 files changed, 51 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index c7424e2a04a3..c27d3e7ac219 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1976,6 +1976,47 @@ static int intel_dp_output_bpp(const struct intel_crtc_state *crtc_state, int bp
>  	return bpp;
>  }
>  
> +static bool
> +intel_dp_lspcon_exceed_bandwidth_limitation(struct intel_dp *intel_dp,
> +					    struct intel_crtc_state *pipe_config,
> +					    int bpp)
> +{
> +	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
> +	struct intel_connector *connector = intel_dp->attached_connector;
> +	const struct drm_display_info *info = &connector->base.display_info;
> +	enum drm_lspcon_mode lspcon_current_mode = lspcon_get_mode(lspcon);
> +	const int pcon_mode_max_tmds_clock = 600000;
> +	const int ls_mode_max_tmds_clock   = 340000;
> +	int mode_rate, max_tmds_clock = pcon_mode_max_tmds_clock;
> +
> +	if (lspcon->active) {
> +		switch (bpp) {
> +		case 36:
> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 3 / 2;
> +			break;
> +		case 30:
> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 5 / 4;
> +			break;
> +		case 24:
> +		default:
> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock;
> +			break;
> +		}
> +
> +		if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
> +			max_tmds_clock = ls_mode_max_tmds_clock;
> +
> +		if (info->max_tmds_clock)
> +			max_tmds_clock = min(max_tmds_clock,
> +					     info->max_tmds_clock);
> +
> +		if (mode_rate > max_tmds_clock)
> +			return true;
> +	}
> +
> +	return false;
> +}
> +

Instead of this, please add a simple intel_lspcon.c function:

	int lspcon_max_rate(struct intel_lspcon *lspcon);

that returns the max rate. Everything else can then be done in
intel_dp.c around this. The function gets simplified enough that you can
throw out the const ints and use the values directly.

>  /* Optimize link config in order: max bpp, min clock, min lanes */
>  static int
>  intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
> @@ -1989,6 +2030,10 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
>  	for (bpp = limits->max_bpp; bpp >= limits->min_bpp; bpp -= 2 * 3) {
>  		int output_bpp = intel_dp_output_bpp(pipe_config, bpp);
>  
> +		/* Bypass th bpp if require bandwidth over HDMI spec when LSPCON active */
> +		if (intel_dp_lspcon_exceed_bandwidth_limitation(intel_dp, pipe_config, output_bpp))
> +			continue;
> +

The placing sticks out like a sore thumb. I think we need to filter out
the modes already in intel_dp_mode_valid(). This isn't all that
different from intel_dp_downstream_max_dotclock() is it?

>  		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
>  						   output_bpp);

But I guess since the mode valid limit is for 8 bpc, you'll also need a
check here? Maybe Ville has better ideas.

Here it would be something like:

	if (lspcon->active && mode_rate > lspcon_max_rate(lscon))
        	continue;

BR,
Jani.

>  
> diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
> index d807c5648c87..6952c5028fdf 100644
> --- a/drivers/gpu/drm/i915/display/intel_lspcon.c
> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
> @@ -550,6 +550,11 @@ void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon)
>  	lspcon_wait_mode(lspcon, DRM_LSPCON_MODE_PCON);
>  }
>  
> +int lspcon_get_mode(struct intel_lspcon *lspcon)
> +{
> +	return lspcon_get_current_mode(lspcon);
> +}
> +
>  bool lspcon_init(struct intel_digital_port *intel_dig_port)
>  {
>  	struct intel_dp *dp = &intel_dig_port->dp;
> diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.h b/drivers/gpu/drm/i915/display/intel_lspcon.h
> index 37cfddf8a9c5..5ce9daef9708 100644
> --- a/drivers/gpu/drm/i915/display/intel_lspcon.h
> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
> @@ -18,6 +18,7 @@ struct intel_lspcon;
>  bool lspcon_init(struct intel_digital_port *intel_dig_port);
>  void lspcon_resume(struct intel_lspcon *lspcon);
>  void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
> +int lspcon_get_mode(struct intel_lspcon *lspcon);
>  void lspcon_write_infoframe(struct intel_encoder *encoder,
>  			    const struct intel_crtc_state *crtc_state,
>  			    unsigned int type,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17  6:56 ` [Intel-gfx] [PATCH] " Jani Nikula
@ 2020-01-17  7:15   ` Lee, Shawn C
  0 siblings, 0 replies; 14+ messages in thread
From: Lee, Shawn C @ 2020-01-17  7:15 UTC (permalink / raw)
  To: intel-gfx; +Cc: Chiou, Cooper, Sam McNally


On Fri, 17 Jan 2020, Jani Nikula wrote:
>On Fri, 17 Jan 2020, Lee Shawn C <shawn.c.lee@intel.com> wrote:
>> While mode setting, driver would calculate mode rate based on 
>> resolution and bpp. And choose the best bpp that did not exceed DP 
>> bandwidtd.
>>
>> But LSPCON had more restriction due to it convert DP to HDMI.
>> Driver should respect HDMI's bandwidth limitation if LSPCON was 
>> active. This change would ignore the bpp when its required output 
>> bandwidth already over HDMI 2.0 or 1.4 spec.
>>
>> Cc: Imre Deak <imre.deak@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Cc: Jani Nikula <jani.nikula@linux.intel.com>
>> Cc: Cooper Chiou <cooper.chiou@intel.com>
>> Cc: Sam McNally <sammc@google.com>
>> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c     | 45 +++++++++++++++++++++
>>  drivers/gpu/drm/i915/display/intel_lspcon.c |  5 +++  
>> drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
>>  3 files changed, 51 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
>> b/drivers/gpu/drm/i915/display/intel_dp.c
>> index c7424e2a04a3..c27d3e7ac219 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -1976,6 +1976,47 @@ static int intel_dp_output_bpp(const struct intel_crtc_state *crtc_state, int bp
>>  	return bpp;
>>  }
>>  
>> +static bool
>> +intel_dp_lspcon_exceed_bandwidth_limitation(struct intel_dp *intel_dp,
>> +					    struct intel_crtc_state *pipe_config,
>> +					    int bpp)
>> +{
>> +	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
>> +	struct intel_connector *connector = intel_dp->attached_connector;
>> +	const struct drm_display_info *info = &connector->base.display_info;
>> +	enum drm_lspcon_mode lspcon_current_mode = lspcon_get_mode(lspcon);
>> +	const int pcon_mode_max_tmds_clock = 600000;
>> +	const int ls_mode_max_tmds_clock   = 340000;
>> +	int mode_rate, max_tmds_clock = pcon_mode_max_tmds_clock;
>> +
>> +	if (lspcon->active) {
>> +		switch (bpp) {
>> +		case 36:
>> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 3 / 2;
>> +			break;
>> +		case 30:
>> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 5 / 4;
>> +			break;
>> +		case 24:
>> +		default:
>> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock;
>> +			break;
>> +		}
>> +
>> +		if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
>> +			max_tmds_clock = ls_mode_max_tmds_clock;
>> +
>> +		if (info->max_tmds_clock)
>> +			max_tmds_clock = min(max_tmds_clock,
>> +					     info->max_tmds_clock);
>> +
>> +		if (mode_rate > max_tmds_clock)
>> +			return true;
>> +	}
>> +
>> +	return false;
>> +}
>> +
>
>Instead of this, please add a simple intel_lspcon.c function:
>
>	int lspcon_max_rate(struct intel_lspcon *lspcon);
>
>that returns the max rate. Everything else can then be done in intel_dp.c around this. The function gets simplified enough that you can throw out the const ints and use the values directly.
>

Thanks for comment! I will rename and move it to intel_lspcon.c.

>>  /* Optimize link config in order: max bpp, min clock, min lanes */  
>> static int  intel_dp_compute_link_config_wide(struct intel_dp 
>> *intel_dp, @@ -1989,6 +2030,10 @@ 
>> intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
>>  	for (bpp = limits->max_bpp; bpp >= limits->min_bpp; bpp -= 2 * 3) {
>>  		int output_bpp = intel_dp_output_bpp(pipe_config, bpp);
>>  
>> +		/* Bypass th bpp if require bandwidth over HDMI spec when LSPCON active */
>> +		if (intel_dp_lspcon_exceed_bandwidth_limitation(intel_dp, pipe_config, output_bpp))
>> +			continue;
>> +
>
>The placing sticks out like a sore thumb. I think we need to filter out the modes already in intel_dp_mode_valid(). 
>This isn't all that different from intel_dp_downstream_max_dotclock() is it?

Yes, what you said is right. intel_dp_mode_valid() did all the thing based on source DP output capability.
And intel_dp_downstream_max_dotclock() report LSPCON's DP RX bandwidth.
We have to consider LSPCON's HDMI TX limitation as well to avoid display output data over HDMI's spec.

>
>>  		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
>>  						   output_bpp);
>
>But I guess since the mode valid limit is for 8 bpc, you'll also need a check here? Maybe Ville has better ideas.
>
>Here it would be something like:
>
>	if (lspcon->active && mode_rate > lspcon_max_rate(lscon))
>        	continue;

Let's wait for more comments from Ville.
I will follow the suggestion to update v2 patch later. 

Best regards,
Shawn

>
>BR,
>Jani.
>
>>  
>> diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c 
>> b/drivers/gpu/drm/i915/display/intel_lspcon.c
>> index d807c5648c87..6952c5028fdf 100644
>> --- a/drivers/gpu/drm/i915/display/intel_lspcon.c
>> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
>> @@ -550,6 +550,11 @@ void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon)
>>  	lspcon_wait_mode(lspcon, DRM_LSPCON_MODE_PCON);  }
>>  
>> +int lspcon_get_mode(struct intel_lspcon *lspcon) {
>> +	return lspcon_get_current_mode(lspcon); }
>> +
>>  bool lspcon_init(struct intel_digital_port *intel_dig_port)  {
>>  	struct intel_dp *dp = &intel_dig_port->dp; diff --git 
>> a/drivers/gpu/drm/i915/display/intel_lspcon.h 
>> b/drivers/gpu/drm/i915/display/intel_lspcon.h
>> index 37cfddf8a9c5..5ce9daef9708 100644
>> --- a/drivers/gpu/drm/i915/display/intel_lspcon.h
>> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
>> @@ -18,6 +18,7 @@ struct intel_lspcon;  bool lspcon_init(struct 
>> intel_digital_port *intel_dig_port);  void lspcon_resume(struct 
>> intel_lspcon *lspcon);  void lspcon_wait_pcon_mode(struct intel_lspcon 
>> *lspcon);
>> +int lspcon_get_mode(struct intel_lspcon *lspcon);
>>  void lspcon_write_infoframe(struct intel_encoder *encoder,
>>  			    const struct intel_crtc_state *crtc_state,
>>  			    unsigned int type,
>
>--
>Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation
@ 2020-01-17 13:47 Lee Shawn C
  2020-01-17  6:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Lee Shawn C @ 2020-01-17 13:47 UTC (permalink / raw)
  To: intel-gfx; +Cc: Cooper Chiou, Sam McNally

While mode setting, driver would calculate mode rate based on
resolution and bpp. And choose the best bpp that did not exceed
DP bandwidtd.

But LSPCON had more restriction due to it convert DP to HDMI.
Driver should respect HDMI's bandwidth limitation if LSPCON
was active. This change would ignore the bpp when its required
output bandwidth already over HDMI 2.0 or 1.4 spec.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: Sam McNally <sammc@google.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c     | 45 +++++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_lspcon.c |  5 +++
 drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
 3 files changed, 51 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index c7424e2a04a3..c27d3e7ac219 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1976,6 +1976,47 @@ static int intel_dp_output_bpp(const struct intel_crtc_state *crtc_state, int bp
 	return bpp;
 }
 
+static bool
+intel_dp_lspcon_exceed_bandwidth_limitation(struct intel_dp *intel_dp,
+					    struct intel_crtc_state *pipe_config,
+					    int bpp)
+{
+	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
+	struct intel_connector *connector = intel_dp->attached_connector;
+	const struct drm_display_info *info = &connector->base.display_info;
+	enum drm_lspcon_mode lspcon_current_mode = lspcon_get_mode(lspcon);
+	const int pcon_mode_max_tmds_clock = 600000;
+	const int ls_mode_max_tmds_clock   = 340000;
+	int mode_rate, max_tmds_clock = pcon_mode_max_tmds_clock;
+
+	if (lspcon->active) {
+		switch (bpp) {
+		case 36:
+			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 3 / 2;
+			break;
+		case 30:
+			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 5 / 4;
+			break;
+		case 24:
+		default:
+			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock;
+			break;
+		}
+
+		if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
+			max_tmds_clock = ls_mode_max_tmds_clock;
+
+		if (info->max_tmds_clock)
+			max_tmds_clock = min(max_tmds_clock,
+					     info->max_tmds_clock);
+
+		if (mode_rate > max_tmds_clock)
+			return true;
+	}
+
+	return false;
+}
+
 /* Optimize link config in order: max bpp, min clock, min lanes */
 static int
 intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
@@ -1989,6 +2030,10 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 	for (bpp = limits->max_bpp; bpp >= limits->min_bpp; bpp -= 2 * 3) {
 		int output_bpp = intel_dp_output_bpp(pipe_config, bpp);
 
+		/* Bypass th bpp if require bandwidth over HDMI spec when LSPCON active */
+		if (intel_dp_lspcon_exceed_bandwidth_limitation(intel_dp, pipe_config, output_bpp))
+			continue;
+
 		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
 						   output_bpp);
 
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
index d807c5648c87..6952c5028fdf 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -550,6 +550,11 @@ void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon)
 	lspcon_wait_mode(lspcon, DRM_LSPCON_MODE_PCON);
 }
 
+int lspcon_get_mode(struct intel_lspcon *lspcon)
+{
+	return lspcon_get_current_mode(lspcon);
+}
+
 bool lspcon_init(struct intel_digital_port *intel_dig_port)
 {
 	struct intel_dp *dp = &intel_dig_port->dp;
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.h b/drivers/gpu/drm/i915/display/intel_lspcon.h
index 37cfddf8a9c5..5ce9daef9708 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.h
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
@@ -18,6 +18,7 @@ struct intel_lspcon;
 bool lspcon_init(struct intel_digital_port *intel_dig_port);
 void lspcon_resume(struct intel_lspcon *lspcon);
 void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
+int lspcon_get_mode(struct intel_lspcon *lspcon);
 void lspcon_write_infoframe(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state,
 			    unsigned int type,
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
                   ` (2 preceding siblings ...)
  2020-01-17  6:56 ` [Intel-gfx] [PATCH] " Jani Nikula
@ 2020-01-17 14:04 ` Ville Syrjälä
  2020-01-17 16:08   ` Lee, Shawn C
  2020-01-20 10:51 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 14+ messages in thread
From: Ville Syrjälä @ 2020-01-17 14:04 UTC (permalink / raw)
  To: Lee Shawn C; +Cc: Cooper Chiou, intel-gfx, Sam McNally

On Fri, Jan 17, 2020 at 09:47:17PM +0800, Lee Shawn C wrote:
> While mode setting, driver would calculate mode rate based on
> resolution and bpp. And choose the best bpp that did not exceed
> DP bandwidtd.
> 
> But LSPCON had more restriction due to it convert DP to HDMI.
> Driver should respect HDMI's bandwidth limitation if LSPCON
> was active. This change would ignore the bpp when its required
> output bandwidth already over HDMI 2.0 or 1.4 spec.
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Cooper Chiou <cooper.chiou@intel.com>
> Cc: Sam McNally <sammc@google.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     | 45 +++++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_lspcon.c |  5 +++
>  drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
>  3 files changed, 51 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index c7424e2a04a3..c27d3e7ac219 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -1976,6 +1976,47 @@ static int intel_dp_output_bpp(const struct intel_crtc_state *crtc_state, int bp
>  	return bpp;
>  }
>  
> +static bool
> +intel_dp_lspcon_exceed_bandwidth_limitation(struct intel_dp *intel_dp,
> +					    struct intel_crtc_state *pipe_config,
> +					    int bpp)
> +{
> +	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
> +	struct intel_connector *connector = intel_dp->attached_connector;
> +	const struct drm_display_info *info = &connector->base.display_info;
> +	enum drm_lspcon_mode lspcon_current_mode = lspcon_get_mode(lspcon);
> +	const int pcon_mode_max_tmds_clock = 600000;
> +	const int ls_mode_max_tmds_clock   = 340000;
> +	int mode_rate, max_tmds_clock = pcon_mode_max_tmds_clock;
> +
> +	if (lspcon->active) {
> +		switch (bpp) {
> +		case 36:
> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 3 / 2;
> +			break;
> +		case 30:
> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 5 / 4;
> +			break;
> +		case 24:
> +		default:
> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock;
> +			break;
> +		}
> +
> +		if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
> +			max_tmds_clock = ls_mode_max_tmds_clock;
> +
> +		if (info->max_tmds_clock)
> +			max_tmds_clock = min(max_tmds_clock,
> +					     info->max_tmds_clock);
> +
> +		if (mode_rate > max_tmds_clock)
> +			return true;
> +	}
> +
> +	return false;
> +}

That's rather ad-hoc. I've been cooking a much more generic solution to
deal with all kinds of DP DFPs. It should handle the TMDS limits for
HDMI/DVI DFPs (and on board LSPCON too IIRC), as well as hooking up
YUV 444->420 conversion if supported by the dongle (though those old
on board LSPCON chips do that differently so shouldn't affect them).

Rebased version available here:
git://github.com/vsyrjala/linux.git dp_downstream_ports_4

One caveat is that I've not re-tested it in maybe half a year,
so not entirely sure it still works 100%.

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 14:04 ` Ville Syrjälä
@ 2020-01-17 16:08   ` Lee, Shawn C
  0 siblings, 0 replies; 14+ messages in thread
From: Lee, Shawn C @ 2020-01-17 16:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: Chiou, Cooper, Sam McNally


On Fri, Jan 17, 2020, Ville Syrjälä wrote:
>On Fri, Jan 17, 2020 at 09:47:17PM +0800, Lee Shawn C wrote:
>> While mode setting, driver would calculate mode rate based on 
>> resolution and bpp. And choose the best bpp that did not exceed DP 
>> bandwidtd.
>> 
>> But LSPCON had more restriction due to it convert DP to HDMI.
>> Driver should respect HDMI's bandwidth limitation if LSPCON was 
>> active. This change would ignore the bpp when its required output 
>> bandwidth already over HDMI 2.0 or 1.4 spec.
>> 
>> Cc: Imre Deak <imre.deak@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Cc: Jani Nikula <jani.nikula@linux.intel.com>
>> Cc: Cooper Chiou <cooper.chiou@intel.com>
>> Cc: Sam McNally <sammc@google.com>
>> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c     | 45 +++++++++++++++++++++
>>  drivers/gpu/drm/i915/display/intel_lspcon.c |  5 +++  
>> drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
>>  3 files changed, 51 insertions(+)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
>> b/drivers/gpu/drm/i915/display/intel_dp.c
>> index c7424e2a04a3..c27d3e7ac219 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -1976,6 +1976,47 @@ static int intel_dp_output_bpp(const struct intel_crtc_state *crtc_state, int bp
>>  	return bpp;
>>  }
>>  
>> +static bool
>> +intel_dp_lspcon_exceed_bandwidth_limitation(struct intel_dp *intel_dp,
>> +					    struct intel_crtc_state *pipe_config,
>> +					    int bpp)
>> +{
>> +	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
>> +	struct intel_connector *connector = intel_dp->attached_connector;
>> +	const struct drm_display_info *info = &connector->base.display_info;
>> +	enum drm_lspcon_mode lspcon_current_mode = lspcon_get_mode(lspcon);
>> +	const int pcon_mode_max_tmds_clock = 600000;
>> +	const int ls_mode_max_tmds_clock   = 340000;
>> +	int mode_rate, max_tmds_clock = pcon_mode_max_tmds_clock;
>> +
>> +	if (lspcon->active) {
>> +		switch (bpp) {
>> +		case 36:
>> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 3 / 2;
>> +			break;
>> +		case 30:
>> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock * 5 / 4;
>> +			break;
>> +		case 24:
>> +		default:
>> +			mode_rate = pipe_config->hw.adjusted_mode.crtc_clock;
>> +			break;
>> +		}
>> +
>> +		if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
>> +			max_tmds_clock = ls_mode_max_tmds_clock;
>> +
>> +		if (info->max_tmds_clock)
>> +			max_tmds_clock = min(max_tmds_clock,
>> +					     info->max_tmds_clock);
>> +
>> +		if (mode_rate > max_tmds_clock)
>> +			return true;
>> +	}
>> +
>> +	return false;
>> +}
>
>That's rather ad-hoc. I've been cooking a much more generic solution to deal with all kinds of DP DFPs. It should handle the TMDS limits for HDMI/DVI DFPs (and on board LSPCON too IIRC), as well as hooking up YUV 444->420 conversion if supported by the dongle (though those old on board LSPCON chips do that differently so shouldn't affect them).
>
>Rebased version available here:
>git://github.com/vsyrjala/linux.git dp_downstream_ports_4
>
>One caveat is that I've not re-tested it in maybe half a year, so not entirely sure it still works 100%.
>
>--

Thanks for comments. Below change just like what this patch did but it's more complicated.
https://github.com/vsyrjala/linux/commit/45779beb3ebbe6d4d36b8ff1de97f45076fc8d90

Here we got an issue to connect HDMI 2.0 external monitor with 12 bpc capability.
Connect to a HDMI port with LSPCON, driver would output 36 bpp because of bandwidth did not exceed DP's.
We can resolve the problem by this patch. Do you think maybe we should go through yours? 
Could you share any other idea how we solve issue like this?

Best regards,
Shawn

>Ville Syrjälä
>Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
                   ` (3 preceding siblings ...)
  2020-01-17 14:04 ` Ville Syrjälä
@ 2020-01-20 10:51 ` Patchwork
  2020-01-21  6:30 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev5) Patchwork
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-01-20 10:51 UTC (permalink / raw)
  To: Lee, Shawn C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Check require bandwidth did not exceed LSPCON limitation
URL   : https://patchwork.freedesktop.org/series/72157/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7758_full -> Patchwork_16143_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Known issues
------------

  Here are the changes found in Patchwork_16143_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@close-race:
    - shard-hsw:          [PASS][1] -> [TIMEOUT][2] ([fdo#112271])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-hsw7/igt@gem_busy@close-race.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-hsw5/igt@gem_busy@close-race.html

  * igt@gem_ctx_persistence@vcs1-hostile-preempt:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb2/igt@gem_ctx_persistence@vcs1-hostile-preempt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb6/igt@gem_ctx_persistence@vcs1-hostile-preempt.html

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([i915#677]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb5/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb1/igt@gem_exec_schedule@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#112146]) +5 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
    - shard-glk:          [PASS][9] -> [INCOMPLETE][10] ([i915#530] / [i915#58] / [k.org#198133])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-glk5/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-glk2/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
    - shard-kbl:          [PASS][11] -> [INCOMPLETE][12] ([fdo#103665] / [i915#530])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl1/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl6/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-kbl:          [PASS][13] -> [TIMEOUT][14] ([fdo#112271] / [i915#530])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl6/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl6/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
    - shard-apl:          [PASS][15] -> [FAIL][16] ([i915#520])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-apl4/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-apl3/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-apl:          [PASS][17] -> [INCOMPLETE][18] ([CI#80] / [fdo#103927] / [i915#530])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-apl3/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-apl2/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_persistent_relocs@forked-thrash-inactive:
    - shard-hsw:          [PASS][19] -> [INCOMPLETE][20] ([i915#530] / [i915#61])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-hsw8/igt@gem_persistent_relocs@forked-thrash-inactive.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-hsw7/igt@gem_persistent_relocs@forked-thrash-inactive.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-apl:          [PASS][21] -> [FAIL][22] ([i915#644])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-apl8/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-apl1/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@i915_suspend@sysfs-reader:
    - shard-kbl:          [PASS][23] -> [DMESG-WARN][24] ([i915#180]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl2/igt@i915_suspend@sysfs-reader.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl4/igt@i915_suspend@sysfs-reader.html

  * igt@kms_color@pipe-a-ctm-0-75:
    - shard-skl:          [PASS][25] -> [DMESG-WARN][26] ([i915#109])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-skl1/igt@kms_color@pipe-a-ctm-0-75.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-skl6/igt@kms_color@pipe-a-ctm-0-75.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-apl:          [PASS][27] -> [DMESG-WARN][28] ([i915#180])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-apl3/igt@kms_flip@flip-vs-suspend.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-apl2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-pwrite:
    - shard-skl:          [PASS][29] -> [FAIL][30] ([i915#49])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-skl9/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-pwrite.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-skl10/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-pwrite.html

  * igt@kms_psr@no_drrs:
    - shard-iclb:         [PASS][31] -> [FAIL][32] ([i915#173])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb8/igt@kms_psr@no_drrs.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb1/igt@kms_psr@no_drrs.html

  * igt@perf_pmu@busy-check-all-vcs1:
    - shard-iclb:         [PASS][33] -> [SKIP][34] ([fdo#112080]) +13 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb1/igt@perf_pmu@busy-check-all-vcs1.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb5/igt@perf_pmu@busy-check-all-vcs1.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][35] -> [SKIP][36] ([fdo#109276]) +12 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb1/igt@prime_vgem@fence-wait-bsd2.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb8/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_ctx_persistence@processes:
    - shard-iclb:         [FAIL][37] ([i915#570]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb4/igt@gem_ctx_persistence@processes.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb6/igt@gem_ctx_persistence@processes.html

  * igt@gem_ctx_persistence@vcs1-queued:
    - shard-iclb:         [SKIP][39] ([fdo#109276] / [fdo#112080]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb5/igt@gem_ctx_persistence@vcs1-queued.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb1/igt@gem_ctx_persistence@vcs1-queued.html

  * igt@gem_ctx_shared@q-smoketest-bsd2:
    - shard-iclb:         [SKIP][41] ([fdo#109276]) -> [PASS][42] +19 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb5/igt@gem_ctx_shared@q-smoketest-bsd2.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb1/igt@gem_ctx_shared@q-smoketest-bsd2.html

  * igt@gem_exec_balancer@hang:
    - shard-iclb:         [INCOMPLETE][43] ([i915#140]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb2/igt@gem_exec_balancer@hang.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb6/igt@gem_exec_balancer@hang.html

  * igt@gem_exec_parallel@vcs1-fds:
    - shard-iclb:         [SKIP][45] ([fdo#112080]) -> [PASS][46] +12 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb5/igt@gem_exec_parallel@vcs1-fds.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb1/igt@gem_exec_parallel@vcs1-fds.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [SKIP][47] ([fdo#112146]) -> [PASS][48] +3 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb4/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb6/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
    - shard-kbl:          [TIMEOUT][49] ([fdo#112271] / [i915#530]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl4/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl4/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-kbl:          [INCOMPLETE][51] ([fdo#103665] / [i915#530]) -> [PASS][52] +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl6/igt@gem_persistent_relocs@forked-thrashing.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl2/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@i915_pm_rps@reset:
    - shard-iclb:         [FAIL][53] ([i915#413]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb4/igt@i915_pm_rps@reset.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb4/igt@i915_pm_rps@reset.html

  * igt@i915_selftest@live_execlists:
    - shard-kbl:          [INCOMPLETE][55] ([fdo#103665] / [fdo#112175] / [fdo#112259]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl6/igt@i915_selftest@live_execlists.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl4/igt@i915_selftest@live_execlists.html

  * igt@kms_color@pipe-b-ctm-blue-to-red:
    - shard-skl:          [DMESG-WARN][57] ([i915#109]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-skl3/igt@kms_color@pipe-b-ctm-blue-to-red.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-skl3/igt@kms_color@pipe-b-ctm-blue-to-red.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-apl:          [DMESG-WARN][59] ([i915#180]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-apl3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][61] ([i915#180]) -> [PASS][62] +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_flip@plain-flip-fb-recreate-interruptible:
    - shard-skl:          [FAIL][63] ([i915#34]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-skl8/igt@kms_flip@plain-flip-fb-recreate-interruptible.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-skl2/igt@kms_flip@plain-flip-fb-recreate-interruptible.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-iclb:         [INCOMPLETE][65] ([i915#140] / [i915#250]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@psr2_sprite_plane_onoff:
    - shard-iclb:         [SKIP][67] ([fdo#109441]) -> [PASS][68] +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7758/shard-iclb6/igt@kms_psr@psr2_sprite_plane_onoff.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/shard-iclb2/igt@kms_psr@psr2_sprite_plane_onoff.html

  
  [CI#80]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/80
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112175]: https://bugs.freedesktop.org/show_bug.cgi?id=112175
  [fdo#112259]: https://bugs.freedesktop.org/show_bug.cgi?id=112259
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#250]: https://gitlab.freedesktop.org/drm/intel/issues/250
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#520]: https://gitlab.freedesktop.org/drm/intel/issues/520
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#570]: https://gitlab.freedesktop.org/drm/intel/issues/570
  [i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7758 -> Patchwork_16143

  CI-20190529: 20190529
  CI_DRM_7758: d19270ce1f367fbfc1ff3b539bcb50e11ded181f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5371: 1b2816124ec3dbd53b81725d39292f45d41d895b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16143: 33dd964d640714b4136000d72312d66e63339c7d @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16143/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-21 13:26 ` [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
@ 2020-01-21  6:14   ` Sharma, Shashank
  2020-01-21  6:16     ` Sharma, Shashank
  0 siblings, 1 reply; 14+ messages in thread
From: Sharma, Shashank @ 2020-01-21  6:14 UTC (permalink / raw)
  To: Lee Shawn C, intel-gfx; +Cc: Cooper Chiou, Sam McNally

[AMD Official Use Only - Internal Distribution Only]

Hello Shawn, 

-----Original Message-----
From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Lee Shawn C
Sent: Tuesday, January 21, 2020 6:56 PM
To: intel-gfx@lists.freedesktop.org
Cc: Cooper Chiou <cooper.chiou@intel.com>; Sam McNally <sammc@google.com>
Subject: [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation

While mode setting, driver would calculate mode rate based on resolution and bpp. And choose the best bpp that did not exceed DP bandwidtd.

But LSPCON had more restriction due to it convert DP to HDMI.
Driver should respect HDMI's bandwidth limitation if LSPCON was active. This change would ignore the bpp when its required output bandwidth already over HDMI 2.0 or 1.4 spec.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: Sam McNally <sammc@google.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>

v2: move lspcon_max_rate() into intel_lspcon.c.
---
 drivers/gpu/drm/i915/display/intel_dp.c     |  5 +++++
 drivers/gpu/drm/i915/display/intel_lspcon.c | 10 ++++++++++  drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
 3 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index c7424e2a04a3..6796055ace69 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1983,6 +1983,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 				  const struct link_config_limits *limits)  {
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
+	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
 	int bpp, clock, lane_count;
 	int mode_rate, link_clock, link_avail;
 
@@ -1992,6 +1993,10 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
 						   output_bpp);
 
+		/* Bypass this mode if require bandwidth over HDMI spec when LSPCON active */
+		if (lspcon->active && mode_rate > lspcon_max_rate(lspcon))
+			continue;
+
 		for (clock = limits->min_clock; clock <= limits->max_clock; clock++) {
 			for (lane_count = limits->min_lane_count;
 			     lane_count <= limits->max_lane_count; diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
index d807c5648c87..5657e949aabf 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -518,6 +518,16 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
 				  buf, ret);
 }
 
+int lspcon_max_rate(struct intel_lspcon *lspcon) {
+	enum drm_lspcon_mode current_mode = lspcon_get_current_mode(lspcon);
+
+	if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
+		return DIV_ROUND_UP(340000 * 24, 8);
+
+	return DIV_ROUND_UP(600000 * 24, 8);
Instead of assuming max clock 340 or 600, my suggestion would be to introduce a new variable in struct intel_lspcon called max_rate, and then initialize that properly at lspcon_probe/init, this will make the solution generic for any LSPCON type dongle on Intel board. We have seen few dp->hdmi type2 convertors also on-board on ICL chips, which behave like LSPCON, but can be HDMI 1.4 or HDMI 2.0 depending on the board config.   

- Shashank 
+}
+
 u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)  { diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.h b/drivers/gpu/drm/i915/display/intel_lspcon.h
index 37cfddf8a9c5..b584c02ab33b 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.h
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
@@ -18,6 +18,7 @@ struct intel_lspcon;
 bool lspcon_init(struct intel_digital_port *intel_dig_port);  void lspcon_resume(struct intel_lspcon *lspcon);  void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
+int lspcon_max_rate(struct intel_lspcon *lspcon);
 void lspcon_write_infoframe(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state,
 			    unsigned int type,
--
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fintel-gfx&amp;data=02%7C01%7Cshashank.sharma%40amd.com%7C147795054978408a3a0408d79e32b3b8%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637151812914284227&amp;sdata=E8qG9P4ABBaF9P8HmW4NgpO4oSbf1lvBHjkHhp3hEX8%3D&amp;reserved=0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-21  6:14   ` Sharma, Shashank
@ 2020-01-21  6:16     ` Sharma, Shashank
  0 siblings, 0 replies; 14+ messages in thread
From: Sharma, Shashank @ 2020-01-21  6:16 UTC (permalink / raw)
  To: Lee Shawn C, intel-gfx; +Cc: Cooper Chiou, Sam McNally

[AMD Official Use Only - Internal Distribution Only]



-----Original Message-----
From: Sharma, Shashank 
Sent: Tuesday, January 21, 2020 11:44 AM
To: Lee Shawn C <shawn.c.lee@intel.com>; intel-gfx@lists.freedesktop.org
Cc: Cooper Chiou <cooper.chiou@intel.com>; Sam McNally <sammc@google.com>
Subject: RE: [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation

[AMD Official Use Only - Internal Distribution Only]

Hello Shawn, 

-----Original Message-----
From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Lee Shawn C
Sent: Tuesday, January 21, 2020 6:56 PM
To: intel-gfx@lists.freedesktop.org
Cc: Cooper Chiou <cooper.chiou@intel.com>; Sam McNally <sammc@google.com>
Subject: [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation

While mode setting, driver would calculate mode rate based on resolution and bpp. And choose the best bpp that did not exceed DP bandwidtd.

But LSPCON had more restriction due to it convert DP to HDMI.
Driver should respect HDMI's bandwidth limitation if LSPCON was active. This change would ignore the bpp when its required output bandwidth already over HDMI 2.0 or 1.4 spec.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: Sam McNally <sammc@google.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>

v2: move lspcon_max_rate() into intel_lspcon.c.
---
 drivers/gpu/drm/i915/display/intel_dp.c     |  5 +++++
 drivers/gpu/drm/i915/display/intel_lspcon.c | 10 ++++++++++  drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
 3 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index c7424e2a04a3..6796055ace69 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1983,6 +1983,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 				  const struct link_config_limits *limits)  {
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
+	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
 	int bpp, clock, lane_count;
 	int mode_rate, link_clock, link_avail;
 
@@ -1992,6 +1993,10 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
 						   output_bpp);
 
+		/* Bypass this mode if require bandwidth over HDMI spec when LSPCON active */
+		if (lspcon->active && mode_rate > lspcon_max_rate(lspcon))
+			continue;
+
 		for (clock = limits->min_clock; clock <= limits->max_clock; clock++) {
 			for (lane_count = limits->min_lane_count;
 			     lane_count <= limits->max_lane_count; diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
index d807c5648c87..5657e949aabf 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -518,6 +518,16 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
 				  buf, ret);
 }
 
+int lspcon_max_rate(struct intel_lspcon *lspcon) {
+	enum drm_lspcon_mode current_mode = lspcon_get_current_mode(lspcon);
+
+	if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
Also, if I recall correctly, we are driving always on PCON mode. So if LSPCON is active, it would be in PCON mode. Do you see scenarios where you are finding it in LS mode ? 

- Shashank
+		return DIV_ROUND_UP(340000 * 24, 8);
+
+	return DIV_ROUND_UP(600000 * 24, 8);
Instead of assuming max clock 340 or 600, my suggestion would be to introduce a new variable in struct intel_lspcon called max_rate, and then initialize that properly at lspcon_probe/init, this will make the solution generic for any LSPCON type dongle on Intel board. We have seen few dp->hdmi type2 convertors also on-board on ICL chips, which behave like LSPCON, but can be HDMI 1.4 or HDMI 2.0 depending on the board config.   

- Shashank 
+}
+
 u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)  { diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.h b/drivers/gpu/drm/i915/display/intel_lspcon.h
index 37cfddf8a9c5..b584c02ab33b 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.h
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
@@ -18,6 +18,7 @@ struct intel_lspcon;
 bool lspcon_init(struct intel_digital_port *intel_dig_port);  void lspcon_resume(struct intel_lspcon *lspcon);  void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
+int lspcon_max_rate(struct intel_lspcon *lspcon);
 void lspcon_write_infoframe(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state,
 			    unsigned int type,
--
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fintel-gfx&amp;data=02%7C01%7Cshashank.sharma%40amd.com%7C147795054978408a3a0408d79e32b3b8%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637151812914284227&amp;sdata=E8qG9P4ABBaF9P8HmW4NgpO4oSbf1lvBHjkHhp3hEX8%3D&amp;reserved=0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev5)
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
                   ` (4 preceding siblings ...)
  2020-01-20 10:51 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork
@ 2020-01-21  6:30 ` Patchwork
  2020-01-21  7:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev3) Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-01-21  6:30 UTC (permalink / raw)
  To: Sharma, Shashank; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev5)
URL   : https://patchwork.freedesktop.org/series/72157/
State : failure

== Summary ==

Applying: drm/i915: Check require bandwidth did not exceed LSPCON limitation
error: corrupt patch at line 22
error: could not build fake ancestor
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 drm/i915: Check require bandwidth did not exceed LSPCON limitation
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev3)
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
                   ` (5 preceding siblings ...)
  2020-01-21  6:30 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev5) Patchwork
@ 2020-01-21  7:49 ` Patchwork
  2020-01-21 13:26 ` [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
  2020-01-21 13:33 ` [Intel-gfx] [PATCH v3] " Lee Shawn C
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-01-21  7:49 UTC (permalink / raw)
  To: Sharma, Shashank; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev3)
URL   : https://patchwork.freedesktop.org/series/72157/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7781 -> Patchwork_16180
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/index.html

Known issues
------------

  Here are the changes found in Patchwork_16180 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-skl-lmem:        [PASS][1] -> [DMESG-WARN][2] ([i915#889])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7781/fi-skl-lmem/igt@i915_module_load@reload-with-fault-injection.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/fi-skl-lmem/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_selftest@live_blt:
    - fi-ivb-3770:        [PASS][3] -> [DMESG-FAIL][4] ([i915#725])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7781/fi-ivb-3770/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/fi-ivb-3770/igt@i915_selftest@live_blt.html

  
#### Possible fixes ####

  * igt@gem_exec_gttfill@basic:
    - {fi-ehl-1}:         [INCOMPLETE][5] ([i915#937]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7781/fi-ehl-1/igt@gem_exec_gttfill@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/fi-ehl-1/igt@gem_exec_gttfill@basic.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][7] ([fdo#111407]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7781/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Warnings ####

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [DMESG-FAIL][9] ([i915#553] / [i915#725]) -> [DMESG-FAIL][10] ([i915#725])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7781/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#889]: https://gitlab.freedesktop.org/drm/intel/issues/889
  [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937


Participating hosts (50 -> 42)
------------------------------

  Missing    (8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 fi-byt-n2820 fi-byt-clapper 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7781 -> Patchwork_16180

  CI-20190529: 20190529
  CI_DRM_7781: 3f2b341ae1fde67f823aeb715c6f489affdef8b1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5374: 83c32e859202e43ff6a8cca162c76fcd90ad6e3b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16180: cf0c5ceadb01123a9ff5fed190167847bfcb2926 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

cf0c5ceadb01 drm/i915: Check require bandwidth did not exceed LSPCON limitation

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16180/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
                   ` (6 preceding siblings ...)
  2020-01-21  7:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev3) Patchwork
@ 2020-01-21 13:26 ` Lee Shawn C
  2020-01-21  6:14   ` Sharma, Shashank
  2020-01-21 13:33 ` [Intel-gfx] [PATCH v3] " Lee Shawn C
  8 siblings, 1 reply; 14+ messages in thread
From: Lee Shawn C @ 2020-01-21 13:26 UTC (permalink / raw)
  To: intel-gfx; +Cc: Cooper Chiou, Sam McNally

While mode setting, driver would calculate mode rate based on
resolution and bpp. And choose the best bpp that did not exceed
DP bandwidtd.

But LSPCON had more restriction due to it convert DP to HDMI.
Driver should respect HDMI's bandwidth limitation if LSPCON
was active. This change would ignore the bpp when its required
output bandwidth already over HDMI 2.0 or 1.4 spec.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: Sam McNally <sammc@google.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>

v2: move lspcon_max_rate() into intel_lspcon.c.
---
 drivers/gpu/drm/i915/display/intel_dp.c     |  5 +++++
 drivers/gpu/drm/i915/display/intel_lspcon.c | 10 ++++++++++
 drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
 3 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index c7424e2a04a3..6796055ace69 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1983,6 +1983,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 				  const struct link_config_limits *limits)
 {
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
+	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
 	int bpp, clock, lane_count;
 	int mode_rate, link_clock, link_avail;
 
@@ -1992,6 +1993,10 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
 						   output_bpp);
 
+		/* Bypass this mode if require bandwidth over HDMI spec when LSPCON active */
+		if (lspcon->active && mode_rate > lspcon_max_rate(lspcon))
+			continue;
+
 		for (clock = limits->min_clock; clock <= limits->max_clock; clock++) {
 			for (lane_count = limits->min_lane_count;
 			     lane_count <= limits->max_lane_count;
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
index d807c5648c87..5657e949aabf 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -518,6 +518,16 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
 				  buf, ret);
 }
 
+int lspcon_max_rate(struct intel_lspcon *lspcon)
+{
+	enum drm_lspcon_mode current_mode = lspcon_get_current_mode(lspcon);
+
+	if (lspcon_current_mode == DRM_LSPCON_MODE_LS)
+		return DIV_ROUND_UP(340000 * 24, 8);
+
+	return DIV_ROUND_UP(600000 * 24, 8);
+}
+
 u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.h b/drivers/gpu/drm/i915/display/intel_lspcon.h
index 37cfddf8a9c5..b584c02ab33b 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.h
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
@@ -18,6 +18,7 @@ struct intel_lspcon;
 bool lspcon_init(struct intel_digital_port *intel_dig_port);
 void lspcon_resume(struct intel_lspcon *lspcon);
 void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
+int lspcon_max_rate(struct intel_lspcon *lspcon);
 void lspcon_write_infoframe(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state,
 			    unsigned int type,
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Intel-gfx] [PATCH v3] drm/i915: Check require bandwidth did not exceed LSPCON limitation
  2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
                   ` (7 preceding siblings ...)
  2020-01-21 13:26 ` [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
@ 2020-01-21 13:33 ` Lee Shawn C
  8 siblings, 0 replies; 14+ messages in thread
From: Lee Shawn C @ 2020-01-21 13:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: Cooper Chiou, Sam McNally

While mode setting, driver would calculate mode rate based on
resolution and bpp. And choose the best bpp that did not exceed
DP bandwidtd.

But LSPCON had more restriction due to it convert DP to HDMI.
Driver should respect HDMI's bandwidth limitation if LSPCON
was active. This change would ignore the bpp when its required
output bandwidth already over HDMI 2.0 or 1.4 spec.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: Sam McNally <sammc@google.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>

v2: move lspcon_max_rate() into intel_lspcon.c.
v3: fix typo.
---
 drivers/gpu/drm/i915/display/intel_dp.c     |  5 +++++
 drivers/gpu/drm/i915/display/intel_lspcon.c | 10 ++++++++++
 drivers/gpu/drm/i915/display/intel_lspcon.h |  1 +
 3 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index c7424e2a04a3..6796055ace69 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1983,6 +1983,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 				  const struct link_config_limits *limits)
 {
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
+	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
 	int bpp, clock, lane_count;
 	int mode_rate, link_clock, link_avail;
 
@@ -1992,6 +1993,10 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp,
 		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
 						   output_bpp);
 
+		/* Bypass this mode if require bandwidth over HDMI spec when LSPCON active */
+		if (lspcon->active && mode_rate > lspcon_max_rate(lspcon))
+			continue;
+
 		for (clock = limits->min_clock; clock <= limits->max_clock; clock++) {
 			for (lane_count = limits->min_lane_count;
 			     lane_count <= limits->max_lane_count;
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
index d807c5648c87..3b0438356a88 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -518,6 +518,16 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
 				  buf, ret);
 }
 
+int lspcon_max_rate(struct intel_lspcon *lspcon)
+{
+	enum drm_lspcon_mode current_mode = lspcon_get_current_mode(lspcon);
+
+	if (current_mode == DRM_LSPCON_MODE_LS)
+		return DIV_ROUND_UP(340000 * 24, 8);
+
+	return DIV_ROUND_UP(600000 * 24, 8);
+}
+
 u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.h b/drivers/gpu/drm/i915/display/intel_lspcon.h
index 37cfddf8a9c5..b584c02ab33b 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.h
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.h
@@ -18,6 +18,7 @@ struct intel_lspcon;
 bool lspcon_init(struct intel_digital_port *intel_dig_port);
 void lspcon_resume(struct intel_lspcon *lspcon);
 void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon);
+int lspcon_max_rate(struct intel_lspcon *lspcon);
 void lspcon_write_infoframe(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state,
 			    unsigned int type,
-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-01-21  7:49 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-17 13:47 [Intel-gfx] [PATCH] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
2020-01-17  6:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
2020-01-17  6:43 ` [Intel-gfx] ✗ Fi.CI.BUILD: warning " Patchwork
2020-01-17  6:56 ` [Intel-gfx] [PATCH] " Jani Nikula
2020-01-17  7:15   ` Lee, Shawn C
2020-01-17 14:04 ` Ville Syrjälä
2020-01-17 16:08   ` Lee, Shawn C
2020-01-20 10:51 ` [Intel-gfx] ✓ Fi.CI.IGT: success for " Patchwork
2020-01-21  6:30 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev5) Patchwork
2020-01-21  7:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Check require bandwidth did not exceed LSPCON limitation (rev3) Patchwork
2020-01-21 13:26 ` [Intel-gfx] [PATCH v2] drm/i915: Check require bandwidth did not exceed LSPCON limitation Lee Shawn C
2020-01-21  6:14   ` Sharma, Shashank
2020-01-21  6:16     ` Sharma, Shashank
2020-01-21 13:33 ` [Intel-gfx] [PATCH v3] " Lee Shawn C

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).