[PATCH 1/2] GPIO: gpio-pxa: simplify pxa_gpio_to_irq() and pxa_irq_to_chip()

Igor Grinberg grinberg at compulab.co.il
Sun Aug 5 04:31:40 EDT 2012


Hi Daniel,

On 07/25/12 18:35, Daniel Mack wrote:
> Simplify the code in gpio-pxa.c and make them based on irq_base.
> When not probed from devicetree, initialize irq_base from
> PXA_GPIO_TO_IRQ() or MMP_GPIO_TO_IRQ(), respectively, so the non-DT case
> still works.
> 
> Only tested on PXA3xx.
> 
> Signed-off-by: Daniel Mack <zonque at gmail.com>
> ---
>  drivers/gpio/gpio-pxa.c |   70 +++++++++++------------------------------------
>  1 file changed, 16 insertions(+), 54 deletions(-)
> 
> diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c
> index 58a6a63..6d0cb9d 100644
> --- a/drivers/gpio/gpio-pxa.c
> +++ b/drivers/gpio/gpio-pxa.c

[...]

> @@ -564,10 +516,20 @@ static int __devinit pxa_gpio_probe(struct platform_device *pdev)
>  	int irq0 = 0, irq1 = 0, irq_mux, gpio_offset = 0;
>  
>  	ret = pxa_gpio_probe_dt(pdev);
> -	if (ret < 0)
> +	if (ret < 0) {
>  		pxa_last_gpio = pxa_gpio_nums();
> -	else
> +#ifdef CONFIG_ARCH_PXA
> +		if (gpio_is_pxa_type(gpio_type))
> +			irq_base = PXA_GPIO_TO_IRQ(0);
> +#endif
> +#ifdef CONFIG_ARCH_MMP
> +		if (gpio_is_mmp_type(gpio_type))
> +			irq_base = MMP_GPIO_TO_IRQ(0);
> +#endif

The ifdes above do not look essential.
Can't we drop them and just have else if ... else if?

> +	} else {
>  		use_of = 1;
> +	}
> +
>  	if (!pxa_last_gpio)
>  		return -EINVAL;
>  

-- 
Regards,
Igor.



More information about the linux-arm-kernel mailing list