On 05/04/2023 17:01, Pierre-Louis Bossart wrote: > > > On 4/5/23 09:29, Krzysztof Kozlowski wrote: >> Some Soundwire buses (like &swr0 on Qualcomm HDK8450) have two devices, >> which can be brought from powerdown state one after another. We need to >> keep enumerating them on each slave attached interrupt, otherwise only >> first will appear. >> >> Cc: <stable@xxxxxxxxxxxxxxx> >> Fixes: a6e6581942ca ("soundwire: qcom: add auto enumeration support") >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> >> >> --- >> >> Cc: Patrick Lai <quic_plai@xxxxxxxxxxx> >> --- >> drivers/soundwire/qcom.c | 11 +++-------- >> 1 file changed, 3 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c >> index c296e0bf897b..1e5077d91f59 100644 >> --- a/drivers/soundwire/qcom.c >> +++ b/drivers/soundwire/qcom.c >> @@ -587,14 +587,9 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id) >> case SWRM_INTERRUPT_STATUS_CHANGE_ENUM_SLAVE_STATUS: >> dev_dbg_ratelimited(swrm->dev, "SWR new slave attached\n"); >> swrm->reg_read(swrm, SWRM_MCP_SLV_STATUS, &slave_status); >> - if (swrm->slave_status == slave_status) { >> - dev_dbg(swrm->dev, "Slave status not changed %x\n", >> - slave_status); > > it's not clear to me how removing this test helps with the two-device > configuration? > > Or is this a case where the status for both devices changes at the same > time but the interrupt status remains set, so the next iteration of the > loop is ignored? I think the patch is not correct. I misinterpreted the slave status field and after double checking I see two speakers bound. Please ignore for now. Best regards, Krzysztof