Skip to content

Commit 5e50311

Browse files
lumaglinusw
authored andcommitted
pinctrl: qcom: spmi-gpio: fix warning about irq chip reusage
Fix the following warnings caused by reusage of the same irq_chip instance for all spmi-gpio gpio_irq_chip instances. Instead embed irq_chip into pmic_gpio_state struct. gpio gpiochip2: (c440000.qcom,spmi:pmic@2:gpio@c000): detected irqchip that is shared with multiple gpiochips: please fix the driver. gpio gpiochip3: (c440000.qcom,spmi:pmic@4:gpio@c000): detected irqchip that is shared with multiple gpiochips: please fix the driver. gpio gpiochip4: (c440000.qcom,spmi:pmic@a:gpio@c000): detected irqchip that is shared with multiple gpiochips: please fix the driver. Signed-off-by: Dmitry Baryshkov <[email protected]> Acked-by: Manivannan Sadhasivam <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Linus Walleij <[email protected]>
1 parent b3a9e3b commit 5e50311

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

drivers/pinctrl/qcom/pinctrl-spmi-gpio.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ struct pmic_gpio_state {
170170
struct regmap *map;
171171
struct pinctrl_dev *ctrl;
172172
struct gpio_chip chip;
173+
struct irq_chip irq;
173174
};
174175

175176
static const struct pinconf_generic_params pmic_gpio_bindings[] = {
@@ -917,16 +918,6 @@ static int pmic_gpio_populate(struct pmic_gpio_state *state,
917918
return 0;
918919
}
919920

920-
static struct irq_chip pmic_gpio_irq_chip = {
921-
.name = "spmi-gpio",
922-
.irq_ack = irq_chip_ack_parent,
923-
.irq_mask = irq_chip_mask_parent,
924-
.irq_unmask = irq_chip_unmask_parent,
925-
.irq_set_type = irq_chip_set_type_parent,
926-
.irq_set_wake = irq_chip_set_wake_parent,
927-
.flags = IRQCHIP_MASK_ON_SUSPEND,
928-
};
929-
930921
static int pmic_gpio_domain_translate(struct irq_domain *domain,
931922
struct irq_fwspec *fwspec,
932923
unsigned long *hwirq,
@@ -1053,8 +1044,16 @@ static int pmic_gpio_probe(struct platform_device *pdev)
10531044
if (!parent_domain)
10541045
return -ENXIO;
10551046

1047+
state->irq.name = "spmi-gpio",
1048+
state->irq.irq_ack = irq_chip_ack_parent,
1049+
state->irq.irq_mask = irq_chip_mask_parent,
1050+
state->irq.irq_unmask = irq_chip_unmask_parent,
1051+
state->irq.irq_set_type = irq_chip_set_type_parent,
1052+
state->irq.irq_set_wake = irq_chip_set_wake_parent,
1053+
state->irq.flags = IRQCHIP_MASK_ON_SUSPEND,
1054+
10561055
girq = &state->chip.irq;
1057-
girq->chip = &pmic_gpio_irq_chip;
1056+
girq->chip = &state->irq;
10581057
girq->default_type = IRQ_TYPE_NONE;
10591058
girq->handler = handle_level_irq;
10601059
girq->fwnode = of_node_to_fwnode(state->dev->of_node);

0 commit comments

Comments
 (0)