[Intel-gfx] [PATCH] drm/i915/audio: set minimum CD clock to twice the BCLK
Jani Nikula
jani.nikula at intel.com
Thu Apr 19 09:14:48 UTC 2018
On Wed, 18 Apr 2018, Jani Nikula <jani.nikula at intel.com> wrote:
> From: Abhay Kumar <abhay.kumar at intel.com>
>
> In GLK when the device boots with only 1366x768 panel without audio, HDA
> codec doesn't come up. In this case, the CDCLK is less than twice the
> BCLK. Even though audio isn't being enabled, having a too low CDCLK
> leads to audio probe failing altogether.
>
> Require CDCLK to be at least twice the BLCK regardless of audio. This is
> a minimal fix to improve things. Unfortunately, this a) leads to too
> high CDCLK being used when audio is not used, and b) is still not enough
> to fix audio probe when no outputs are connected at probe time.
>
> The proper fix would be to increase CDCLK dynamically from the audio
> component hooks.
>
> v2:
> - Address comment (Jani)
> - New design approach
> v3: - Typo fix on top of v1
>
> v4 by Jani: rewrite commit message, add comment in code
>
> Cc: stable at vger.kernel.org
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan at gmail.com>
> Cc: Wenkai Du <wenkai.du at intel.com>
> Reviewed-by: Wenkai Du <wenkai.du at intel.com>
> Tested-by: Wenkai Du <wenkai.du at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102937
> Signed-off-by: Abhay Kumar <abhay.kumar at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
Pushed to dinq with Ville's Ack on another thread.
BR,
Jani.
> ---
> drivers/gpu/drm/i915/intel_cdclk.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c
> index fc8b2c6e3508..32d24c69da3c 100644
> --- a/drivers/gpu/drm/i915/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/intel_cdclk.c
> @@ -2140,10 +2140,22 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state)
> }
> }
>
> - /* According to BSpec, "The CD clock frequency must be at least twice
> + /*
> + * According to BSpec, "The CD clock frequency must be at least twice
> * the frequency of the Azalia BCLK." and BCLK is 96 MHz by default.
> + *
> + * FIXME: Check the actual, not default, BCLK being used.
> + *
> + * FIXME: This does not depend on ->has_audio because the higher CDCLK
> + * is required for audio probe, also when there are no audio capable
> + * displays connected at probe time. This leads to unnecessarily high
> + * CDCLK when audio is not required.
> + *
> + * FIXME: This limit is only applied when there are displays connected
> + * at probe time. If we probe without displays, we'll still end up using
> + * the platform minimum CDCLK, failing audio probe.
> */
> - if (crtc_state->has_audio && INTEL_GEN(dev_priv) >= 9)
> + if (INTEL_GEN(dev_priv) >= 9)
> min_cdclk = max(2 * 96000, min_cdclk);
>
> /*
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list