All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
@ 2020-03-18 11:30 Uma Shankar
  2020-03-18 12:07 ` Anshuman Gupta
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Uma Shankar @ 2020-03-18 11:30 UTC (permalink / raw)
  To: intel-gfx; +Cc: SweeAun Khor

If external monitors are connected during boot up, driver
uses the same mode programmed by BIOS and avoids a full modeset.
This results in display audio codec left uninitialized and
display audio fails to work till user triggers a modeset.

This patch fixes the same by triggering a modeset at boot.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
 drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
 drivers/gpu/drm/i915/i915_drv.h              | 3 +++
 3 files changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 73d0f4648c06..ba380afa73a6 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct intel_encoder *encoder,
 				  const struct intel_crtc_state *crtc_state,
 				  const struct drm_connector_state *conn_state)
 {
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+
+	/* Clear the bootflag */
+	dev_priv->bootflag = false;
 
 	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
 		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 8f23c4d51c33..a1487539495f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct drm_device *dev,
 		if (new_crtc_state->hw.mode.private_flags !=
 		    old_crtc_state->hw.mode.private_flags)
 			new_crtc_state->uapi.mode_changed = true;
+
+		/* Set mode_change to init audio code once at boot */
+		if (dev_priv->bootflag && new_crtc_state->hw.active)
+			new_crtc_state->uapi.mode_changed = true;
 	}
 
 	ret = drm_atomic_helper_check_modeset(dev, &state->base);
@@ -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct drm_i915_private *dev_priv)
 
 static int intel_initial_commit(struct drm_device *dev)
 {
+	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct drm_atomic_state *state = NULL;
 	struct drm_modeset_acquire_ctx ctx;
 	struct intel_crtc *crtc;
 	int ret = 0;
 
+	/* Set Flag to trigger modeset for audio codec init */
+	dev_priv->bootflag = true;
+
 	state = drm_atomic_state_alloc(dev);
 	if (!state)
 		return -ENOMEM;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index a7ea1d855359..207196f9632b 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1210,6 +1210,9 @@ struct drm_i915_private {
 	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
 	 * will be rejected. Instead look for a better place.
 	 */
+
+	/* Flag to trigger modeset for Audio codec init once during boot */
+	bool bootflag;
 };
 
 static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
-- 
2.22.0

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

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
@ 2020-03-18 12:07 ` Anshuman Gupta
  2020-03-18 14:02   ` Shankar, Uma
  2020-03-18 12:15 ` Maarten Lankhorst
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Anshuman Gupta @ 2020-03-18 12:07 UTC (permalink / raw)
  To: Uma Shankar; +Cc: Khor, Swee Aun, intel-gfx

On 2020-03-18 at 17:00:09 +0530, Uma Shankar wrote:
> If external monitors are connected during boot up, driver
> uses the same mode programmed by BIOS and avoids a full modeset.
> This results in display audio codec left uninitialized and
> display audio fails to work till user triggers a modeset.
> 
> This patch fixes the same by triggering a modeset at boot.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
>  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
>  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
>  3 files changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 73d0f4648c06..ba380afa73a6 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct intel_encoder *encoder,
>  				  const struct intel_crtc_state *crtc_state,
>  				  const struct drm_connector_state *conn_state)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +
> +	/* Clear the bootflag */
> +	dev_priv->bootflag = false;
>  
>  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
>  		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 8f23c4d51c33..a1487539495f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct drm_device *dev,
>  		if (new_crtc_state->hw.mode.private_flags !=
>  		    old_crtc_state->hw.mode.private_flags)
>  			new_crtc_state->uapi.mode_changed = true;
> +
> +		/* Set mode_change to init audio code once at boot */
> +		if (dev_priv->bootflag && new_crtc_state->hw.active)
> +			new_crtc_state->uapi.mode_changed = true;
I would prefer to compute crtc_state->has_audio in compute_config at boot up 
 and then force a full modeset in intel_pipe_config_compare(), this way atomically we can force the
full modeset on boot up.

