diff mbox series

[2/4] soc: qcom: smd-rpm: add qcom,smd-rpm compatible

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

Commit Message

Dmitry Baryshkov July 29, 2024, 11:04 a.m. UTC
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(-)

Comments

Krzysztof Kozlowski July 29, 2024, 3:04 p.m. UTC | #1
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
Dmitry Baryshkov July 29, 2024, 5:49 p.m. UTC | #2
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
>
Krzysztof Kozlowski July 29, 2024, 6:36 p.m. UTC | #3
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
Dmitry Baryshkov July 29, 2024, 6:53 p.m. UTC | #4
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 mbox series

Patch

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)