aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiran Gunda <kgunda@codeaurora.org>2014-04-04 14:58:56 +0530
committerdesaishivam26 <kane.desai@gmail.com>2015-10-09 12:26:13 +0200
commit6fa8c9fc5ea6d4eaa17598c7bf05468a08fc3c1c (patch)
tree8f8806c22bc419740edb81bf2438f903f6183ec6
parentfb9f8909a1e893387c5d89ec5d056200b8f1099e (diff)
Slim_ngd: Don't create the device node per SSR
Observe the device crash due to the device node gets created per ADSP SSR when the logical address query succeeds at the first attempt. This patch makes sure that the device node creation happened only once by declaring another variable to track the logical address retry. CRs-Fixed: 640381 Change-Id: I3d947fcbc575af7cb431255772aa9cb64d2df6b6 Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
-rw-r--r--drivers/slimbus/slim-msm-ngd.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/slimbus/slim-msm-ngd.c b/drivers/slimbus/slim-msm-ngd.c
index 2f74969c71d..7dde6da6391 100644
--- a/drivers/slimbus/slim-msm-ngd.c
+++ b/drivers/slimbus/slim-msm-ngd.c
@@ -1051,6 +1051,7 @@ static int ngd_notify_slaves(void *data)
wait_for_completion(&dev->qmi.slave_notify);
/* Probe devices for first notification */
if (!i) {
+ i++;
dev->err = 0;
if (dev->dev->of_node)
of_register_slim_devices(&dev->ctrl);
@@ -1063,12 +1064,12 @@ static int ngd_notify_slaves(void *data)
} else {
slim_framer_booted(ctrl);
}
- i++;
mutex_lock(&ctrl->m_ctrl);
list_for_each_safe(pos, next, &ctrl->devs) {
+ int j;
sbdev = list_entry(pos, struct slim_device, dev_list);
mutex_unlock(&ctrl->m_ctrl);
- for (i = 0; i < LADDR_RETRY; i++) {
+ for (j = 0; j < LADDR_RETRY; j++) {
ret = slim_get_logical_addr(sbdev,
sbdev->e_addr,
6, &sbdev->laddr);