pinctrl: qcom: Add affinity callbacks to msmgpio IRQ chip
Subsystems (5)
PATCH 1/1 pinctrl: qcom: Add affinity callbacks to msmgpio IRQ chip
From: Venkata Narendra Kumar Gutta <[email protected]>
Wakeup capable GPIO IRQs routed via PDC are not being migrated when a CPU is hotplugged. Add affinity callbacks to msmgpio IRQ chip to update the affinity of wakeup capable IRQs.
--- drivers/pinctrl/qcom/pinctrl-msm.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
drivers/pinctrl/qcom/pinctrl-msm.c +25 -0
@@ -1033,6 +1033,29 @@ static void msm_gpio_irq_relres(struct irq_data *d)module_put (gc->owner); } +static int msm_gpio_irq_set_affinity (struct irq_data *d, +const struct cpumask *dest,bool force) +{ +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); +struct msm_pinctrl *pctrl =gpiochip_get_data (gc); + +if (d->parent_data &&test_bit (d->hwirq, pctrl->skip_wake_irqs)) +return irq_chip_set_affinity_parent (d, dest, force); + +return 0 ; +} + +static int msm_gpio_irq_set_vcpu_affinity (struct irq_data *d,void *vcpu_info) +{ +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); +struct msm_pinctrl *pctrl =gpiochip_get_data (gc); + +if (d->parent_data &&test_bit (d->hwirq, pctrl->skip_wake_irqs)) +return irq_chip_set_vcpu_affinity_parent (d, vcpu_info); + +return 0 ; +} +static void msm_gpio_irq_handler (struct irq_desc *desc) {struct gpio_chip *gc =irq_desc_get_handler_data (desc);
@@ -1131,6 +1154,8 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl) pctrl->irq_chip.irq_set_wake = msm_gpio_irq_set_wake; pctrl->irq_chip.irq_request_resources = msm_gpio_irq_reqres; pctrl->irq_chip.irq_release_resources = msm_gpio_irq_relres; + pctrl->irq_chip.irq_set_affinity = msm_gpio_irq_set_affinity; + pctrl->irq_chip.irq_set_vcpu_affinity = msm_gpio_irq_set_vcpu_affinity; np =of_parse_phandle (pctrl->dev->of_node,"wakeup-parent" ,0 );if (np) {
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Hi,
Quoted 7 lines · Maulik Shah
From: Venkata Narendra Kumar Gutta <[email protected]>
Wakeup capable GPIO IRQs routed via PDC are not being migrated when a CPU is hotplugged. Add affinity callbacks to msmgpio IRQ chip to update the affinity of wakeup capable IRQs.
Quoted 7 lines
Fixes e35a6ae0eb3a ("pinctrl/msm: Setup GPIO chip in hierarchy")Signed-off-by Venkata Narendra Kumar Gutta <[email protected]>[mkshah: updated commit text and minor code fixes]Signed-off-by Maulik Shah <[email protected]>--- drivers/pinctrl/qcom/pinctrl-msm.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
Quoting Maulik Shah (2020-04-30 23:30:17)
Quoted 11 lines
From: Venkata Narendra Kumar Gutta <[email protected]>
Wakeup capable GPIO IRQs routed via PDC are not being migrated when a CPU is hotplugged. Add affinity callbacks to msmgpio IRQ chip to update the affinity of wakeup capable IRQs.
Fixes e35a6ae0eb3a ("pinctrl/msm: Setup GPIO chip in hierarchy")Signed-off-by Venkata Narendra Kumar Gutta <[email protected]>[mkshah: updated commit text and minor code fixes]Signed-off-by Maulik Shah <[email protected]>---
Quoted 10 lines · Maulik Shah
From: Venkata Narendra Kumar Gutta <[email protected]>
Wakeup capable GPIO IRQs routed via PDC are not being migrated when a CPU is hotplugged. Add affinity callbacks to msmgpio IRQ chip to update the affinity of wakeup capable IRQs.
Fixes e35a6ae0eb3a ("pinctrl/msm: Setup GPIO chip in hierarchy")Signed-off-by Venkata Narendra Kumar Gutta <[email protected]>[mkshah: updated commit text and minor code fixes]Signed-off-by Maulik Shah <[email protected]>
Patch applied for fixes, will go upstream soon (unless Bjorn stops me).
Yours,
Linus Walleij
Quoted 10 lines · Maulik Shah
From: Venkata Narendra Kumar Gutta <[email protected]>
Wakeup capable GPIO IRQs routed via PDC are not being migrated when a CPU is hotplugged. Add affinity callbacks to msmgpio IRQ chip to update the affinity of wakeup capable IRQs.
Fixes e35a6ae0eb3a ("pinctrl/msm: Setup GPIO chip in hierarchy")Signed-off-by Venkata Narendra Kumar Gutta <[email protected]>[mkshah: updated commit text and minor code fixes]Signed-off-by Maulik Shah <[email protected]>
Regards,
Bjorn
Quoted 50 lines
--- drivers/pinctrl/qcom/pinctrl-msm.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)drivers/pinctrl/qcom/pinctrl-msm.c +25
-0@@ -1033,6 +1033,29 @@ static void msm_gpio_irq_relres(struct irq_data *d)module_put (gc->owner); } +static int msm_gpio_irq_set_affinity (struct irq_data *d, +const struct cpumask *dest,bool force) +{ +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); +struct msm_pinctrl *pctrl =gpiochip_get_data (gc); + +if (d->parent_data &&test_bit (d->hwirq, pctrl->skip_wake_irqs)) +return irq_chip_set_affinity_parent (d, dest, force); + +return 0 ; +} + +static int msm_gpio_irq_set_vcpu_affinity (struct irq_data *d,void *vcpu_info) +{ +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); +struct msm_pinctrl *pctrl =gpiochip_get_data (gc); + +if (d->parent_data &&test_bit (d->hwirq, pctrl->skip_wake_irqs)) +return irq_chip_set_vcpu_affinity_parent (d, vcpu_info); + +return 0 ; +} +static void msm_gpio_irq_handler (struct irq_desc *desc) {struct gpio_chip *gc =irq_desc_get_handler_data (desc);@@ -1131,6 +1154,8 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl) pctrl->irq_chip.irq_set_wake = msm_gpio_irq_set_wake; pctrl->irq_chip.irq_request_resources = msm_gpio_irq_reqres; pctrl->irq_chip.irq_release_resources = msm_gpio_irq_relres; + pctrl->irq_chip.irq_set_affinity = msm_gpio_irq_set_affinity; + pctrl->irq_chip.irq_set_vcpu_affinity = msm_gpio_irq_set_vcpu_affinity; np =of_parse_phandle (pctrl->dev->of_node,"wakeup-parent" ,0 );if (np) {Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation