Re: [PATCH] staging: mt7621-gpio: retrieve correct pointers in interrupt related functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, May 20 2018, Sergio Paracuellos wrote:

> The data passed between irq related functions and the ones which have
> been retrieved where different. Also first data haven't properly
> set on irq_domain_add_linear call where it was passing NULL instead.
>
> Signed-off-by: Sergio Paracuellos <sergio.paracuellos@xxxxxxxxx>

Reviewed-by: NeilBrown <neil@xxxxxxxxxx>
Tested-by: NeilBrown <neil@xxxxxxxxxx>

:-)

Thanks,
NeilBrown


> ---
>  drivers/staging/mt7621-gpio/gpio-mt7621.c | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/staging/mt7621-gpio/gpio-mt7621.c b/drivers/staging/mt7621-gpio/gpio-mt7621.c
> index 650286df..077a7c2 100644
> --- a/drivers/staging/mt7621-gpio/gpio-mt7621.c
> +++ b/drivers/staging/mt7621-gpio/gpio-mt7621.c
> @@ -201,8 +201,7 @@ mediatek_gpio_bank_probe(struct platform_device *pdev, struct device_node *bank)
>  static void
>  mediatek_gpio_irq_handler(struct irq_desc *desc)
>  {
> -	struct gpio_chip *gc = irq_desc_get_handler_data(desc);
> -	struct mtk_data *gpio_data = gpiochip_get_data(gc);
> +	struct mtk_data *gpio_data = irq_desc_get_handler_data(desc);
>  	int i;
>  
>  	for (i = 0; i < MTK_MAX_BANK; i++) {
> @@ -228,8 +227,7 @@ mediatek_gpio_irq_handler(struct irq_desc *desc)
>  static void
>  mediatek_gpio_irq_unmask(struct irq_data *d)
>  {
> -	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> -	struct mtk_data *gpio_data = gpiochip_get_data(gc);
> +	struct mtk_data *gpio_data = irq_data_get_irq_chip_data(d);
>  	int pin = d->hwirq;
>  	int bank = pin / 32;
>  	struct mtk_gc *rg = gpio_data->gc_map[bank];
> @@ -251,8 +249,7 @@ mediatek_gpio_irq_unmask(struct irq_data *d)
>  static void
>  mediatek_gpio_irq_mask(struct irq_data *d)
>  {
> -	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> -	struct mtk_data *gpio_data = gpiochip_get_data(gc);
> +	struct mtk_data *gpio_data = irq_data_get_irq_chip_data(d);
>  	int pin = d->hwirq;
>  	int bank = pin / 32;
>  	struct mtk_gc *rg = gpio_data->gc_map[bank];
> @@ -274,8 +271,7 @@ mediatek_gpio_irq_mask(struct irq_data *d)
>  static int
>  mediatek_gpio_irq_type(struct irq_data *d, unsigned int type)
>  {
> -	struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> -	struct mtk_data *gpio_data = gpiochip_get_data(gc);
> +	struct mtk_data *gpio_data = irq_data_get_irq_chip_data(d);
>  	int pin = d->hwirq;
>  	int bank = pin / 32;
>  	struct mtk_gc *rg = gpio_data->gc_map[bank];
> @@ -352,7 +348,7 @@ mediatek_gpio_probe(struct platform_device *pdev)
>  	if (gpio_data->gpio_irq) {
>  		gpio_data->gpio_irq_domain = irq_domain_add_linear(np,
>  			MTK_MAX_BANK * MTK_BANK_WIDTH,
> -			&irq_domain_ops, NULL);
> +			&irq_domain_ops, gpio_data);
>  		if (!gpio_data->gpio_irq_domain)
>  			dev_err(&pdev->dev, "irq_domain_add_linear failed\n");
>  	}
> -- 
> 2.7.4

Attachment: signature.asc
Description: PGP signature

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux