Message ID | 20240729-fix-smd-rpm-v1-2-99a96133cc65@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | soc: qcom: fix rpm_requests module probing | expand |
On 29/07/2024 13:04, Dmitry Baryshkov wrote: > The device node has the compatible string, so the glink channel name > isn't used for modprobing. Add the qcom,smd-rpm compatible to let the > module be automatically loaded when required. So autoloading is not working? I don't understand whether you are fixing real issue or just making something complete based on your feelings. > > Fixes: bcabe1e09135 ("soc: qcom: smd-rpm: Match rpmsg channel instead of compatible") > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/soc/qcom/smd-rpm.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) Best regards, Krzysztof
On Mon, 29 Jul 2024 at 18:04, Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On 29/07/2024 13:04, Dmitry Baryshkov wrote: > > The device node has the compatible string, so the glink channel name > > isn't used for modprobing. Add the qcom,smd-rpm compatible to let the > > module be automatically loaded when required. > > So autoloading is not working? I don't understand whether you are fixing > real issue or just making something complete based on your feelings. Yes, autoloading of smd-rpm is not working since bcabe1e09135, kernel looks for qcom,rpm-FOO rather than the rpmsg:rpm_requests. The obvious fix is to revert the commit, but I don't think that listing all the chipsets there is a correct thing. > > > > Fixes: bcabe1e09135 ("soc: qcom: smd-rpm: Match rpmsg channel instead of compatible") > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > drivers/soc/qcom/smd-rpm.c | 11 ++++++++++- > > 1 file changed, 10 insertions(+), 1 deletion(-) > > Best regards, > Krzysztof >
On 29/07/2024 19:49, Dmitry Baryshkov wrote: > On Mon, 29 Jul 2024 at 18:04, Krzysztof Kozlowski <krzk@kernel.org> wrote: >> >> On 29/07/2024 13:04, Dmitry Baryshkov wrote: >>> The device node has the compatible string, so the glink channel name >>> isn't used for modprobing. Add the qcom,smd-rpm compatible to let the >>> module be automatically loaded when required. >> >> So autoloading is not working? I don't understand whether you are fixing >> real issue or just making something complete based on your feelings. > > Yes, autoloading of smd-rpm is not working since bcabe1e09135, kernel > looks for qcom,rpm-FOO rather than the rpmsg:rpm_requests. > The obvious fix is to revert the commit, but I don't think that > listing all the chipsets there is a correct thing. > OK, to me it wasn't so sure whether there is a real issue. Anyway, the reason behind adding common compatible is not to fix autoloading but be explicit that all of devices follow some sort of FW<->OS protocol. Best regards, Krzysztof
On Mon, 29 Jul 2024 at 21:36, Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On 29/07/2024 19:49, Dmitry Baryshkov wrote: > > On Mon, 29 Jul 2024 at 18:04, Krzysztof Kozlowski <krzk@kernel.org> wrote: > >> > >> On 29/07/2024 13:04, Dmitry Baryshkov wrote: > >>> The device node has the compatible string, so the glink channel name > >>> isn't used for modprobing. Add the qcom,smd-rpm compatible to let the > >>> module be automatically loaded when required. > >> > >> So autoloading is not working? I don't understand whether you are fixing > >> real issue or just making something complete based on your feelings. > > > > Yes, autoloading of smd-rpm is not working since bcabe1e09135, kernel > > looks for qcom,rpm-FOO rather than the rpmsg:rpm_requests. > > The obvious fix is to revert the commit, but I don't think that > > listing all the chipsets there is a correct thing. > > > > OK, to me it wasn't so sure whether there is a real issue. Anyway, the > reason behind adding common compatible is not to fix autoloading but be > explicit that all of devices follow some sort of FW<->OS protocol. Well, it is both. But I see your point, let's fix the offending commit first by listing all RPM blocks and then fix the issue as a separate set of patches.
diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c index b7056aed4c7d..ad12cacf80ce 100644 --- a/drivers/soc/qcom/smd-rpm.c +++ b/drivers/soc/qcom/smd-rpm.c @@ -224,12 +224,21 @@ static const struct rpmsg_device_id qcom_smd_rpm_id_table[] = { }; MODULE_DEVICE_TABLE(rpmsg, qcom_smd_rpm_id_table); +static const struct of_device_id smd_rpm_of_match[] = { + { .compatible = "qcom,smd-rpm" }, + { }, +}; +MODULE_DEVICE_TABLE(of, smd_rpm_of_match); + static struct rpmsg_driver qcom_smd_rpm_driver = { .probe = qcom_smd_rpm_probe, .remove = qcom_smd_rpm_remove, .callback = qcom_smd_rpm_callback, .id_table = qcom_smd_rpm_id_table, - .drv.name = "qcom_smd_rpm", + .drv = { + .name = "qcom_smd_rpm", + .of_match_table = smd_rpm_of_match, + }, }; static int __init qcom_smd_rpm_init(void)
The device node has the compatible string, so the glink channel name isn't used for modprobing. Add the qcom,smd-rpm compatible to let the module be automatically loaded when required. Fixes: bcabe1e09135 ("soc: qcom: smd-rpm: Match rpmsg channel instead of compatible") Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/soc/qcom/smd-rpm.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)