[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240801173026.GC18732@pendragon.ideasonboard.com>
Date: Thu, 1 Aug 2024 20:30:26 +0300
From: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Ricard Wanderlof <ricardw@...s.com>
Cc: Andrzej Hajda <andrzej.hajda@...el.com>,
Neil Armstrong <neil.armstrong@...aro.org>,
Robert Foss <rfoss@...nel.org>,
Hans Verkuil <hverkuil-cisco@...all.nl>,
Jonas Karlman <jonas@...boo.se>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Daniel Vetter <daniel@...ll.ch>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
linux-media@...r.kernel.org, kernel@...s.com
Subject: Re: [PATCH] drm: bridge: adv7511: Accept audio sample widths of 32
bits via I2S
On Mon, Jul 29, 2024 at 10:15:55AM +0200, Ricard Wanderlof wrote:
>
> Hi,
>
> I submitted the patch below a while ago (two months) but as far as I can
> make out it has not been included. There was an initial concern from
> Dmitry Baryshkov which was subsequently addressed but no other objections.
>
> On Tue, 28 May 2024, Ricard Wanderlof wrote:
>
> >
> > Even though data is truncated to 24 bits, the I2S interface does
> > accept 32 bit data (the slot widths according to the data sheet
> > can be 16 or 32 bits) so let the hw_params callback reflect this,
> > even if the lowest 8 bits are not used when 32 bits are specified.
> >
> > This is normally how 24 bit audio data is handled (i.e. as 32 bit
> > data, with the LSB:s unused) and this is also reflected in other
> > bridge drivers which handle audio, for instance sii902x.c and
> > synopsis/dw-hdmi-i2s-audio.c .
> >
> > Signed-off-by: Ricard Wanderlof <ricard.wanderlof@...s.com>
> > ---
> > drivers/gpu/drm/bridge/adv7511/adv7511_audio.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c b/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
> > index 61f4a38e7d2b..4563f5d8136f 100644
> > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
> > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_audio.c
> > @@ -101,11 +101,14 @@ static int adv7511_hdmi_hw_params(struct device *dev, void *data,
> > case 20:
> > len = ADV7511_I2S_SAMPLE_LEN_20;
> > break;
> > - case 32:
> > - if (fmt->bit_fmt != SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE)
> > - return -EINVAL;
> > - fallthrough;
> > case 24:
> > + case 32:
> > + /*
> > + * 32 bits are handled like 24 bits, except that the lowest
> > + * 8 bits are discarded. In fact, the accepted I2S slot widths
> > + * are 16 and 32 bits, so the chip is fully compatible with
> > + * 32 bit data.
> > + */
> > len = ADV7511_I2S_SAMPLE_LEN_24;
> > break;
> > default:
>
> I recently discovered that the maintainer for the ADV7511 driver (in the
> I2C) framework is not included by the get_maintainers script, so perhaps
> this is the reason?
>
> Otherwise, please enlighten me on what I need to do to get this patch
> accepted!
I have no experience with HDMI audio, so I didn't comment on your patch.
Hans, is this within your area of expertise ?
--
Regards,
Laurent Pinchart
Powered by blists - more mailing lists