diff mbox series

gpio: thunderx: remove unused .map() hook from irq_domain_ops

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

Commit Message

Masahiro Yamada Sept. 14, 2017, 2:37 a.m. UTC
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(-)

Comments

David Daney Sept. 14, 2017, 4:59 p.m. UTC | #1
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
Masahiro Yamada Sept. 15, 2017, 1:48 a.m. UTC | #2
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
Linus Walleij Sept. 21, 2017, 11:30 a.m. UTC | #3
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
David Daney Sept. 21, 2017, 9:54 p.m. UTC | #4
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
Linus Walleij Sept. 22, 2017, 1:32 p.m. UTC | #5
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
Masahiro Yamada Oct. 8, 2017, 1:39 p.m. UTC | #6
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 mbox series

Patch

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
 };