|
@@ -478,7 +478,7 @@ static int rsnd_status_update(u32 *status,
|
|
(func_call && (mod)->ops->fn) ? #fn : ""); \
|
|
(func_call && (mod)->ops->fn) ? #fn : ""); \
|
|
if (func_call && (mod)->ops->fn) \
|
|
if (func_call && (mod)->ops->fn) \
|
|
tmp = (mod)->ops->fn(mod, io, param); \
|
|
tmp = (mod)->ops->fn(mod, io, param); \
|
|
- if (tmp) \
|
|
|
|
|
|
+ if (tmp && (tmp != -EPROBE_DEFER)) \
|
|
dev_err(dev, "%s[%d] : %s error %d\n", \
|
|
dev_err(dev, "%s[%d] : %s error %d\n", \
|
|
rsnd_mod_name(mod), rsnd_mod_id(mod), \
|
|
rsnd_mod_name(mod), rsnd_mod_id(mod), \
|
|
#fn, tmp); \
|
|
#fn, tmp); \
|
|
@@ -1561,6 +1561,14 @@ exit_snd_probe:
|
|
rsnd_dai_call(remove, &rdai->capture, priv);
|
|
rsnd_dai_call(remove, &rdai->capture, priv);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * adg is very special mod which can't use rsnd_dai_call(remove),
|
|
|
|
+ * and it registers ADG clock on probe.
|
|
|
|
+ * It should be unregister if probe failed.
|
|
|
|
+ * Mainly it is assuming -EPROBE_DEFER case
|
|
|
|
+ */
|
|
|
|
+ rsnd_adg_remove(priv);
|
|
|
|
+
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|