All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lina Iyer <ilina@codeaurora.org>
To: Maulik Shah <mkshah@codeaurora.org>
Cc: John Stultz <john.stultz@linaro.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Joerg Roedel <joro@8bytes.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jason Cooper <jason@lakedaemon.net>,
	Marc Zyngier <maz@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Saravana Kannan <saravanak@google.com>,
	Todd Kjos <tkjos@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-arm-msm@vger.kernel.org, iommu@lists.linux-foundation.org,
	linux-gpio@vger.kernel.org
Subject: Re: [RFC][PATCH 3/5] irqchip: Allow QCOM_PDC to be loadable as a perment module
Date: Tue, 16 Jun 2020 10:08:18 -0600	[thread overview]
Message-ID: <20200616160818.GD12942@codeaurora.org> (raw)
In-Reply-To: <55e5982a-1e73-7013-e02d-5d1d30815fba@codeaurora.org>

On Tue, Jun 16 2020 at 05:30 -0600, Maulik Shah wrote:
>Hi,
>
>On 6/16/2020 11:43 AM, John Stultz wrote:
>>Allows qcom-pdc driver to be loaded as a permenent module
>
>typo: permanent
>
>>Also, due to the fact that IRQCHIP_DECLARE becomes a no-op when
>>building as a module, we have to add the platform driver hooks
>>explicitly.
>>
>>Thanks to Saravana for his help on pointing out the
>>IRQCHIP_DECLARE issue and guidance on a solution.
>>
>>Cc: Andy Gross <agross@kernel.org>
>>Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
>>Cc: Joerg Roedel <joro@8bytes.org>
>>Cc: Thomas Gleixner <tglx@linutronix.de>
>>Cc: Jason Cooper <jason@lakedaemon.net>
>>Cc: Marc Zyngier <maz@kernel.org>
>>Cc: Linus Walleij <linus.walleij@linaro.org>
>>Cc: Lina Iyer <ilina@codeaurora.org>
>>Cc: Saravana Kannan <saravanak@google.com>
>>Cc: Todd Kjos <tkjos@google.com>
>>Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>Cc: linux-arm-msm@vger.kernel.org
>>Cc: iommu@lists.linux-foundation.org
>>Cc: linux-gpio@vger.kernel.org
>>Signed-off-by: John Stultz <john.stultz@linaro.org>
>>---
>>  drivers/irqchip/Kconfig    |  2 +-
>>  drivers/irqchip/qcom-pdc.c | 30 ++++++++++++++++++++++++++++++
>>  2 files changed, 31 insertions(+), 1 deletion(-)
>>
>>diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
>>index 29fead208cad..12765bed08f9 100644
>>--- a/drivers/irqchip/Kconfig
>>+++ b/drivers/irqchip/Kconfig
>>@@ -425,7 +425,7 @@ config GOLDFISH_PIC
>>           for Goldfish based virtual platforms.
>>  config QCOM_PDC
>>-	bool "QCOM PDC"
>>+	tristate "QCOM PDC"
>>  	depends on ARCH_QCOM
>>  	select IRQ_DOMAIN_HIERARCHY
>>  	help
>>diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c
>>index 6ae9e1f0819d..98d74160afcd 100644
>>--- a/drivers/irqchip/qcom-pdc.c
>>+++ b/drivers/irqchip/qcom-pdc.c
>>@@ -11,7 +11,9 @@
>>  #include <linux/irqdomain.h>
>>  #include <linux/io.h>
>>  #include <linux/kernel.h>
>>+#include <linux/module.h>
>>  #include <linux/of.h>
>>+#include <linux/of_irq.h>
>please move this include in order after of_device.h
>>  #include <linux/of_address.h>
>>  #include <linux/of_device.h>
>>  #include <linux/soc/qcom/irq.h>
>>@@ -430,4 +432,32 @@ static int qcom_pdc_init(struct device_node *node, struct device_node *parent)
>>  	return ret;
>>  }
>>+#ifdef MODULE
>>+static int qcom_pdc_probe(struct platform_device *pdev)
>>+{
>>+	struct device_node *np = pdev->dev.of_node;
>>+	struct device_node *parent = of_irq_find_parent(np);
>>+
>>+	return qcom_pdc_init(np, parent);
>>+}
>>+
>>+static const struct of_device_id qcom_pdc_match_table[] = {
>>+	{ .compatible = "qcom,pdc" },
>>+	{}
>>+};
>>+MODULE_DEVICE_TABLE(of, qcom_pdc_match_table);
>>+
>>+static struct platform_driver qcom_pdc_driver = {
>>+	.probe = qcom_pdc_probe,
>>+	.driver = {
>>+		.name = "qcom-pdc",
>>+		.of_match_table = qcom_pdc_match_table,
>
>can you please set .suppress_bind_attrs = true,
>
>This is to prevent bind/unbind using sysfs. Once irqchip driver module 
>is loaded, it shouldn't get unbind at runtime.
>
That is a good point. We probably should do that to RPMH RSC driver as well.

>Thanks,
>Maulik
>>+	},
>>+};
>>+module_platform_driver(qcom_pdc_driver);
>>+#else
>>  IRQCHIP_DECLARE(qcom_pdc, "qcom,pdc", qcom_pdc_init);
>>+#endif
>>+
>>+MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Power Domain Controller");
>>+MODULE_LICENSE("GPL v2");
>
>-- 
>QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
>

