diff options
-rw-r--r-- | drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c index fe2c74a10245..21fd638171f9 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c | |||
@@ -716,6 +716,7 @@ static int sunxi_pinctrl_irq_of_xlate(struct irq_domain *d, | |||
716 | unsigned long *out_hwirq, | 716 | unsigned long *out_hwirq, |
717 | unsigned int *out_type) | 717 | unsigned int *out_type) |
718 | { | 718 | { |
719 | struct sunxi_pinctrl *pctl = d->host_data; | ||
719 | struct sunxi_desc_function *desc; | 720 | struct sunxi_desc_function *desc; |
720 | int pin, base; | 721 | int pin, base; |
721 | 722 | ||
@@ -723,10 +724,9 @@ static int sunxi_pinctrl_irq_of_xlate(struct irq_domain *d, | |||
723 | return -EINVAL; | 724 | return -EINVAL; |
724 | 725 | ||
725 | base = PINS_PER_BANK * intspec[0]; | 726 | base = PINS_PER_BANK * intspec[0]; |
726 | pin = base + intspec[1]; | 727 | pin = pctl->desc->pin_base + base + intspec[1]; |
727 | 728 | ||
728 | desc = sunxi_pinctrl_desc_find_function_by_pin(d->host_data, | 729 | desc = sunxi_pinctrl_desc_find_function_by_pin(pctl, pin, "irq"); |
729 | pin, "irq"); | ||
730 | if (!desc) | 730 | if (!desc) |
731 | return -EINVAL; | 731 | return -EINVAL; |
732 | 732 | ||