[Intel-gfx] [PATCH] drm/i915/display: program audio CDCLK-TS for keepalives

Kai Vehmanen kai.vehmanen at linux.intel.com
Mon Sep 13 16:44:40 UTC 2021


Hi,

On Fri, 10 Sep 2021, Jani Nikula wrote:

> Nitpick, switching to i915 variable name instead of dev_priv is
> preferred for new code throughout.

ack, changed.

> On Fri, 10 Sep 2021, Kai Vehmanen <kai.vehmanen at linux.intel.com> wrote:
> > +	if (DISPLAY_VER(dev_priv) >= 13) {
> > +		tmp = intel_de_read(dev_priv, AUD_TS_CDCLK_M);
> > +		tmp &= ~AUD_TS_CDCLK_M_EN;
> > +		intel_de_write(dev_priv, AUD_TS_CDCLK_M, tmp);
> 
> Nitpick, could use intel_de_rmw() to do this on a single line.

True, changed.

> > +static int get_aud_ts_cdclk_m_n(int refclk, int cdclk, struct aud_ts_cdclk_m_n *aud_ts)
> > +{
> > +	if (!aud_ts)
> > +		return -EINVAL;
> > +
> > +	if (refclk == 24000)
> > +		aud_ts->m = 12;
> > +	else
> > +		aud_ts->m = 15;
> > +
> > +	aud_ts->n = cdclk * aud_ts->m / 24000;
> > +
> > +	return 0;
> 
> Is the return code added for future? For now, it just complicates this
> for no apparent reason.

An early version had a table lookup and some refclk values were not 
supported. But, but, this version just calculates with a formula, so
there's no real reason to have the return code anymore. A good point, 
removed.

> > +			drm_dbg(&dev_priv->drm, "aud_ts_cdclk set to M=%u, N=%u\n",
> > +				aud_ts.m, aud_ts.n);
> 
> Usually drm_dbg_kms() for display code, including audio.

Gah, indeed, fixed.

> I'll need to look up the bspec too, can't do that right now... this was
> just the nitpicks. ;D

Keep 'em coming! :)

Br, Kai


More information about the Intel-gfx mailing list