Patch "soundwire: qcom: reinit broadcast completion" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    soundwire: qcom: reinit broadcast completion

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     soundwire-qcom-reinit-broadcast-completion.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c2bb979a57af7c3d4f602c79456dbd71ffd68d7b
Author: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Date:   Wed Oct 26 12:02:05 2022 +0100

    soundwire: qcom: reinit broadcast completion
    
    [ Upstream commit f936fa7a954b262cb3908bbc8f01ba19dfaf9fbf ]
    
    For some reason we never reinit the broadcast completion, there is a
    danger that broadcast commands could be treated as completed by driver
    from previous complete status.
    Fix this by reinitializing the completion before sending a broadcast command.
    
    Fixes: ddea6cf7b619 ("soundwire: qcom: update register read/write routine")
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221026110210.6575-2-srinivas.kandagatla@xxxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 1ce6f948e9a4..bbc8a9b1e87a 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -315,6 +315,9 @@ static int qcom_swrm_cmd_fifo_wr_cmd(struct qcom_swrm_ctrl *swrm, u8 cmd_data,
 	if (swrm_wait_for_wr_fifo_avail(swrm))
 		return SDW_CMD_FAIL_OTHER;
 
+	if (cmd_id == SWR_BROADCAST_CMD_ID)
+		reinit_completion(&swrm->broadcast);
+
 	/* Its assumed that write is okay as we do not get any status back */
 	swrm->reg_write(swrm, SWRM_CMD_FIFO_WR_CMD, val);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux