From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Timur Tabi <timur@codeaurora.org>
Cc: linux-arm-msm@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
Stephen Boyd <sboyd@codeaurora.org>,
linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org
Subject: Re: [PATCH 1/2] pinctrl: qcom: remove static globals to allow multiple TLMMs
Date: Mon, 2 Apr 2018 21:04:23 -0700 [thread overview]
Message-ID: <20180403040423.GA453@tuxbook-pro> (raw)
In-Reply-To: <1521848700-22214-1-git-send-email-timur@codeaurora.org>
On Fri 23 Mar 16:44 PDT 2018, Timur Tabi wrote:
> Two data structures are declared as static globals but are intended to
> be per-TLMM. Move them into the msm_pinctrl structure and initialize
> them at runtime.
>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> Signed-off-by: Timur Tabi <timur@codeaurora.org>
> ---
> drivers/pinctrl/qcom/pinctrl-msm.c | 44 ++++++++++++++++++--------------------
> 1 file changed, 21 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
> index ad80a17c9990..fa4e94fedb8c 100644
> --- a/drivers/pinctrl/qcom/pinctrl-msm.c
> +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
> @@ -58,7 +58,10 @@ struct msm_pinctrl {
> struct device *dev;
> struct pinctrl_dev *pctrl;
> struct gpio_chip chip;
> + struct pinctrl_desc desc;
> struct notifier_block restart_nb;
> +
> + struct irq_chip irq_chip;
> int irq;
>
> raw_spinlock_t lock;
> @@ -390,13 +393,6 @@ static int msm_config_group_set(struct pinctrl_dev *pctldev,
> .pin_config_group_set = msm_config_group_set,
> };
>
> -static struct pinctrl_desc msm_pinctrl_desc = {
> - .pctlops = &msm_pinctrl_ops,
> - .pmxops = &msm_pinmux_ops,
> - .confops = &msm_pinconf_ops,
> - .owner = THIS_MODULE,
> -};
> -
> static int msm_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
> {
> const struct msm_pingroup *g;
> @@ -776,15 +772,6 @@ static int msm_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
> return 0;
> }
>
> -static struct irq_chip msm_gpio_irq_chip = {
> - .name = "msmgpio",
> - .irq_mask = msm_gpio_irq_mask,
> - .irq_unmask = msm_gpio_irq_unmask,
> - .irq_ack = msm_gpio_irq_ack,
> - .irq_set_type = msm_gpio_irq_set_type,
> - .irq_set_wake = msm_gpio_irq_set_wake,
> -};
> -
> static void msm_gpio_irq_handler(struct irq_desc *desc)
> {
> struct gpio_chip *gc = irq_desc_get_handler_data(desc);
> @@ -877,6 +864,13 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> chip->of_node = pctrl->dev->of_node;
> chip->need_valid_mask = msm_gpio_needs_valid_mask(pctrl);
>
> + pctrl->irq_chip.name = "msmgpio";
> + pctrl->irq_chip.irq_mask = msm_gpio_irq_mask;
> + pctrl->irq_chip.irq_unmask = msm_gpio_irq_unmask;
> + pctrl->irq_chip.irq_ack = msm_gpio_irq_ack;
> + pctrl->irq_chip.irq_set_type = msm_gpio_irq_set_type;
> + pctrl->irq_chip.irq_set_wake = msm_gpio_irq_set_wake;
> +
> ret = gpiochip_add_data(&pctrl->chip, pctrl);
> if (ret) {
> dev_err(pctrl->dev, "Failed register gpiochip\n");
> @@ -898,7 +892,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> }
>
> ret = gpiochip_irqchip_add(chip,
> - &msm_gpio_irq_chip,
> + &pctrl->irq_chip,
> 0,
> handle_edge_irq,
> IRQ_TYPE_NONE);
> @@ -908,7 +902,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> return -ENOSYS;
> }
>
> - gpiochip_set_chained_irqchip(chip, &msm_gpio_irq_chip, pctrl->irq,
> + gpiochip_set_chained_irqchip(chip, &pctrl->irq_chip, pctrl->irq,
> msm_gpio_irq_handler);
>
> return 0;
> @@ -979,11 +973,15 @@ int msm_pinctrl_probe(struct platform_device *pdev,
> return pctrl->irq;
> }
>
> - msm_pinctrl_desc.name = dev_name(&pdev->dev);
> - msm_pinctrl_desc.pins = pctrl->soc->pins;
> - msm_pinctrl_desc.npins = pctrl->soc->npins;
> - pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &msm_pinctrl_desc,
> - pctrl);
> + pctrl->desc.owner = THIS_MODULE;
> + pctrl->desc.pctlops = &msm_pinctrl_ops;
> + pctrl->desc.pmxops = &msm_pinmux_ops;
> + pctrl->desc.confops = &msm_pinconf_ops;
> + pctrl->desc.name = dev_name(&pdev->dev);
> + pctrl->desc.pins = pctrl->soc->pins;
> + pctrl->desc.npins = pctrl->soc->npins;
> +
> + pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &pctrl->desc, pctrl);
> if (IS_ERR(pctrl->pctrl)) {
> dev_err(&pdev->dev, "Couldn't register pinctrl driver\n");
> return PTR_ERR(pctrl->pctrl);
> --
> Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
> Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
> Code Aurora Forum, a Linux Foundation Collaborative Project.
>
WARNING: multiple messages have this Message-ID (diff)
From: bjorn.andersson@linaro.org (Bjorn Andersson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] pinctrl: qcom: remove static globals to allow multiple TLMMs
Date: Mon, 2 Apr 2018 21:04:23 -0700 [thread overview]
Message-ID: <20180403040423.GA453@tuxbook-pro> (raw)
In-Reply-To: <1521848700-22214-1-git-send-email-timur@codeaurora.org>
On Fri 23 Mar 16:44 PDT 2018, Timur Tabi wrote:
> Two data structures are declared as static globals but are intended to
> be per-TLMM. Move them into the msm_pinctrl structure and initialize
> them at runtime.
>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> Signed-off-by: Timur Tabi <timur@codeaurora.org>
> ---
> drivers/pinctrl/qcom/pinctrl-msm.c | 44 ++++++++++++++++++--------------------
> 1 file changed, 21 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
> index ad80a17c9990..fa4e94fedb8c 100644
> --- a/drivers/pinctrl/qcom/pinctrl-msm.c
> +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
> @@ -58,7 +58,10 @@ struct msm_pinctrl {
> struct device *dev;
> struct pinctrl_dev *pctrl;
> struct gpio_chip chip;
> + struct pinctrl_desc desc;
> struct notifier_block restart_nb;
> +
> + struct irq_chip irq_chip;
> int irq;
>
> raw_spinlock_t lock;
> @@ -390,13 +393,6 @@ static int msm_config_group_set(struct pinctrl_dev *pctldev,
> .pin_config_group_set = msm_config_group_set,
> };
>
> -static struct pinctrl_desc msm_pinctrl_desc = {
> - .pctlops = &msm_pinctrl_ops,
> - .pmxops = &msm_pinmux_ops,
> - .confops = &msm_pinconf_ops,
> - .owner = THIS_MODULE,
> -};
> -
> static int msm_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
> {
> const struct msm_pingroup *g;
> @@ -776,15 +772,6 @@ static int msm_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
> return 0;
> }
>
> -static struct irq_chip msm_gpio_irq_chip = {
> - .name = "msmgpio",
> - .irq_mask = msm_gpio_irq_mask,
> - .irq_unmask = msm_gpio_irq_unmask,
> - .irq_ack = msm_gpio_irq_ack,
> - .irq_set_type = msm_gpio_irq_set_type,
> - .irq_set_wake = msm_gpio_irq_set_wake,
> -};
> -
> static void msm_gpio_irq_handler(struct irq_desc *desc)
> {
> struct gpio_chip *gc = irq_desc_get_handler_data(desc);
> @@ -877,6 +864,13 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> chip->of_node = pctrl->dev->of_node;
> chip->need_valid_mask = msm_gpio_needs_valid_mask(pctrl);
>
> + pctrl->irq_chip.name = "msmgpio";
> + pctrl->irq_chip.irq_mask = msm_gpio_irq_mask;
> + pctrl->irq_chip.irq_unmask = msm_gpio_irq_unmask;
> + pctrl->irq_chip.irq_ack = msm_gpio_irq_ack;
> + pctrl->irq_chip.irq_set_type = msm_gpio_irq_set_type;
> + pctrl->irq_chip.irq_set_wake = msm_gpio_irq_set_wake;
> +
> ret = gpiochip_add_data(&pctrl->chip, pctrl);
> if (ret) {
> dev_err(pctrl->dev, "Failed register gpiochip\n");
> @@ -898,7 +892,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> }
>
> ret = gpiochip_irqchip_add(chip,
> - &msm_gpio_irq_chip,
> + &pctrl->irq_chip,
> 0,
> handle_edge_irq,
> IRQ_TYPE_NONE);
> @@ -908,7 +902,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> return -ENOSYS;
> }
>
> - gpiochip_set_chained_irqchip(chip, &msm_gpio_irq_chip, pctrl->irq,
> + gpiochip_set_chained_irqchip(chip, &pctrl->irq_chip, pctrl->irq,
> msm_gpio_irq_handler);
>
> return 0;
> @@ -979,11 +973,15 @@ int msm_pinctrl_probe(struct platform_device *pdev,
> return pctrl->irq;
> }
>
> - msm_pinctrl_desc.name = dev_name(&pdev->dev);
> - msm_pinctrl_desc.pins = pctrl->soc->pins;
> - msm_pinctrl_desc.npins = pctrl->soc->npins;
> - pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &msm_pinctrl_desc,
> - pctrl);
> + pctrl->desc.owner = THIS_MODULE;
> + pctrl->desc.pctlops = &msm_pinctrl_ops;
> + pctrl->desc.pmxops = &msm_pinmux_ops;
> + pctrl->desc.confops = &msm_pinconf_ops;
> + pctrl->desc.name = dev_name(&pdev->dev);
> + pctrl->desc.pins = pctrl->soc->pins;
> + pctrl->desc.npins = pctrl->soc->npins;
> +
> + pctrl->pctrl = devm_pinctrl_register(&pdev->dev, &pctrl->desc, pctrl);
> if (IS_ERR(pctrl->pctrl)) {
> dev_err(&pdev->dev, "Couldn't register pinctrl driver\n");
> return PTR_ERR(pctrl->pctrl);
> --
> Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
> Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
> Code Aurora Forum, a Linux Foundation Collaborative Project.
>
next prev parent reply other threads:[~2018-04-03 4:04 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-23 23:44 [PATCH 1/2] pinctrl: qcom: remove static globals to allow multiple TLMMs Timur Tabi
2018-03-23 23:44 ` Timur Tabi
2018-03-23 23:45 ` [PATCH 2/2] pinctrl: qcom: qdf2xxx: add support for new ACPI HID QCOM8002 Timur Tabi
2018-03-23 23:45 ` Timur Tabi
2018-04-03 4:07 ` Bjorn Andersson
2018-04-03 4:07 ` Bjorn Andersson
2018-04-03 12:03 ` Timur Tabi
2018-04-03 12:03 ` Timur Tabi
2018-04-07 12:33 ` Stephen Boyd
2018-04-07 12:33 ` Stephen Boyd
2018-03-27 13:33 ` [PATCH 1/2] pinctrl: qcom: remove static globals to allow multiple TLMMs Linus Walleij
2018-03-27 13:33 ` Linus Walleij
2018-04-02 20:52 ` Timur Tabi
2018-04-02 20:52 ` Timur Tabi
2018-04-03 4:04 ` Bjorn Andersson [this message]
2018-04-03 4:04 ` Bjorn Andersson
2018-04-07 12:30 ` Stephen Boyd
2018-04-07 12:30 ` Stephen Boyd
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=20180403040423.GA453@tuxbook-pro \
--to=bjorn.andersson@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=sboyd@codeaurora.org \
--cc=timur@codeaurora.org \
/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.