From e92e3b21942bd3e1acec640380c0a5ad5d9d21de Mon Sep 17 00:00:00 2001 From: Sagar Dharia Date: Fri, 2 Sep 2016 17:58:16 -0600 Subject: slim: msm: Avoid registration with notifier if service is not located Service locator framework may call callback with LOCATOR_UP even if service is not located. Avoid registering with service-notifier in that case. Change-Id: Ib73570d1703803dbe0d769d9d43f9d7d2b257770 Signed-off-by: Sagar Dharia --- drivers/slimbus/slim-msm-ngd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'drivers/slimbus') diff --git a/drivers/slimbus/slim-msm-ngd.c b/drivers/slimbus/slim-msm-ngd.c index ea4dd2ce4e1d..463dca0e8e9a 100644 --- a/drivers/slimbus/slim-msm-ngd.c +++ b/drivers/slimbus/slim-msm-ngd.c @@ -225,6 +225,16 @@ static int dsp_domr_notify_cb(struct notifier_block *n, unsigned long code, break; case LOCATOR_UP: reg = _cmd; + if (!reg || reg->total_domains != 1) { + SLIM_WARN(dev, "error locating audio-PD\n"); + if (reg) + SLIM_WARN(dev, "audio-PDs matched:%d\n", + reg->total_domains); + + /* Fall back to SSR */ + ngd_reg_ssr(dev); + return NOTIFY_DONE; + } dev->dsp.domr = service_notif_register_notifier( reg->domain_list->name, reg->domain_list->instance_id, -- cgit v1.2.3