]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
soundwire: cadence_master: set data_per_frame as frame capability
authorBard Liao <yung-chuan.liao@linux.intel.com>
Tue, 14 Oct 2025 03:14:46 +0000 (11:14 +0800)
committerVinod Koul <vkoul@kernel.org>
Mon, 8 Dec 2025 07:07:26 +0000 (12:37 +0530)
data_per_frame will be used for preparing the TX buffer and we may add
some fake frames to ensure the data in the buffer will be flushed.
So that it should indicate the frame capability even if the required
data bytes are less than the frame capability.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20251014031450.3781789-4-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/cadence_master.c

index c59a98b408b3d0e067b8347936b778c50a1b0104..178341410909483647920cfb666eb8cffc4e0e24 100644 (file)
@@ -2114,9 +2114,6 @@ int sdw_cdns_bpt_find_buffer_sizes(int command, /* 0: write, 1: read */
        if (!actual_bpt_bytes)
                return -EINVAL;
 
-       if (data_bytes < actual_bpt_bytes)
-               actual_bpt_bytes = data_bytes;
-
        /*
         * the caller may want to set the number of bytes per frame,
         * allow when possible
@@ -2126,6 +2123,9 @@ int sdw_cdns_bpt_find_buffer_sizes(int command, /* 0: write, 1: read */
 
        *data_per_frame = actual_bpt_bytes;
 
+       if (data_bytes < actual_bpt_bytes)
+               actual_bpt_bytes = data_bytes;
+
        if (command == 0) {
                /*
                 * for writes we need to send all the data_bytes per frame,