Quoting Loic Poulain (2018-06-12 09:58:31) > wcnss_start fails when called by remoteproc before iris probing. Please add () to functions so we know they're functions and not variables or something else. > Fix this by adding synchronization/completion on iris assignment. > > Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxxx> > --- > drivers/remoteproc/qcom_wcnss.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/remoteproc/qcom_wcnss.c b/drivers/remoteproc/qcom_wcnss.c > index b0e07e9..e5fbf91 100644 > --- a/drivers/remoteproc/qcom_wcnss.c > +++ b/drivers/remoteproc/qcom_wcnss.c > @@ -86,6 +86,7 @@ struct qcom_wcnss { > > struct mutex iris_lock; > struct qcom_iris *iris; > + struct completion iris_assigned; > > struct regulator_bulk_data *vregs; > size_t num_vregs; > @@ -146,6 +147,7 @@ void qcom_wcnss_assign_iris(struct qcom_wcnss *wcnss, > > wcnss->iris = iris; > wcnss->use_48mhz_xo = use_48mhz_xo; > + complete(&wcnss->iris_assigned); > > mutex_unlock(&wcnss->iris_lock); Do you need this mutex anymore then? It looks like assign and start are synchronized with the completion variable now. -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html