Message ID | 1505356645-19765-1-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | New |
Headers | show |
Series | gpio: thunderx: remove unused .map() hook from irq_domain_ops | expand |
On 09/13/2017 07:37 PM, Masahiro Yamada wrote: > This driver implements .alloc() hook, so .map() is not used. > Have you tested this? I will have to test this on a real system next week before I can really comment on it. David. > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > drivers/gpio/gpio-thunderx.c | 13 ------------- > 1 file changed, 13 deletions(-) > > diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c > index 57efb25..b5adb79 100644 > --- a/drivers/gpio/gpio-thunderx.c > +++ b/drivers/gpio/gpio-thunderx.c > @@ -417,18 +417,6 @@ static struct irq_chip thunderx_gpio_irq_chip = { > .flags = IRQCHIP_SET_TYPE_MASKED > }; > > -static int thunderx_gpio_irq_map(struct irq_domain *d, unsigned int irq, > - irq_hw_number_t hwirq) > -{ > - struct thunderx_gpio *txgpio = d->host_data; > - > - if (hwirq >= txgpio->chip.ngpio) > - return -EINVAL; > - if (!thunderx_gpio_is_gpio_nowarn(txgpio, hwirq)) > - return -EPERM; > - return 0; > -} > - > static int thunderx_gpio_irq_translate(struct irq_domain *d, > struct irq_fwspec *fwspec, > irq_hw_number_t *hwirq, > @@ -455,7 +443,6 @@ static int thunderx_gpio_irq_alloc(struct irq_domain *d, unsigned int virq, > } > > static const struct irq_domain_ops thunderx_gpio_irqd_ops = { > - .map = thunderx_gpio_irq_map, > .alloc = thunderx_gpio_irq_alloc, > .translate = thunderx_gpio_irq_translate > }; > -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi David, 2017-09-15 1:59 GMT+09:00 David Daney <ddaney@caviumnetworks.com>: > On 09/13/2017 07:37 PM, Masahiro Yamada wrote: >> >> This driver implements .alloc() hook, so .map() is not used. >> > > Have you tested this? No. I do not have access to this hardware. It is just, in my understanding, .alloc() and .map() are exclusive. > I will have to test this on a real system next week before I can really > comment on it. > > David. > > > > >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >> --- >> >> drivers/gpio/gpio-thunderx.c | 13 ------------- >> 1 file changed, 13 deletions(-) >> >> diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c >> index 57efb25..b5adb79 100644 >> --- a/drivers/gpio/gpio-thunderx.c >> +++ b/drivers/gpio/gpio-thunderx.c >> @@ -417,18 +417,6 @@ static struct irq_chip thunderx_gpio_irq_chip = { >> .flags = IRQCHIP_SET_TYPE_MASKED >> }; >> -static int thunderx_gpio_irq_map(struct irq_domain *d, unsigned int >> irq, >> - irq_hw_number_t hwirq) >> -{ >> - struct thunderx_gpio *txgpio = d->host_data; >> - >> - if (hwirq >= txgpio->chip.ngpio) >> - return -EINVAL; >> - if (!thunderx_gpio_is_gpio_nowarn(txgpio, hwirq)) >> - return -EPERM; >> - return 0; >> -} >> - >> static int thunderx_gpio_irq_translate(struct irq_domain *d, >> struct irq_fwspec *fwspec, >> irq_hw_number_t *hwirq, >> @@ -455,7 +443,6 @@ static int thunderx_gpio_irq_alloc(struct irq_domain >> *d, unsigned int virq, >> } >> static const struct irq_domain_ops thunderx_gpio_irqd_ops = { >> - .map = thunderx_gpio_irq_map, >> .alloc = thunderx_gpio_irq_alloc, >> .translate = thunderx_gpio_irq_translate >> }; >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-gpio" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Sep 14, 2017 at 4:37 AM, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > This driver implements .alloc() hook, so .map() is not used. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Waiting for David to test this patch before applying. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 09/13/2017 07:37 PM, Masahiro Yamada wrote: > This driver implements .alloc() hook, so .map() is not used. Although this comment is true for this driver, it is unclear to me if the statement is true in the general case. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Tested-by: David Daney <david.daney@cavium.com> > --- > > drivers/gpio/gpio-thunderx.c | 13 ------------- > 1 file changed, 13 deletions(-) > > diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c > index 57efb25..b5adb79 100644 > --- a/drivers/gpio/gpio-thunderx.c > +++ b/drivers/gpio/gpio-thunderx.c > @@ -417,18 +417,6 @@ static struct irq_chip thunderx_gpio_irq_chip = { > .flags = IRQCHIP_SET_TYPE_MASKED > }; > > -static int thunderx_gpio_irq_map(struct irq_domain *d, unsigned int irq, > - irq_hw_number_t hwirq) > -{ > - struct thunderx_gpio *txgpio = d->host_data; > - > - if (hwirq >= txgpio->chip.ngpio) > - return -EINVAL; > - if (!thunderx_gpio_is_gpio_nowarn(txgpio, hwirq)) > - return -EPERM; > - return 0; > -} > - > static int thunderx_gpio_irq_translate(struct irq_domain *d, > struct irq_fwspec *fwspec, > irq_hw_number_t *hwirq, > @@ -455,7 +443,6 @@ static int thunderx_gpio_irq_alloc(struct irq_domain *d, unsigned int virq, > } > > static const struct irq_domain_ops thunderx_gpio_irqd_ops = { > - .map = thunderx_gpio_irq_map, > .alloc = thunderx_gpio_irq_alloc, > .translate = thunderx_gpio_irq_translate > }; > -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Sep 14, 2017 at 4:37 AM, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > This driver implements .alloc() hook, so .map() is not used. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Patch applied with David's Tested-by. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2017-09-22 6:54 GMT+09:00 David Daney <ddaney@caviumnetworks.com>: > On 09/13/2017 07:37 PM, Masahiro Yamada wrote: >> >> This driver implements .alloc() hook, so .map() is not used. > > > Although this comment is true for this driver, it is unclear to me if the > statement is true in the general case. If a driver implements .alloc() hook, irq_domain_check_hierarchy() sets IRQ_DOMAIN_FLAG_HIERARCHY flag. If you see kernel/irq/irqdomain.c, alloc/map is selected by irq_domain_is_hierarchy().
diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c index 57efb25..b5adb79 100644 --- a/drivers/gpio/gpio-thunderx.c +++ b/drivers/gpio/gpio-thunderx.c @@ -417,18 +417,6 @@ static struct irq_chip thunderx_gpio_irq_chip = { .flags = IRQCHIP_SET_TYPE_MASKED }; -static int thunderx_gpio_irq_map(struct irq_domain *d, unsigned int irq, - irq_hw_number_t hwirq) -{ - struct thunderx_gpio *txgpio = d->host_data; - - if (hwirq >= txgpio->chip.ngpio) - return -EINVAL; - if (!thunderx_gpio_is_gpio_nowarn(txgpio, hwirq)) - return -EPERM; - return 0; -} - static int thunderx_gpio_irq_translate(struct irq_domain *d, struct irq_fwspec *fwspec, irq_hw_number_t *hwirq, @@ -455,7 +443,6 @@ static int thunderx_gpio_irq_alloc(struct irq_domain *d, unsigned int virq, } static const struct irq_domain_ops thunderx_gpio_irqd_ops = { - .map = thunderx_gpio_irq_map, .alloc = thunderx_gpio_irq_alloc, .translate = thunderx_gpio_irq_translate };
This driver implements .alloc() hook, so .map() is not used. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- drivers/gpio/gpio-thunderx.c | 13 ------------- 1 file changed, 13 deletions(-)