Thanks,
Anshuman Gupta.
>  	}
>  
>  	ret = drm_atomic_helper_check_modeset(dev, &state->base);
> @@ -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct drm_i915_private *dev_priv)
>  
>  static int intel_initial_commit(struct drm_device *dev)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct drm_atomic_state *state = NULL;
>  	struct drm_modeset_acquire_ctx ctx;
>  	struct intel_crtc *crtc;
>  	int ret = 0;
>  
> +	/* Set Flag to trigger modeset for audio codec init */
> +	dev_priv->bootflag = true;
> +
>  	state = drm_atomic_state_alloc(dev);
>  	if (!state)
>  		return -ENOMEM;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a7ea1d855359..207196f9632b 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1210,6 +1210,9 @@ struct drm_i915_private {
>  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
>  	 * will be rejected. Instead look for a better place.
>  	 */
> +
> +	/* Flag to trigger modeset for Audio codec init once during boot */
> +	bool bootflag;
>  };
>  
>  static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
> -- 
> 2.22.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
  2020-03-18 12:07 ` Anshuman Gupta
@ 2020-03-18 12:15 ` Maarten Lankhorst
  2020-03-18 14:37   ` Shankar, Uma
  2020-03-18 12:23 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Maarten Lankhorst @ 2020-03-18 12:15 UTC (permalink / raw)
  To: Uma Shankar, intel-gfx; +Cc: SweeAun Khor

Op 18-03-2020 om 12:30 schreef Uma Shankar:
> If external monitors are connected during boot up, driver
> uses the same mode programmed by BIOS and avoids a full modeset.
> This results in display audio codec left uninitialized and
> display audio fails to work till user triggers a modeset.
>
> This patch fixes the same by triggering a modeset at boot.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
>  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
>  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
>  3 files changed, 15 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 73d0f4648c06..ba380afa73a6 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct intel_encoder *encoder,
>  				  const struct intel_crtc_state *crtc_state,
>  				  const struct drm_connector_state *conn_state)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +
> +	/* Clear the bootflag */
> +	dev_priv->bootflag = false;
>  
>  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
>  		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 8f23c4d51c33..a1487539495f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct drm_device *dev,
>  		if (new_crtc_state->hw.mode.private_flags !=
>  		    old_crtc_state->hw.mode.private_flags)
>  			new_crtc_state->uapi.mode_changed = true;
> +
> +		/* Set mode_change to init audio code once at boot */
> +		if (dev_priv->bootflag && new_crtc_state->hw.active)
> +			new_crtc_state->uapi.mode_changed = true;
>  	}
>  
>  	ret = drm_atomic_helper_check_modeset(dev, &state->base);
> @@ -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct drm_i915_private *dev_priv)
>  
>  static int intel_initial_commit(struct drm_device *dev)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct drm_atomic_state *state = NULL;
>  	struct drm_modeset_acquire_ctx ctx;
>  	struct intel_crtc *crtc;
>  	int ret = 0;
>  
> +	/* Set Flag to trigger modeset for audio codec init */
> +	dev_priv->bootflag = true;
> +
>  	state = drm_atomic_state_alloc(dev);
>  	if (!state)
>  		return -ENOMEM;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index a7ea1d855359..207196f9632b 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1210,6 +1210,9 @@ struct drm_i915_private {
>  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
>  	 * will be rejected. Instead look for a better place.
>  	 */
> +
> +	/* Flag to trigger modeset for Audio codec init once during boot */
> +	bool bootflag;
>  };
>  
>  static inline struct drm_i915_private *to_i915(const struct drm_device *dev)

This is not going to help. We read out the has_audio flag now, the only thing we miss is to enable the audio codec. This should be done after the first detect(), in the manner which I described to get the correct eld values.

~Maarten

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

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

* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
  2020-03-18 12:07 ` Anshuman Gupta
  2020-03-18 12:15 ` Maarten Lankhorst
@ 2020-03-18 12:23 ` Patchwork
  2020-03-19 19:05 ` [Intel-gfx] [PATCH] " Souza, Jose
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2020-03-18 12:23 UTC (permalink / raw)
  To: Uma Shankar; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: Trigger Modeset at boot for audio codec init
URL   : https://patchwork.freedesktop.org/series/74828/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8146 -> Patchwork_17006
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_17006 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_17006, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-ilk-650:         NOTRUN -> [FAIL][1] +3 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-ilk-650/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - fi-ivb-3770:        NOTRUN -> [FAIL][2] +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-ivb-3770/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-glk-dsi:         [PASS][3] -> [FAIL][4] +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-glk-dsi/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-glk-dsi/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - fi-bsw-n3050:       [PASS][5] -> [FAIL][6] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-bsw-n3050/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-bsw-n3050/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
    - fi-hsw-4770:        [PASS][7] -> [FAIL][8] +3 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-hsw-4770/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-hsw-4770/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
    - fi-bxt-dsi:         [PASS][9] -> [FAIL][10] +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-bxt-dsi/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-bxt-dsi/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
    - fi-snb-2520m:       [PASS][11] -> [FAIL][12] +3 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-snb-2520m/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-snb-2520m/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
    - fi-pnv-d510:        [PASS][13] -> [FAIL][14] +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-pnv-d510/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-pnv-d510/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
    - fi-icl-dsi:         [PASS][15] -> [FAIL][16] +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-icl-dsi/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-icl-dsi/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
    - fi-elk-e7500:       [PASS][17] -> [FAIL][18] +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-elk-e7500/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-elk-e7500/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
    - fi-snb-2600:        [PASS][19] -> [FAIL][20] +3 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-snb-2600/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-snb-2600/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
    - fi-blb-e6850:       NOTRUN -> [FAIL][21] +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-blb-e6850/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - fi-gdg-551:         [PASS][22] -> [FAIL][23] +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-gdg-551/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-gdg-551/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - fi-bwr-2160:        [PASS][24] -> [FAIL][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-bwr-2160/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-bwr-2160/igt@kms_flip@basic-flip-vs-wf_vblank.html

  
#### Suppressed ####

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

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
    - {fi-tgl-dsi}:       NOTRUN -> [FAIL][26] +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-tgl-dsi/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@execlists:
    - fi-skl-6700k2:      [PASS][27] -> [INCOMPLETE][28] ([i915#656])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-skl-6700k2/igt@i915_selftest@live@execlists.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-skl-6700k2/igt@i915_selftest@live@execlists.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-gdg-551:         [PASS][29] -> [FAIL][30] ([IGT#5]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-gdg-551/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-gdg-551/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - fi-bwr-2160:        [PASS][31] -> [FAIL][32] ([IGT#5]) +4 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-bwr-2160/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-bwr-2160/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - fi-bsw-n3050:       [PASS][33] -> [FAIL][34] ([IGT#5] / [i915#697]) +5 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-bsw-n3050/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-bsw-n3050/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - fi-gdg-551:         [PASS][35] -> [FAIL][36] ([i915#34])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-gdg-551/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-gdg-551/igt@kms_flip@basic-flip-vs-wf_vblank.html
    - fi-bsw-n3050:       [PASS][37] -> [FAIL][38] ([i915#34])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8146/fi-bsw-n3050/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17006/fi-bsw-n3050/igt@kms_flip@basic-flip-vs-wf_vblank.html

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

  [IGT#5]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/5
  [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
  [i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656
  [i915#697]: https://gitlab.freedesktop.org/drm/intel/issues/697


Participating hosts (40 -> 29)
------------------------------

  Additional (4): fi-blb-e6850 fi-tgl-dsi fi-ivb-3770 fi-ilk-650 
  Missing    (15): fi-cml-u2 fi-ilk-m540 fi-tgl-u fi-ehl-1 fi-cml-s fi-byt-j1900 fi-hsw-peppy fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-kbl-7560u fi-icl-guc fi-bsw-kefka fi-kbl-r 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8146 -> Patchwork_17006

  CI-20190529: 20190529
  CI_DRM_8146: 407405e5f0d968870116e4eeb2a622c9b076962e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5521: 9c74586ea8e051d074864bce72baf5a688a0a437 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_17006: 7a1167eb7b03aa35561e733115114d815ee893b7 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

7a1167eb7b03 drm/i915/display: Trigger Modeset at boot for audio codec init

== Logs ==

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

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 12:07 ` Anshuman Gupta
@ 2020-03-18 14:02   ` Shankar, Uma
  0 siblings, 0 replies; 19+ messages in thread
From: Shankar, Uma @ 2020-03-18 14:02 UTC (permalink / raw)
  To: Gupta, Anshuman; +Cc: Khor, Swee Aun, intel-gfx



> -----Original Message-----
> From: Gupta, Anshuman <anshuman.gupta@intel.com>
> Sent: Wednesday, March 18, 2020 5:37 PM
> To: Shankar, Uma <uma.shankar@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; Khor, Swee Aun <swee.aun.khor@intel.com>
> Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> codec init
> 
> On 2020-03-18 at 17:00:09 +0530, Uma Shankar wrote:
> > If external monitors are connected during boot up, driver uses the
> > same mode programmed by BIOS and avoids a full modeset.
> > This results in display audio codec left uninitialized and display
> > audio fails to work till user triggers a modeset.
> >
> > This patch fixes the same by triggering a modeset at boot.
> >
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> > Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> > Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
> >  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
> >  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
> >  3 files changed, 15 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 73d0f4648c06..ba380afa73a6 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct intel_encoder
> *encoder,
> >  				  const struct intel_crtc_state *crtc_state,
> >  				  const struct drm_connector_state *conn_state)  {
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +
> > +	/* Clear the bootflag */
> > +	dev_priv->bootflag = false;
> >
> >  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> >  		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state); diff
> > --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 8f23c4d51c33..a1487539495f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct drm_device
> *dev,
> >  		if (new_crtc_state->hw.mode.private_flags !=
> >  		    old_crtc_state->hw.mode.private_flags)
> >  			new_crtc_state->uapi.mode_changed = true;
> > +
> > +		/* Set mode_change to init audio code once at boot */
> > +		if (dev_priv->bootflag && new_crtc_state->hw.active)
> > +			new_crtc_state->uapi.mode_changed = true;
> I would prefer to compute crtc_state->has_audio in compute_config at boot up  and
> then force a full modeset in intel_pipe_config_compare(), this way atomically we
> can force the full modeset on boot up.

Unfortunately the audio state is not yet detected here at bootup (read of EDID not yet done),
hence EDID data is not available. We tried to explore this path but this didn't worked out. We
forced modeset at intel_initial_commit but due to the above reason, things didn't worked out.

Regards,
Uma Shankar

> Thanks,
> Anshuman Gupta.
> >  	}
> >
> >  	ret = drm_atomic_helper_check_modeset(dev, &state->base); @@
> > -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct
> > drm_i915_private *dev_priv)
> >
> >  static int intel_initial_commit(struct drm_device *dev)  {
> > +	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	struct drm_atomic_state *state = NULL;
> >  	struct drm_modeset_acquire_ctx ctx;
> >  	struct intel_crtc *crtc;
> >  	int ret = 0;
> >
> > +	/* Set Flag to trigger modeset for audio codec init */
> > +	dev_priv->bootflag = true;
> > +
> >  	state = drm_atomic_state_alloc(dev);
> >  	if (!state)
> >  		return -ENOMEM;
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > b/drivers/gpu/drm/i915/i915_drv.h index a7ea1d855359..207196f9632b
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -1210,6 +1210,9 @@ struct drm_i915_private {
> >  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
> >  	 * will be rejected. Instead look for a better place.
> >  	 */
> > +
> > +	/* Flag to trigger modeset for Audio codec init once during boot */
> > +	bool bootflag;
> >  };
> >
> >  static inline struct drm_i915_private *to_i915(const struct
> > drm_device *dev)
> > --
> > 2.22.0
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 12:15 ` Maarten Lankhorst
@ 2020-03-18 14:37   ` Shankar, Uma
  2020-03-19 12:11     ` Maarten Lankhorst
  0 siblings, 1 reply; 19+ messages in thread
