diff options
| author | Kiran Gunda <kgunda@codeaurora.org> | 2014-04-04 14:58:56 +0530 |
|---|---|---|
| committer | desaishivam26 <kane.desai@gmail.com> | 2015-10-09 12:26:13 +0200 |
| commit | 6fa8c9fc5ea6d4eaa17598c7bf05468a08fc3c1c (patch) | |
| tree | 8f8806c22bc419740edb81bf2438f903f6183ec6 | |
| parent | fb9f8909a1e893387c5d89ec5d056200b8f1099e (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.c | 5 |
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); |
