[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <SJ2PR11MB8424160CC5BD7A2973F8AA23FF91A@SJ2PR11MB8424.namprd11.prod.outlook.com>
Date: Wed, 14 May 2025 11:59:35 +0000
From: "Liao, Bard" <bard.liao@...el.com>
To: Vinod Koul <vkoul@...nel.org>, Bard Liao <yung-chuan.liao@...ux.intel.com>
CC: "linux-sound@...r.kernel.org" <linux-sound@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"pierre-louis.bossart@...ux.dev" <pierre-louis.bossart@...ux.dev>
Subject: RE: [PATCH] soundwire: update Intel BPT message length limitation
> -----Original Message-----
> From: Vinod Koul <vkoul@...nel.org>
> Sent: Wednesday, May 14, 2025 7:41 PM
> To: Bard Liao <yung-chuan.liao@...ux.intel.com>
> Cc: linux-sound@...r.kernel.org; linux-kernel@...r.kernel.org; pierre-
> louis.bossart@...ux.dev; Liao, Bard <bard.liao@...el.com>
> Subject: Re: [PATCH] soundwire: update Intel BPT message length limitation
>
> On 29-04-25, 20:23, Bard Liao wrote:
> > The limitation of "must be multiples of 32 bytes" does not fit the
> > requirement of current Intel platforms. Update it to meet the
> > requirement.
> >
> > Signed-off-by: Bard Liao <yung-chuan.liao@...ux.intel.com>
> > Reviewed-by: Ranjani Sridharan <ranjani.sridharan@...ux.intel.com>
> > Reviewed-by: Péter Ujfalusi <peter.ujfalusi@...ux.intel.com>
> > ---
> > Documentation/driver-api/soundwire/bra.rst | 2 +-
> > drivers/soundwire/intel_ace2x.c | 8 ++++----
> > 2 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/Documentation/driver-api/soundwire/bra.rst
> b/Documentation/driver-api/soundwire/bra.rst
> > index 8500253fa3e8..c08ab2591496 100644
> > --- a/Documentation/driver-api/soundwire/bra.rst
> > +++ b/Documentation/driver-api/soundwire/bra.rst
> > @@ -333,4 +333,4 @@ FIFO sizes to avoid xruns.
> >
> > Alignment requirements are currently not enforced at the core level
> > but at the platform-level, e.g. for Intel the data sizes must be
> > -multiples of 32 bytes.
> > +equal to or larger than 16 bytes.
> > diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c
> > index 5b31e1f69591..f899c966cfaf 100644
> > --- a/drivers/soundwire/intel_ace2x.c
> > +++ b/drivers/soundwire/intel_ace2x.c
> > @@ -245,7 +245,7 @@ static void intel_ace2x_bpt_close_stream(struct
> sdw_intel *sdw, struct sdw_slave
> > cdns->bus.bpt_stream = NULL;
> > }
> >
> > -#define INTEL_BPT_MSG_BYTE_ALIGNMENT 32
> > +#define INTEL_BPT_MSG_BYTE_MIN 16
> >
> > static int intel_ace2x_bpt_send_async(struct sdw_intel *sdw, struct
> sdw_slave *slave,
> > struct sdw_bpt_msg *msg)
> > @@ -253,9 +253,9 @@ static int intel_ace2x_bpt_send_async(struct
> sdw_intel *sdw, struct sdw_slave *s
> > struct sdw_cdns *cdns = &sdw->cdns;
> > int ret;
> >
> > - if (msg->len % INTEL_BPT_MSG_BYTE_ALIGNMENT) {
> > - dev_err(cdns->dev, "BPT message length %d is not a multiple of
> %d bytes\n",
> > - msg->len, INTEL_BPT_MSG_BYTE_ALIGNMENT);
> > + if (msg->len < INTEL_BPT_MSG_BYTE_MIN) {
>
> Reducing is fine, but we should still check it is aligned..?
Pad will be added if the message length is not aligned.
For example, length = 17 works on my test.
>
> > + dev_err(cdns->dev, "BPT message length %d is less than the
> minimum bytes %d\n",
> > + msg->len, INTEL_BPT_MSG_BYTE_MIN);
> > return -EINVAL;
> > }
> >
> > --
> > 2.43.0
>
> --
> ~Vinod
Powered by blists - more mailing lists