From: Shankar, Uma @ 2020-03-18 14:37 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx; +Cc: Khor, Swee Aun



> -----Original Message-----
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Sent: Wednesday, March 18, 2020 5:46 PM
> To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Kai Vehmanen
> <kai.vehmanen@linux.intel.com>; Khor, Swee Aun <swee.aun.khor@intel.com>
> Subject: Re: [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
> 
> Op 18-03-2020 om 12:30 schreef Uma Shankar:
> > If external monitors are connected during boot up, driver uses the
> > same mode programmed by BIOS and avoids a full modeset.
> > This results in display audio codec left uninitialized and display
> > audio fails to work till user triggers a modeset.
> >
> > This patch fixes the same by triggering a modeset at boot.
> >
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> > Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> > Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
> >  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
> >  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
> >  3 files changed, 15 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 73d0f4648c06..ba380afa73a6 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct intel_encoder
> *encoder,
> >  				  const struct intel_crtc_state *crtc_state,
> >  				  const struct drm_connector_state *conn_state)  {
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +
> > +	/* Clear the bootflag */
> > +	dev_priv->bootflag = false;
> >
> >  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> >  		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state); diff
> > --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 8f23c4d51c33..a1487539495f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct drm_device
> *dev,
> >  		if (new_crtc_state->hw.mode.private_flags !=
> >  		    old_crtc_state->hw.mode.private_flags)
> >  			new_crtc_state->uapi.mode_changed = true;
> > +
> > +		/* Set mode_change to init audio code once at boot */
> > +		if (dev_priv->bootflag && new_crtc_state->hw.active)
> > +			new_crtc_state->uapi.mode_changed = true;
> >  	}
> >
> >  	ret = drm_atomic_helper_check_modeset(dev, &state->base); @@
> > -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct
> > drm_i915_private *dev_priv)
> >
> >  static int intel_initial_commit(struct drm_device *dev)  {
> > +	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	struct drm_atomic_state *state = NULL;
> >  	struct drm_modeset_acquire_ctx ctx;
> >  	struct intel_crtc *crtc;
> >  	int ret = 0;
> >
> > +	/* Set Flag to trigger modeset for audio codec init */
> > +	dev_priv->bootflag = true;
> > +
> >  	state = drm_atomic_state_alloc(dev);
> >  	if (!state)
> >  		return -ENOMEM;
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > b/drivers/gpu/drm/i915/i915_drv.h index a7ea1d855359..207196f9632b
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -1210,6 +1210,9 @@ struct drm_i915_private {
> >  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
> >  	 * will be rejected. Instead look for a better place.
> >  	 */
> > +
> > +	/* Flag to trigger modeset for Audio codec init once during boot */
> > +	bool bootflag;
> >  };
> >
> >  static inline struct drm_i915_private *to_i915(const struct
> > drm_device *dev)
> 
> This is not going to help. We read out the has_audio flag now, the only thing we miss
> is to enable the audio codec. This should be done after the first detect(), in the
> manner which I described to get the correct eld values.

Hi Maarten,
At the time of sanitize, we don't have edid so has_audio flag will not be set. Also codec_enable
needs encoder, crtc_state, conn_state. All these are not there as part of detect callbacks.

With current approach, we force a modeset just during boot and then reset the flag so that normal
operations don't get affected.

Regards,
Uma Shankar

> ~Maarten

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

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 14:37   ` Shankar, Uma
@ 2020-03-19 12:11     ` Maarten Lankhorst
  0 siblings, 0 replies; 19+ messages in thread
From: Maarten Lankhorst @ 2020-03-19 12:11 UTC (permalink / raw)
  To: Shankar, Uma, intel-gfx; +Cc: Khor, Swee Aun

Op 18-03-2020 om 15:37 schreef Shankar, Uma:
>
>> -----Original Message-----
>> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Sent: Wednesday, March 18, 2020 5:46 PM
>> To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Kai Vehmanen
>> <kai.vehmanen@linux.intel.com>; Khor, Swee Aun <swee.aun.khor@intel.com>
>> Subject: Re: [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
>>
>> Op 18-03-2020 om 12:30 schreef Uma Shankar:
>>> If external monitors are connected during boot up, driver uses the
>>> same mode programmed by BIOS and avoids a full modeset.
>>> This results in display audio codec left uninitialized and display
>>> audio fails to work till user triggers a modeset.
>>>
>>> This patch fixes the same by triggering a modeset at boot.
>>>
>>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
>>> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
>>> Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
>>> ---
>>>  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
>>>  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
>>>  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
>>>  3 files changed, 15 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
>>> b/drivers/gpu/drm/i915/display/intel_ddi.c
>>> index 73d0f4648c06..ba380afa73a6 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
>>> @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct intel_encoder
>> *encoder,
>>>  				  const struct intel_crtc_state *crtc_state,
>>>  				  const struct drm_connector_state *conn_state)  {
>>> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>> +
>>> +	/* Clear the bootflag */
>>> +	dev_priv->bootflag = false;
>>>
>>>  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
>>>  		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state); diff
>>> --git a/drivers/gpu/drm/i915/display/intel_display.c
>>> b/drivers/gpu/drm/i915/display/intel_display.c
>>> index 8f23c4d51c33..a1487539495f 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>>> @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct drm_device
>> *dev,
>>>  		if (new_crtc_state->hw.mode.private_flags !=
>>>  		    old_crtc_state->hw.mode.private_flags)
>>>  			new_crtc_state->uapi.mode_changed = true;
>>> +
>>> +		/* Set mode_change to init audio code once at boot */
>>> +		if (dev_priv->bootflag && new_crtc_state->hw.active)
>>> +			new_crtc_state->uapi.mode_changed = true;
>>>  	}
>>>
>>>  	ret = drm_atomic_helper_check_modeset(dev, &state->base); @@
>>> -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct
>>> drm_i915_private *dev_priv)
>>>
>>>  static int intel_initial_commit(struct drm_device *dev)  {
>>> +	struct drm_i915_private *dev_priv = to_i915(dev);
>>>  	struct drm_atomic_state *state = NULL;
>>>  	struct drm_modeset_acquire_ctx ctx;
>>>  	struct intel_crtc *crtc;
>>>  	int ret = 0;
>>>
>>> +	/* Set Flag to trigger modeset for audio codec init */
>>> +	dev_priv->bootflag = true;
>>> +
>>>  	state = drm_atomic_state_alloc(dev);
>>>  	if (!state)
>>>  		return -ENOMEM;
>>> diff --git a/drivers/gpu/drm/i915/i915_drv.h
>>> b/drivers/gpu/drm/i915/i915_drv.h index a7ea1d855359..207196f9632b
>>> 100644
>>> --- a/drivers/gpu/drm/i915/i915_drv.h
>>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>>> @@ -1210,6 +1210,9 @@ struct drm_i915_private {
>>>  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
>>>  	 * will be rejected. Instead look for a better place.
>>>  	 */
>>> +
>>> +	/* Flag to trigger modeset for Audio codec init once during boot */
>>> +	bool bootflag;
>>>  };
>>>
>>>  static inline struct drm_i915_private *to_i915(const struct
>>> drm_device *dev)
>> This is not going to help. We read out the has_audio flag now, the only thing we miss
>> is to enable the audio codec. This should be done after the first detect(), in the
>> manner which I described to get the correct eld values.
> Hi Maarten,
> At the time of sanitize, we don't have edid so has_audio flag will not be set. Also codec_enable
> needs encoder, crtc_state, conn_state. All these are not there as part of detect callbacks.

They can be used. You have connection_mutex, so you can look at connector->state,

if you then lock conn_state->crtc, you can inspect conn_state->crtc->state as well.

conn_state->encoder is available as well.

It needs some casting to get the intel_XX_state but you can do it safely.

~Maarten

> With current approach, we force a modeset just during boot and then reset the flag so that normal
> operations don't get affected.
>
> Regards,
> Uma Shankar
>
>> ~Maarten


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

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
                   ` (2 preceding siblings ...)
  2020-03-18 12:23 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
@ 2020-03-19 19:05 ` Souza, Jose
  2020-03-20  6:19   ` Shankar, Uma
  2020-03-23 16:57 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Trigger Modeset at boot for audio codec init (rev2) Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Souza, Jose @ 2020-03-19 19:05 UTC (permalink / raw)
  To: Shankar, Uma, intel-gfx; +Cc: Khor, Swee Aun

On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> If external monitors are connected during boot up, driver
> uses the same mode programmed by BIOS and avoids a full modeset.
> This results in display audio codec left uninitialized and
> display audio fails to work till user triggers a modeset.
> 
> This patch fixes the same by triggering a modeset at boot.

We had the same issue for PSR, take a look to the fix:
commit 33e059a2e4df454359f642f2235af39de9d3e914
drm/i915/psr: Force PSR probe only after full initialization

Maybe make this even more generic.

> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
>  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
>  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
>  3 files changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 73d0f4648c06..ba380afa73a6 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct
> intel_encoder *encoder,
>  				  const struct intel_crtc_state
> *crtc_state,
>  				  const struct drm_connector_state
> *conn_state)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +
> +	/* Clear the bootflag */
> +	dev_priv->bootflag = false;
>  
>  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
>  		intel_ddi_update_pipe_dp(encoder, crtc_state,
> conn_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 8f23c4d51c33..a1487539495f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct
> drm_device *dev,
>  		if (new_crtc_state->hw.mode.private_flags !=
>  		    old_crtc_state->hw.mode.private_flags)
>  			new_crtc_state->uapi.mode_changed = true;
> +
> +		/* Set mode_change to init audio code once at boot */
> +		if (dev_priv->bootflag && new_crtc_state->hw.active)
> +			new_crtc_state->uapi.mode_changed = true;
>  	}
>  
>  	ret = drm_atomic_helper_check_modeset(dev, &state->base);
> @@ -17655,11 +17659,15 @@ static void
> intel_update_fdi_pll_freq(struct drm_i915_private *dev_priv)
>  
>  static int intel_initial_commit(struct drm_device *dev)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct drm_atomic_state *state = NULL;
>  	struct drm_modeset_acquire_ctx ctx;
>  	struct intel_crtc *crtc;
>  	int ret = 0;
>  
> +	/* Set Flag to trigger modeset for audio codec init */
> +	dev_priv->bootflag = true;
> +
>  	state = drm_atomic_state_alloc(dev);
>  	if (!state)
>  		return -ENOMEM;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h
> b/drivers/gpu/drm/i915/i915_drv.h
> index a7ea1d855359..207196f9632b 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1210,6 +1210,9 @@ struct drm_i915_private {
>  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here.
> Your patch
>  	 * will be rejected. Instead look for a better place.
>  	 */
> +
> +	/* Flag to trigger modeset for Audio codec init once during
> boot */
> +	bool bootflag;
>  };
>  
>  static inline struct drm_i915_private *to_i915(const struct
> drm_device *dev)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-19 19:05 ` [Intel-gfx] [PATCH] " Souza, Jose
@ 2020-03-20  6:19   ` Shankar, Uma
  2020-03-20 15:24     ` Ville Syrjälä
  2020-03-24 18:38     ` Kai Vehmanen
  0 siblings, 2 replies; 19+ messages in thread
From: Shankar, Uma @ 2020-03-20  6:19 UTC (permalink / raw)
  To: Souza, Jose, intel-gfx; +Cc: Khor, Swee Aun



> -----Original Message-----
> From: Souza, Jose <jose.souza@intel.com>
> Sent: Friday, March 20, 2020 12:36 AM
> To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org
> Cc: Khor, Swee Aun <swee.aun.khor@intel.com>
> Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> codec init
> 
> On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > If external monitors are connected during boot up, driver uses the
> > same mode programmed by BIOS and avoids a full modeset.
> > This results in display audio codec left uninitialized and display
> > audio fails to work till user triggers a modeset.
> >
> > This patch fixes the same by triggering a modeset at boot.
> 
> We had the same issue for PSR, take a look to the fix:
> commit 33e059a2e4df454359f642f2235af39de9d3e914
> drm/i915/psr: Force PSR probe only after full initialization
> 
> Maybe make this even more generic.

Yeah this looks to dealing with almost a similar need. Thanks for pointing this out,
will try to come up with a generalized solution.

Regards,
Uma Shankar

> >
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> > Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> > Signed-off-by: SweeAun Khor <swee.aun.khor@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_ddi.c     | 4 ++++
> >  drivers/gpu/drm/i915/display/intel_display.c | 8 ++++++++
> >  drivers/gpu/drm/i915/i915_drv.h              | 3 +++
> >  3 files changed, 15 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 73d0f4648c06..ba380afa73a6 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -3704,6 +3704,10 @@ static void intel_ddi_update_pipe(struct
> > intel_encoder *encoder,
> >  				  const struct intel_crtc_state
> > *crtc_state,
> >  				  const struct drm_connector_state
> > *conn_state)
> >  {
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +
> > +	/* Clear the bootflag */
> > +	dev_priv->bootflag = false;
> >
> >  	if (!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> >  		intel_ddi_update_pipe_dp(encoder, crtc_state, conn_state); diff
> > --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 8f23c4d51c33..a1487539495f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -14751,6 +14751,10 @@ static int intel_atomic_check(struct
> > drm_device *dev,
> >  		if (new_crtc_state->hw.mode.private_flags !=
> >  		    old_crtc_state->hw.mode.private_flags)
> >  			new_crtc_state->uapi.mode_changed = true;
> > +
> > +		/* Set mode_change to init audio code once at boot */
> > +		if (dev_priv->bootflag && new_crtc_state->hw.active)
> > +			new_crtc_state->uapi.mode_changed = true;
> >  	}
> >
> >  	ret = drm_atomic_helper_check_modeset(dev, &state->base); @@
> > -17655,11 +17659,15 @@ static void intel_update_fdi_pll_freq(struct
> > drm_i915_private *dev_priv)
> >
> >  static int intel_initial_commit(struct drm_device *dev)  {
> > +	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	struct drm_atomic_state *state = NULL;
> >  	struct drm_modeset_acquire_ctx ctx;
> >  	struct intel_crtc *crtc;
> >  	int ret = 0;
> >
> > +	/* Set Flag to trigger modeset for audio codec init */
> > +	dev_priv->bootflag = true;
> > +
> >  	state = drm_atomic_state_alloc(dev);
> >  	if (!state)
> >  		return -ENOMEM;
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > b/drivers/gpu/drm/i915/i915_drv.h index a7ea1d855359..207196f9632b
> > 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -1210,6 +1210,9 @@ struct drm_i915_private {
> >  	 * NOTE: This is the dri1/ums dungeon, don't add stuff here.
> > Your patch
> >  	 * will be rejected. Instead look for a better place.
> >  	 */
> > +
> > +	/* Flag to trigger modeset for Audio codec init once during
> > boot */
> > +	bool bootflag;
> >  };
> >
> >  static inline struct drm_i915_private *to_i915(const struct
> > drm_device *dev)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-20  6:19   ` Shankar, Uma
@ 2020-03-20 15:24     ` Ville Syrjälä
  2020-03-20 16:54       ` Khor, Swee Aun
  2020-03-24 18:38     ` Kai Vehmanen
  1 sibling, 1 reply; 19+ messages in thread
From: Ville Syrjälä @ 2020-03-20 15:24 UTC (permalink / raw)
  To: Shankar, Uma; +Cc: Khor, Swee Aun, intel-gfx

On Fri, Mar 20, 2020 at 06:19:37AM +0000, Shankar, Uma wrote:
> 
> 
> > -----Original Message-----
> > From: Souza, Jose <jose.souza@intel.com>
> > Sent: Friday, March 20, 2020 12:36 AM
> > To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org
> > Cc: Khor, Swee Aun <swee.aun.khor@intel.com>
> > Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> > codec init
> > 
> > On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > > If external monitors are connected during boot up, driver uses the
> > > same mode programmed by BIOS and avoids a full modeset.
> > > This results in display audio codec left uninitialized and display
> > > audio fails to work till user triggers a modeset.
> > >
> > > This patch fixes the same by triggering a modeset at boot.
> > 
> > We had the same issue for PSR, take a look to the fix:
> > commit 33e059a2e4df454359f642f2235af39de9d3e914
> > drm/i915/psr: Force PSR probe only after full initialization
> > 
> > Maybe make this even more generic.
> 
> Yeah this looks to dealing with almost a similar need. Thanks for pointing this out,
> will try to come up with a generalized solution.

How about just fixing the uapi vs. hw fail I showed instead of adding
even more hacks?

-- 
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] 19+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-20 15:24     ` Ville Syrjälä
@ 2020-03-20 16:54       ` Khor, Swee Aun
  2020-03-23 14:29         ` Khor, Swee Aun
  0 siblings, 1 reply; 19+ messages in thread
From: Khor, Swee Aun @ 2020-03-20 16:54 UTC (permalink / raw)
  To: Ville Syrjälä, Shankar, Uma; +Cc: intel-gfx

Hi Ville,
You means this change right? Sure. Will try your suggestion as well. 
By the way, what is different between hw.mode and uapi.mode and how we know which to be used? It used to only base.mode before hw/uapi split patches. 

> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14671,8 +14671,8 @@ static int intel_atomic_check(struct drm_device *dev,
>         /* Catch I915_MODE_FLAG_INHERITED */
>         for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
>                                             new_crtc_state, i) {
> -               if (new_crtc_state->hw.mode.private_flags !=
> -                   old_crtc_state->hw.mode.private_flags)
> +               if (new_crtc_state->uapi.mode.private_flags !=
> +                   old_crtc_state->uapi.mode.private_flags)
>                         new_crtc_state->uapi.mode_changed = true;
>         }
> 
> ?

Regards,
SweeAun

-----Original Message-----
From: Ville Syrjälä <ville.syrjala@linux.intel.com> 
Sent: Friday, March 20, 2020 11:24 PM
To: Shankar, Uma <uma.shankar@intel.com>
Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org; Khor, Swee Aun <swee.aun.khor@intel.com>
Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init

On Fri, Mar 20, 2020 at 06:19:37AM +0000, Shankar, Uma wrote:
> 
> 
> > -----Original Message-----
> > From: Souza, Jose <jose.souza@intel.com>
> > Sent: Friday, March 20, 2020 12:36 AM
> > To: Shankar, Uma <uma.shankar@intel.com>; 
> > intel-gfx@lists.freedesktop.org
> > Cc: Khor, Swee Aun <swee.aun.khor@intel.com>
> > Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset 
> > at boot for audio codec init
> > 
> > On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > > If external monitors are connected during boot up, driver uses the 
> > > same mode programmed by BIOS and avoids a full modeset.
> > > This results in display audio codec left uninitialized and display 
> > > audio fails to work till user triggers a modeset.
> > >
> > > This patch fixes the same by triggering a modeset at boot.
> > 
> > We had the same issue for PSR, take a look to the fix:
> > commit 33e059a2e4df454359f642f2235af39de9d3e914
> > drm/i915/psr: Force PSR probe only after full initialization
> > 
> > Maybe make this even more generic.
> 
> Yeah this looks to dealing with almost a similar need. Thanks for 
> pointing this out, will try to come up with a generalized solution.

How about just fixing the uapi vs. hw fail I showed instead of adding even more hacks?

--
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] 19+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-20 16:54       ` Khor, Swee Aun
@ 2020-03-23 14:29         ` Khor, Swee Aun
  2020-03-24  5:56           ` Khor, Swee Aun
  0 siblings, 1 reply; 19+ messages in thread
From: Khor, Swee Aun @ 2020-03-23 14:29 UTC (permalink / raw)
  To: Ville Syrjälä, Shankar, Uma; +Cc: intel-gfx

Hi Ville, 

You are right, your suggestion will fix this issue.

#Based on dmesg log, uapi mode private flags change is captured
...
[   11.404578] fbcon: i915drmfb (fb0) is primary device
[   11.404743] [drm] SA: intel_atomic_check: uapi change 
[   11.404744] [drm] SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 1  
[   11.404744] [drm] SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 0  
[   11.404745] [drm] SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 0  
[   11.404799] [drm:intel_atomic_check [i915]] [CONNECTOR:110:HDMI-A-2] Limiting display bpp to 24 instead of EDID bpp 24, requested bpp 36, max platform bpp 36
[   11.404855] [drm:intel_hdmi_compute_config [i915]] picking 8 bpc for HDMI output (pipe bpp: 24)
[   11.404898] [drm:intel_atomic_check [i915]] hw max bpp: 24, pipe bpp: 24, dithering: 0
...

#Here is the git diff 
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 4d1634ed6a1b..b5c56cd513d9 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14108,11 +14108,15 @@ static int intel_atomic_check(struct drm_device *dev,
 	int ret, i;
 	bool any_ms = false;
 
+	DRM_INFO("SA: intel_atomic_check: uapi change \n");
+
 	/* Catch I915_MODE_FLAG_INHERITED */
 	for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
 					    new_crtc_state, i) {
-		if (new_crtc_state->hw.mode.private_flags !=
-		    old_crtc_state->hw.mode.private_flags)
+
+		DRM_INFO("SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state->uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags, old_crtc_state->uapi.mode.private_flags );
+		if (new_crtc_state->uapi.mode.private_flags !=
+		    old_crtc_state->uapi.mode.private_flags)
 			new_crtc_state->uapi.mode_changed = true;
 	}

Regards,
SweeAun

-----Original Message-----
From: Khor, Swee Aun 
Sent: Saturday, March 21, 2020 12:55 AM
To: Ville Syrjälä <ville.syrjala@linux.intel.com>; Shankar, Uma <uma.shankar@intel.com>
Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org
Subject: RE: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init

Hi Ville,
You means this change right? Sure. Will try your suggestion as well. 
By the way, what is different between hw.mode and uapi.mode and how we know which to be used? It used to only base.mode before hw/uapi split patches. 

> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14671,8 +14671,8 @@ static int intel_atomic_check(struct drm_device *dev,
>         /* Catch I915_MODE_FLAG_INHERITED */
>         for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
>                                             new_crtc_state, i) {
> -               if (new_crtc_state->hw.mode.private_flags !=
> -                   old_crtc_state->hw.mode.private_flags)
> +               if (new_crtc_state->uapi.mode.private_flags !=
> +                   old_crtc_state->uapi.mode.private_flags)
>                         new_crtc_state->uapi.mode_changed = true;
>         }
> 
> ?

Regards,
SweeAun

-----Original Message-----
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Sent: Friday, March 20, 2020 11:24 PM
To: Shankar, Uma <uma.shankar@intel.com>
Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org; Khor, Swee Aun <swee.aun.khor@intel.com>
Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init

On Fri, Mar 20, 2020 at 06:19:37AM +0000, Shankar, Uma wrote:
> 
> 
> > -----Original Message-----
> > From: Souza, Jose <jose.souza@intel.com>
> > Sent: Friday, March 20, 2020 12:36 AM
> > To: Shankar, Uma <uma.shankar@intel.com>; 
> > intel-gfx@lists.freedesktop.org
> > Cc: Khor, Swee Aun <swee.aun.khor@intel.com>
> > Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset 
> > at boot for audio codec init
> > 
> > On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > > If external monitors are connected during boot up, driver uses the 
> > > same mode programmed by BIOS and avoids a full modeset.
> > > This results in display audio codec left uninitialized and display 
> > > audio fails to work till user triggers a modeset.
> > >
> > > This patch fixes the same by triggering a modeset at boot.
> > 
> > We had the same issue for PSR, take a look to the fix:
> > commit 33e059a2e4df454359f642f2235af39de9d3e914
> > drm/i915/psr: Force PSR probe only after full initialization
> > 
> > Maybe make this even more generic.
> 
> Yeah this looks to dealing with almost a similar need. Thanks for 
> pointing this out, will try to come up with a generalized solution.

How about just fixing the uapi vs. hw fail I showed instead of adding even more hacks?

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

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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Trigger Modeset at boot for audio codec init (rev2)
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
                   ` (3 preceding siblings ...)
  2020-03-19 19:05 ` [Intel-gfx] [PATCH] " Souza, Jose
@ 2020-03-23 16:57 ` Patchwork
  2020-03-23 17:20 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2020-03-23 16:57 UTC (permalink / raw)
  To: Khor, Swee Aun; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: Trigger Modeset at boot for audio codec init (rev2)
