]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soundwire: update Intel BPT message length limitation
authorBard Liao <yung-chuan.liao@linux.intel.com>
Tue, 29 Apr 2025 12:23:37 +0000 (20:23 +0800)
committerVinod Koul <vkoul@kernel.org>
Mon, 9 Jun 2025 16:12:18 +0000 (21:42 +0530)
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@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20250429122337.142551-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Documentation/driver-api/soundwire/bra.rst
drivers/soundwire/intel_ace2x.c

index 8500253fa3e8ca67367dde5a6196c816affacf43..c08ab2591496d3654207095745f8ddd4a84fdb58 100644 (file)
@@ -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.
index 7e893e4f48d6e52e4685862c916e4a89e9a53373..5d08364ad6d141e90382b09f561ba58d713577c6 100644 (file)
@@ -246,7 +246,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)
@@ -254,9 +254,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) {
+               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;
        }