soc: soundwire: Update check link status for master init
After master init sets COMP_CFG, wait for soundwire link
status to be connected for SWR version 1.6. Update wait
for soundwire link disconnect for all masters.
Change-Id: I0c0b34f225f88f1b3838b0aa653b57b2c7c0cc40
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c
index c90e6b4..6332e32 100644
--- a/soc/swr-mstr-ctrl.c
+++ b/soc/swr-mstr-ctrl.c
@@ -2131,6 +2131,12 @@
swr_master_bulk_write(swrm, reg, value, len);
+ if (!swrm_check_link_status(swrm, 0x1)) {
+ dev_err(swrm->dev,
+ "%s: swr link failed to connect\n",
+ __func__);
+ return -EINVAL;
+ }
/*
* For SWR master version 1.5.1, continue
* execute on command ignore.
@@ -2742,6 +2748,8 @@
mutex_lock(&swrm->reslock);
usleep_range(100, 105);
}
+ if (!swrm_check_link_status(swrm, 0x0))
+ goto exit;
ret = swrm_clk_request(swrm, false);
if (ret) {
dev_err(dev, "%s: swrmn clk failed\n", __func__);
@@ -2757,8 +2765,6 @@
SWR_WAKE_IRQ_REGISTER, (void *)swrm);
swrm->ipc_wakeup_triggered = false;
}
- if (!swrm_check_link_status(swrm, 0x0))
- goto exit;
}
}