URL   : https://patchwork.freedesktop.org/series/74828/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
0db59c6d9bd5 drm/i915/display: Trigger Modeset at boot for audio codec init
-:33: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#33: 
To: Ville Syrjälä <ville.syrjala@linux.intel.com>; Shankar, Uma <uma.shankar@intel.com>

-:87: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 33e059a2e4df ("drm/i915/psr: Force PSR probe only after full initialization")'
#87: 
> > commit 33e059a2e4df454359f642f2235af39de9d3e914

-:105: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'intel_atomic_check', this function's name, in a string
#105: FILE: drivers/gpu/drm/i915/display/intel_display.c:14746:
+	DRM_INFO("SA: intel_atomic_check: uapi change \n");

-:105: WARNING:QUOTED_WHITESPACE_BEFORE_NEWLINE: unnecessary whitespace before a quoted newline
#105: FILE: drivers/gpu/drm/i915/display/intel_display.c:14746:
+	DRM_INFO("SA: intel_atomic_check: uapi change \n");

-:112: CHECK:BRACES: Blank lines aren't necessary after an open brace '{'
#112: FILE: drivers/gpu/drm/i915/display/intel_display.c:14751:
 					    new_crtc_state, i) {
+

-:113: WARNING:LONG_LINE: line over 100 characters
#113: FILE: drivers/gpu/drm/i915/display/intel_display.c:14752:
+		DRM_INFO("SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state->uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags, old_crtc_state->uapi.mode.private_flags );

-:113: ERROR:SPACING: space prohibited before that close parenthesis ')'
#113: FILE: drivers/gpu/drm/i915/display/intel_display.c:14752:
+		DRM_INFO("SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state->uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags, old_crtc_state->uapi.mode.private_flags );

-:113: WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'intel_atomic_check', this function's name, in a string
#113: FILE: drivers/gpu/drm/i915/display/intel_display.c:14752:
+		DRM_INFO("SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state->uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags, old_crtc_state->uapi.mode.private_flags );

-:113: WARNING:QUOTED_WHITESPACE_BEFORE_NEWLINE: unnecessary whitespace before a quoted newline
#113: FILE: drivers/gpu/drm/i915/display/intel_display.c:14752:
+		DRM_INFO("SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state->uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags, old_crtc_state->uapi.mode.private_flags );

-:118: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s)

total: 3 errors, 6 warnings, 1 checks, 17 lines checked

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

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

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: Trigger Modeset at boot for audio codec init (rev2)
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
                   ` (4 preceding siblings ...)
  2020-03-23 16:57 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Trigger Modeset at boot for audio codec init (rev2) Patchwork
@ 2020-03-23 17:20 ` Patchwork
  2020-03-24  0:01 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  2020-03-24  6:11 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/display: Trigger Modeset at boot for audio codec init (rev3) Patchwork
  7 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2020-03-23 17:20 UTC (permalink / raw)
  To: Khor, Swee Aun; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: Trigger Modeset at boot for audio codec init (rev2)
URL   : https://patchwork.freedesktop.org/series/74828/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8180 -> Patchwork_17056
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-cml-u2:          [PASS][1] -> [DMESG-WARN][2] ([IGT#4])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8180/fi-cml-u2/igt@kms_chamelium@common-hpd-after-suspend.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17056/fi-cml-u2/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@dp-crc-fast:
    - fi-cml-u2:          [PASS][3] -> [FAIL][4] ([i915#217])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8180/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17056/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@execlists:
    - fi-bxt-dsi:         [INCOMPLETE][5] ([fdo#103927] / [i915#656]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8180/fi-bxt-dsi/igt@i915_selftest@live@execlists.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17056/fi-bxt-dsi/igt@i915_selftest@live@execlists.html

  
#### Warnings ####

  * igt@i915_selftest@live@gem_contexts:
    - fi-cfl-guc:         [DMESG-FAIL][7] ([i915#481]) -> [DMESG-FAIL][8] ([i915#943])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8180/fi-cfl-guc/igt@i915_selftest@live@gem_contexts.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17056/fi-cfl-guc/igt@i915_selftest@live@gem_contexts.html

  
  [IGT#4]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/4
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#481]: https://gitlab.freedesktop.org/drm/intel/issues/481
  [i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656
  [i915#943]: https://gitlab.freedesktop.org/drm/intel/issues/943


Participating hosts (40 -> 43)
------------------------------

  Additional (10): fi-bdw-5557u fi-hsw-peppy fi-kbl-7500u fi-gdg-551 fi-elk-e7500 fi-skl-lmem fi-blb-e6850 fi-bsw-nick fi-skl-6600u fi-snb-2600 
  Missing    (7): fi-bsw-n3050 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-kbl-7560u fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_8180 -> Patchwork_17056

  CI-20190529: 20190529
  CI_DRM_8180: 257af0ddcea3a234dcb79579600f971edd47353f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5530: 2020d743940f06294d06006bb737be43fcd2881e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_17056: 0db59c6d9bd50ac3f03b40c76535eac49d25adb2 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

0db59c6d9bd5 drm/i915/display: Trigger Modeset at boot for audio codec init

== Logs ==

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

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

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/display: Trigger Modeset at boot for audio codec init (rev2)
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
                   ` (5 preceding siblings ...)
  2020-03-23 17:20 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2020-03-24  0:01 ` Patchwork
  2020-03-24  6:11 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/display: Trigger Modeset at boot for audio codec init (rev3) Patchwork
  7 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2020-03-24  0:01 UTC (permalink / raw)
  To: Khor, Swee Aun; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: Trigger Modeset at boot for audio codec init (rev2)
URL   : https://patchwork.freedesktop.org/series/74828/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8180_full -> Patchwork_17056_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_17056_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_17056_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  


Changes
-------

  No changes found


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

  ERROR: It appears as if the changes made in Patchwork_17056_full prevented too many machines from booting.

  Missing    (8): shard-skl shard-tglb shard-iclb shard-apl shard-glk shard-hsw shard-kbl shard-snb 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5530 -> None
  * Linux: CI_DRM_8180 -> Patchwork_17056

  CI-20190529: 20190529
  CI_DRM_8180: 257af0ddcea3a234dcb79579600f971edd47353f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5530: 2020d743940f06294d06006bb737be43fcd2881e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_17056: 0db59c6d9bd50ac3f03b40c76535eac49d25adb2 @ 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_17056/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-23 14:29         ` Khor, Swee Aun
@ 2020-03-24  5:56           ` Khor, Swee Aun
  2020-03-26  7:25             ` Shankar, Uma
  0 siblings, 1 reply; 19+ messages in thread
From: Khor, Swee Aun @ 2020-03-24  5:56 UTC (permalink / raw)
  To: Ville Syrjälä, Shankar, Uma; +Cc: intel-gfx

Git diff without debug print. Please review. Thanks. 

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 4d1634ed6a1b..806cf622fb39 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14108,11 +14108,13 @@ static int intel_atomic_check(struct drm_device *dev,
        int ret, i;
        bool any_ms = false;
 
+
        /* Catch I915_MODE_FLAG_INHERITED */
        for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
                                            new_crtc_state, i) {
-               if (new_crtc_state->hw.mode.private_flags !=
-                   old_crtc_state->hw.mode.private_flags)
+
+               if (new_crtc_state->uapi.mode.private_flags !=
+                   old_crtc_state->uapi.mode.private_flags)
                        new_crtc_state->uapi.mode_changed = true;
        }

Regards,
SweeAun

-----Original Message-----
From: Khor, Swee Aun 
Sent: Monday, March 23, 2020 10:29 PM
To: 'Ville Syrjälä' <ville.syrjala@linux.intel.com>; Shankar, Uma <uma.shankar@intel.com>
Cc: Souza, Jose <jose.souza@intel.com>; 'intel-gfx@lists.freedesktop.org' <intel-gfx@lists.freedesktop.org>
Subject: RE: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init

Hi Ville, 

You are right, your suggestion will fix this issue.

#Based on dmesg log, uapi mode private flags change is captured ...
[   11.404578] fbcon: i915drmfb (fb0) is primary device
[   11.404743] [drm] SA: intel_atomic_check: uapi change 
[   11.404744] [drm] SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 1  
[   11.404744] [drm] SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 0  
[   11.404745] [drm] SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 0  
[   11.404799] [drm:intel_atomic_check [i915]] [CONNECTOR:110:HDMI-A-2] Limiting display bpp to 24 instead of EDID bpp 24, requested bpp 36, max platform bpp 36
[   11.404855] [drm:intel_hdmi_compute_config [i915]] picking 8 bpc for HDMI output (pipe bpp: 24)
[   11.404898] [drm:intel_atomic_check [i915]] hw max bpp: 24, pipe bpp: 24, dithering: 0
...

#Here is the git diff
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 4d1634ed6a1b..b5c56cd513d9 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14108,11 +14108,15 @@ static int intel_atomic_check(struct drm_device *dev,
 	int ret, i;
 	bool any_ms = false;
 
+	DRM_INFO("SA: intel_atomic_check: uapi change \n");
+
 	/* Catch I915_MODE_FLAG_INHERITED */
 	for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
 					    new_crtc_state, i) {
-		if (new_crtc_state->hw.mode.private_flags !=
-		    old_crtc_state->hw.mode.private_flags)
+
+		DRM_INFO("SA2: intel_atomic_check: new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state->uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags, old_crtc_state->uapi.mode.private_flags );
+		if (new_crtc_state->uapi.mode.private_flags !=
+		    old_crtc_state->uapi.mode.private_flags)
 			new_crtc_state->uapi.mode_changed = true;
 	}

Regards,
SweeAun

-----Original Message-----
From: Khor, Swee Aun
Sent: Saturday, March 21, 2020 12:55 AM
To: Ville Syrjälä <ville.syrjala@linux.intel.com>; Shankar, Uma <uma.shankar@intel.com>
Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org
Subject: RE: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init

Hi Ville,
You means this change right? Sure. Will try your suggestion as well. 
By the way, what is different between hw.mode and uapi.mode and how we know which to be used? It used to only base.mode before hw/uapi split patches. 

> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14671,8 +14671,8 @@ static int intel_atomic_check(struct drm_device *dev,
>         /* Catch I915_MODE_FLAG_INHERITED */
>         for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
>                                             new_crtc_state, i) {
> -               if (new_crtc_state->hw.mode.private_flags !=
> -                   old_crtc_state->hw.mode.private_flags)
> +               if (new_crtc_state->uapi.mode.private_flags !=
> +                   old_crtc_state->uapi.mode.private_flags)
>                         new_crtc_state->uapi.mode_changed = true;
>         }
> 
> ?

Regards,
SweeAun

-----Original Message-----
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Sent: Friday, March 20, 2020 11:24 PM
To: Shankar, Uma <uma.shankar@intel.com>
Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org; Khor, Swee Aun <swee.aun.khor@intel.com>
Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init

On Fri, Mar 20, 2020 at 06:19:37AM +0000, Shankar, Uma wrote:
> 
> 
> > -----Original Message-----
> > From: Souza, Jose <jose.souza@intel.com>
> > Sent: Friday, March 20, 2020 12:36 AM
> > To: Shankar, Uma <uma.shankar@intel.com>; 
> > intel-gfx@lists.freedesktop.org
> > Cc: Khor, Swee Aun <swee.aun.khor@intel.com>
> > Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset 
> > at boot for audio codec init
> > 
> > On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > > If external monitors are connected during boot up, driver uses the 
> > > same mode programmed by BIOS and avoids a full modeset.
> > > This results in display audio codec left uninitialized and display 
> > > audio fails to work till user triggers a modeset.
> > >
> > > This patch fixes the same by triggering a modeset at boot.
> > 
> > We had the same issue for PSR, take a look to the fix:
> > commit 33e059a2e4df454359f642f2235af39de9d3e914
> > drm/i915/psr: Force PSR probe only after full initialization
> > 
> > Maybe make this even more generic.
> 
> Yeah this looks to dealing with almost a similar need. Thanks for 
> pointing this out, will try to come up with a generalized solution.

How about just fixing the uapi vs. hw fail I showed instead of adding even more hacks?

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

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

* [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/display: Trigger Modeset at boot for audio codec init (rev3)
  2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
                   ` (6 preceding siblings ...)
  2020-03-24  0:01 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-03-24  6:11 ` Patchwork
  7 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2020-03-24  6:11 UTC (permalink / raw)
  To: Khor, Swee Aun; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: Trigger Modeset at boot for audio codec init (rev3)
URL   : https://patchwork.freedesktop.org/series/74828/
State : failure

== Summary ==

Applying: drm/i915/display: Trigger Modeset at boot for audio codec init
error: sha1 information is lacking or useless (drivers/gpu/drm/i915/display/intel_display.c).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 drm/i915/display: Trigger Modeset at boot for audio codec init
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] 19+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-20  6:19   ` Shankar, Uma
  2020-03-20 15:24     ` Ville Syrjälä
@ 2020-03-24 18:38     ` Kai Vehmanen
  1 sibling, 0 replies; 19+ messages in thread
From: Kai Vehmanen @ 2020-03-24 18:38 UTC (permalink / raw)
  To: Shankar, Uma; +Cc: Khor, Swee Aun, intel-gfx

Hey folks,

On Fri, 20 Mar 2020, Shankar, Uma wrote:
> Souza, Jose <jose.souza@intel.com> wrote:
> > On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > > This patch fixes the same by triggering a modeset at boot.
> > 
> > We had the same issue for PSR, take a look to the fix:
> > commit 33e059a2e4df454359f642f2235af39de9d3e914
> > drm/i915/psr: Force PSR probe only after full initialization
> > 
> > Maybe make this even more generic.
> 
> Yeah this looks to dealing with almost a similar need. Thanks for pointing this out,
> will try to come up with a generalized solution.

btw, there's an additional regression in the posted patch, reported 
by Michael Marley in:

"HDMI/DisplayPort audio does not work initially on boot with Linux 5.6 
(Bisected)"
https://gitlab.freedesktop.org/drm/intel/issues/1363

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

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

* Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init
  2020-03-24  5:56           ` Khor, Swee Aun
@ 2020-03-26  7:25             ` Shankar, Uma
  0 siblings, 0 replies; 19+ messages in thread
From: Shankar, Uma @ 2020-03-26  7:25 UTC (permalink / raw)
  To: Khor, Swee Aun, Ville Syrjälä; +Cc: intel-gfx



> -----Original Message-----
> From: Khor, Swee Aun <swee.aun.khor@intel.com>
> Sent: Tuesday, March 24, 2020 11:26 AM
> To: Ville Syrjälä <ville.syrjala@linux.intel.com>; Shankar, Uma
> <uma.shankar@intel.com>
> Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org
> Subject: RE: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> codec init
> 
> Git diff without debug print. Please review. Thanks.

Will send this as a separate patch as this commit header doesn't hold good now.
Please review the change here: https://patchwork.freedesktop.org/series/75106/

Thanks Ville, Maarten and Jose for all your inputs. Thanks SweeAun for trying this at your end
and confirming the change suggested by Ville works to resolve audio codec issues.

Regards,
Uma Shankar

> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 4d1634ed6a1b..806cf622fb39 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14108,11 +14108,13 @@ static int intel_atomic_check(struct drm_device
> *dev,
>         int ret, i;
>         bool any_ms = false;
> 
> +
>         /* Catch I915_MODE_FLAG_INHERITED */
>         for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
>                                             new_crtc_state, i) {
> -               if (new_crtc_state->hw.mode.private_flags !=
> -                   old_crtc_state->hw.mode.private_flags)
> +
> +               if (new_crtc_state->uapi.mode.private_flags !=
> +                   old_crtc_state->uapi.mode.private_flags)
>                         new_crtc_state->uapi.mode_changed = true;
>         }
> 
> Regards,
> SweeAun
> 
> -----Original Message-----
> From: Khor, Swee Aun
> Sent: Monday, March 23, 2020 10:29 PM
> To: 'Ville Syrjälä' <ville.syrjala@linux.intel.com>; Shankar, Uma
> <uma.shankar@intel.com>
> Cc: Souza, Jose <jose.souza@intel.com>; 'intel-gfx@lists.freedesktop.org' <intel-
> gfx@lists.freedesktop.org>
> Subject: RE: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> codec init
> 
> Hi Ville,
> 
> You are right, your suggestion will fix this issue.
> 
> #Based on dmesg log, uapi mode private flags change is captured ...
> [   11.404578] fbcon: i915drmfb (fb0) is primary device
> [   11.404743] [drm] SA: intel_atomic_check: uapi change
> [   11.404744] [drm] SA2: intel_atomic_check: new_crtc_state-
> >uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 1
> [   11.404744] [drm] SA2: intel_atomic_check: new_crtc_state-
> >uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 0
> [   11.404745] [drm] SA2: intel_atomic_check: new_crtc_state-
> >uapi.mode.private_flags= 0, old_crtc_state->uapi.mode.private_flags= 0
> [   11.404799] [drm:intel_atomic_check [i915]] [CONNECTOR:110:HDMI-A-2]
> Limiting display bpp to 24 instead of EDID bpp 24, requested bpp 36, max platform
> bpp 36
> [   11.404855] [drm:intel_hdmi_compute_config [i915]] picking 8 bpc for HDMI
> output (pipe bpp: 24)
> [   11.404898] [drm:intel_atomic_check [i915]] hw max bpp: 24, pipe bpp: 24,
> dithering: 0
> ...
> 
> #Here is the git diff
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 4d1634ed6a1b..b5c56cd513d9 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14108,11 +14108,15 @@ static int intel_atomic_check(struct drm_device
> *dev,  int ret, i;  bool any_ms = false;
> 
> +DRM_INFO("SA: intel_atomic_check: uapi change \n");
> +
>  /* Catch I915_MODE_FLAG_INHERITED */
>  for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
>      new_crtc_state, i) {
> -if (new_crtc_state->hw.mode.private_flags !=
> -    old_crtc_state->hw.mode.private_flags)
> +
> +DRM_INFO("SA2: intel_atomic_check:
> +new_crtc_state->uapi.mode.private_flags= %d, old_crtc_state-
> >uapi.mode.private_flags= %d  \n", new_crtc_state->uapi.mode.private_flags,
> old_crtc_state->uapi.mode.private_flags ); if (new_crtc_state-
> >uapi.mode.private_flags !=
> +    old_crtc_state->uapi.mode.private_flags)
>  new_crtc_state->uapi.mode_changed = true;  }
> 
> Regards,
> SweeAun
> 
> -----Original Message-----
> From: Khor, Swee Aun
> Sent: Saturday, March 21, 2020 12:55 AM
> To: Ville Syrjälä <ville.syrjala@linux.intel.com>; Shankar, Uma
> <uma.shankar@intel.com>
> Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org
> Subject: RE: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> codec init
> 
> Hi Ville,
> You means this change right? Sure. Will try your suggestion as well.
> By the way, what is different between hw.mode and uapi.mode and how we know
> which to be used? It used to only base.mode before hw/uapi split patches.
> 
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -14671,8 +14671,8 @@ static int intel_atomic_check(struct drm_device *dev,
> >         /* Catch I915_MODE_FLAG_INHERITED */
> >         for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
> >                                             new_crtc_state, i) {
> > -               if (new_crtc_state->hw.mode.private_flags !=
> > -                   old_crtc_state->hw.mode.private_flags)
> > +               if (new_crtc_state->uapi.mode.private_flags !=
> > +                   old_crtc_state->uapi.mode.private_flags)
> >                         new_crtc_state->uapi.mode_changed = true;
> >         }
> >
> > ?
> 
> Regards,
> SweeAun
> 
> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: Friday, March 20, 2020 11:24 PM
> To: Shankar, Uma <uma.shankar@intel.com>
> Cc: Souza, Jose <jose.souza@intel.com>; intel-gfx@lists.freedesktop.org; Khor,
> Swee Aun <swee.aun.khor@intel.com>
> Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio
> codec init
> 
> On Fri, Mar 20, 2020 at 06:19:37AM +0000, Shankar, Uma wrote:
> >
> >
> > > -----Original Message-----
> > > From: Souza, Jose <jose.souza@intel.com>
> > > Sent: Friday, March 20, 2020 12:36 AM
> > > To: Shankar, Uma <uma.shankar@intel.com>;
> > > intel-gfx@lists.freedesktop.org
> > > Cc: Khor, Swee Aun <swee.aun.khor@intel.com>
> > > Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset
> > > at boot for audio codec init
> > >
> > > On Wed, 2020-03-18 at 17:00 +0530, Uma Shankar wrote:
> > > > If external monitors are connected during boot up, driver uses the
> > > > same mode programmed by BIOS and avoids a full modeset.
> > > > This results in display audio codec left uninitialized and display
> > > > audio fails to work till user triggers a modeset.
> > > >
> > > > This patch fixes the same by triggering a modeset at boot.
> > >
> > > We had the same issue for PSR, take a look to the fix:
> > > commit 33e059a2e4df454359f642f2235af39de9d3e914
> > > drm/i915/psr: Force PSR probe only after full initialization
> > >
> > > Maybe make this even more generic.
> >
> > Yeah this looks to dealing with almost a similar need. Thanks for
> > pointing this out, will try to come up with a generalized solution.
> 
> How about just fixing the uapi vs. hw fail I showed instead of adding even more
> hacks?
> 
> --
> 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] 19+ messages in thread

end of thread, other threads:[~2020-03-26  7:25 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-18 11:30 [Intel-gfx] [PATCH] drm/i915/display: Trigger Modeset at boot for audio codec init Uma Shankar
2020-03-18 12:07 ` Anshuman Gupta
2020-03-18 14:02   ` Shankar, Uma
2020-03-18 12:15 ` Maarten Lankhorst
2020-03-18 14:37   ` Shankar, Uma
2020-03-19 12:11     ` Maarten Lankhorst
2020-03-18 12:23 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
2020-03-19 19:05 ` [Intel-gfx] [PATCH] " Souza, Jose
2020-03-20  6:19   ` Shankar, Uma
2020-03-20 15:24     ` Ville Syrjälä
2020-03-20 16:54       ` Khor, Swee Aun
2020-03-23 14:29         ` Khor, Swee Aun
2020-03-24  5:56           ` Khor, Swee Aun
2020-03-26  7:25             ` Shankar, Uma
2020-03-24 18:38     ` Kai Vehmanen
2020-03-23 16:57 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Trigger Modeset at boot for audio codec init (rev2) Patchwork
2020-03-23 17:20 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-03-24  0:01 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2020-03-24  6:11 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/display: Trigger Modeset at boot for audio codec init (rev3) Patchwork

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.