Skip to content

Commit b3a6809

Browse files
plbossartvinodkoul
authored andcommitted
soundwire: bus: don't clear SDCA_CASCADE bit
The SDCA_CASCADE bit is a SoundWire 1.2 addition. It is technically in the DP0_INT register, but SDCA interrupts shall not be handled as part of the DP0 interrupt processing. The existing code has clear comments that we don't want to touch the SDCA_CASCADE bit, but it's actually cleared due to faulty logic dating from SoundWire 1.0 In theory clearing this bit should have no effect: a cascade bit remains set while all ORed status are set, but better safe than sorry. Signed-off-by: Pierre-Louis Bossart <[email protected]> Reviewed-by: Chao Song <[email protected]> Signed-off-by: Bard Liao <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
1 parent e05af1a commit b3a6809

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/soundwire/bus.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1474,7 +1474,7 @@ static int sdw_handle_dp0_interrupt(struct sdw_slave *slave, u8 *slave_status)
14741474
}
14751475

14761476
do {
1477-
clear = status & ~SDW_DP0_INTERRUPTS;
1477+
clear = status & ~(SDW_DP0_INTERRUPTS | SDW_DP0_SDCA_CASCADE);
14781478

14791479
if (status & SDW_DP0_INT_TEST_FAIL) {
14801480
dev_err(&slave->dev, "Test fail for port 0\n");

0 commit comments

Comments
 (0)