WARNING: multiple messages have this Message-ID (diff)
From: Lina Iyer <ilina@codeaurora.org>
To: Maulik Shah <mkshah@codeaurora.org>
Cc: Jason Cooper <jason@lakedaemon.net>,
	Saravana Kannan <saravanak@google.com>,
	Marc Zyngier <maz@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	linux-gpio@vger.kernel.org, iommu@lists.linux-foundation.org,
	Andy Gross <agross@kernel.org>,
	John Stultz <john.stultz@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Linus Walleij <linus.walleij@linaro.org>,
	linux-arm-msm@vger.kernel.org, Todd Kjos <tkjos@google.com>
Subject: Re: [RFC][PATCH 3/5] irqchip: Allow QCOM_PDC to be loadable as a perment module
Date: Tue, 16 Jun 2020 10:08:18 -0600	[thread overview]
Message-ID: <20200616160818.GD12942@codeaurora.org> (raw)
In-Reply-To: <55e5982a-1e73-7013-e02d-5d1d30815fba@codeaurora.org>

On Tue, Jun 16 2020 at 05:30 -0600, Maulik Shah wrote:
>Hi,
>
>On 6/16/2020 11:43 AM, John Stultz wrote:
>>Allows qcom-pdc driver to be loaded as a permenent module
>
>typo: permanent
>
>>Also, due to the fact that IRQCHIP_DECLARE becomes a no-op when
>>building as a module, we have to add the platform driver hooks
>>explicitly.
>>
>>Thanks to Saravana for his help on pointing out the
>>IRQCHIP_DECLARE issue and guidance on a solution.
>>
>>Cc: Andy Gross <agross@kernel.org>
>>Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
>>Cc: Joerg Roedel <joro@8bytes.org>
>>Cc: Thomas Gleixner <tglx@linutronix.de>
>>Cc: Jason Cooper <jason@lakedaemon.net>
>>Cc: Marc Zyngier <maz@kernel.org>
>>Cc: Linus Walleij <linus.walleij@linaro.org>
>>Cc: Lina Iyer <ilina@codeaurora.org>
>>Cc: Saravana Kannan <saravanak@google.com>
>>Cc: Todd Kjos <tkjos@google.com>
>>Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>Cc: linux-arm-msm@vger.kernel.org
>>Cc: iommu@lists.linux-foundation.org
>>Cc: linux-gpio@vger.kernel.org
>>Signed-off-by: John Stultz <john.stultz@linaro.org>
>>---
>>  drivers/irqchip/Kconfig    |  2 +-
>>  drivers/irqchip/qcom-pdc.c | 30 ++++++++++++++++++++++++++++++
>>  2 files changed, 31 insertions(+), 1 deletion(-)
>>
>>diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
>>index 29fead208cad..12765bed08f9 100644
>>--- a/drivers/irqchip/Kconfig
>>+++ b/drivers/irqchip/Kconfig
>>@@ -425,7 +425,7 @@ config GOLDFISH_PIC
>>           for Goldfish based virtual platforms.
>>  config QCOM_PDC
>>-	bool "QCOM PDC"
>>+	tristate "QCOM PDC"
>>  	depends on ARCH_QCOM
>>  	select IRQ_DOMAIN_HIERARCHY
>>  	help
>>diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c
>>index 6ae9e1f0819d..98d74160afcd 100644
>>--- a/drivers/irqchip/qcom-pdc.c
>>+++ b/drivers/irqchip/qcom-pdc.c
>>@@ -11,7 +11,9 @@
>>  #include <linux/irqdomain.h>
>>  #include <linux/io.h>
>>  #include <linux/kernel.h>
>>+#include <linux/module.h>
>>  #include <linux/of.h>
>>+#include <linux/of_irq.h>
>please move this include in order after of_device.h
>>  #include <linux/of_address.h>
>>  #include <linux/of_device.h>
>>  #include <linux/soc/qcom/irq.h>
>>@@ -430,4 +432,32 @@ static int qcom_pdc_init(struct device_node *node, struct device_node *parent)
>>  	return ret;
>>  }
>>+#ifdef MODULE
>>+static int qcom_pdc_probe(struct platform_device *pdev)
>>+{
>>+	struct device_node *np = pdev->dev.of_node;
>>+	struct device_node *parent = of_irq_find_parent(np);
>>+
>>+	return qcom_pdc_init(np, parent);
>>+}
>>+
>>+static const struct of_device_id qcom_pdc_match_table[] = {
>>+	{ .compatible = "qcom,pdc" },
>>+	{}
>>+};
>>+MODULE_DEVICE_TABLE(of, qcom_pdc_match_table);
>>+
>>+static struct platform_driver qcom_pdc_driver = {
>>+	.probe = qcom_pdc_probe,
>>+	.driver = {
>>+		.name = "qcom-pdc",
>>+		.of_match_table = qcom_pdc_match_table,
>
>can you please set .suppress_bind_attrs = true,
>
>This is to prevent bind/unbind using sysfs. Once irqchip driver module 
>is loaded, it shouldn't get unbind at runtime.
>
That is a good point. We probably should do that to RPMH RSC driver as well.

>Thanks,
>Maulik
>>+	},
>>+};
>>+module_platform_driver(qcom_pdc_driver);
>>+#else
>>  IRQCHIP_DECLARE(qcom_pdc, "qcom,pdc", qcom_pdc_init);
>>+#endif
>>+
>>+MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Power Domain Controller");
>>+MODULE_LICENSE("GPL v2");
>
>-- 
>QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
>
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  reply	other threads:[~2020-06-16 16:13 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-16  6:13 [RFC][PATCH 0/5] Allow for qcom-pdc, pinctrl-msm and qcom-scm drivers to be loadable as modules John Stultz
2020-06-16  6:13 ` John Stultz
2020-06-16  6:13 ` [RFC][PATCH 1/5] irq: irqdomain: Export irq_domain_update_bus_token John Stultz
2020-06-16  6:13   ` John Stultz
2020-06-16  6:13 ` [RFC][PATCH 2/5] irq: irqchip: Export irq_chip_retrigger_hierarchy and irq_chip_set_vcpu_affinity_parent John Stultz
2020-06-16  6:13   ` John Stultz
2020-06-16  6:13 ` [RFC][PATCH 3/5] irqchip: Allow QCOM_PDC to be loadable as a perment module John Stultz
2020-06-16  6:13   ` John Stultz
2020-06-16 11:29   ` Maulik Shah
2020-06-16 11:29     ` Maulik Shah
2020-06-16 16:08     ` Lina Iyer [this message]
2020-06-16 16:08       ` Lina Iyer
2020-06-16 21:21     ` John Stultz
2020-06-16 21:21       ` John Stultz
2020-06-16  6:13 ` [RFC][PATCH 4/5] pinctrl: qcom: Allow pinctrl-msm code to be loadable as a module John Stultz
2020-06-16  6:13   ` John Stultz
2020-06-20 21:21   ` Linus Walleij
2020-06-20 21:21     ` Linus Walleij
2020-06-21  6:00   ` Bjorn Andersson
2020-06-21  6:00     ` Bjorn Andersson
2020-06-24 23:22     ` John Stultz
2020-06-24 23:22       ` John Stultz
2020-06-16  6:13 ` [RFC][PATCH 5/5] firmware: QCOM_SCM: Allow qcom_scm driver to be loadable as a permenent module John Stultz
2020-06-16  6:13   ` John Stultz
2020-06-16  7:55   ` Marc Zyngier
2020-06-16  7:55     ` Marc Zyngier
2020-06-16 20:52     ` John Stultz
2020-06-16 20:52       ` John Stultz
2020-07-03 12:23       ` Will Deacon
2020-07-03 12:23         ` Will Deacon
2020-07-03 12:49         ` Vinod Koul
2020-07-03 12:49           ` Vinod Koul

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200616160818.GD12942@codeaurora.org \
    --to=ilina@codeaurora.org \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jason@lakedaemon.net \
    --cc=john.stultz@linaro.org \
    --cc=joro@8bytes.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=mkshah@codeaurora.org \
    --cc=saravanak@google.com \
    --cc=tglx@linutronix.de \
    --cc=tkjos@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.