Re: [PATCH] drm/i915/audio: do not set Maud/Naud values manually on KBL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 06, 2018 at 11:49:18AM +0000, Jani Nikula wrote:
> Apparently using the manual Maud/Naud mode does not work on KBL. The
> details on the failure mode are scarce, except that there's no audio,
> and there is obviously no idea on the root cause either. It is also
> unknown whether the failure can be reproduced on newer platforms in some
> scenarios.
> 
> The problem was introduced when switching from automatic mode to manual
> mode in commit 6014ac122ed0 ("drm/i915/audio: set proper N/M in
> modeset"). Instead of reverting that, disable the feature on KBL as a
> workaround.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104093
> Reported-by: Quanxian Wang <quanxian.wang@xxxxxxxxx>
> Fixes: 6014ac122ed0 ("drm/i915/audio: set proper N/M in modeset")
> Cc: <stable@xxxxxxxxxxxxxxx> # v4.10+
> Cc: Keqiao Zhang <keqiao.zhang@xxxxxxxxx>
> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> Cc: Mengdong Lin <mengdong.lin@xxxxxxxxx>
> Cc: Libin Yang <libin.yang@xxxxxxxxxxxxxxx>
> Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
> Cc: Quanxian Wang <quanxian.wang@xxxxxxxxx>
> Cc: Wang Zhijun <zhijunx.wang@xxxxxxxxx>
> Cc: Cui Yueping <yuepingx.cui@xxxxxxxxx>
> Cc: Alice Liu <alice.liu@xxxxxxxxx>
> Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
> 
> ---
> 
> UNTESTED. Please provide Tested-by's on the affected KBLs, but *also* on
> CFL, CNL, etc.
> ---
>  drivers/gpu/drm/i915/intel_audio.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
> index 522d54fecb53..b7634cff12b6 100644
> --- a/drivers/gpu/drm/i915/intel_audio.c
> +++ b/drivers/gpu/drm/i915/intel_audio.c
> @@ -294,12 +294,19 @@ hsw_dp_audio_config_update(struct intel_encoder *encoder,
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
>  	enum port port = encoder->port;
>  	enum pipe pipe = crtc->pipe;
> -	const struct dp_aud_n_m *nm;
> +	const struct dp_aud_n_m *nm = NULL;
>  	int rate;
>  	u32 tmp;
>  
>  	rate = acomp ? acomp->aud_sample_rate[port] : 0;
> -	nm = audio_config_dp_get_n_m(crtc_state, rate);
> +
> +	/*
> +	 * FIXME: For reasons still unknown, there seem to be issues with the
> +	 * manual Maud/Naud mode on KBL.
> +	 */
> +	if (!IS_KABYLAKE(dev_priv))

Hmm... not much visibility on the audio gap between KBL and CFL.
But on our side I believe we should also apply it for CFL.

I wonder if some bugs audio guys are hunting now on CNL and ICL could
also be related to it.

Isn't revert the original an option?

> +		nm = audio_config_dp_get_n_m(crtc_state, rate);
> +
>  	if (nm)
>  		DRM_DEBUG_KMS("using Maud %u, Naud %u\n", nm->m, nm->n);
>  	else
> -- 
> 2.11.0
> 



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]