[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAMRc=Mfin3Rp9cFky4MKAc0cEtKU3LW3=R4nWE-Eeok7ypVVOQ@mail.gmail.com>
Date: Wed, 4 Nov 2020 17:32:46 +0100
From: Bartosz Golaszewski <brgl@...ev.pl>
To: Sudip Mukherjee <sudipm.mukherjee@...il.com>,
Linus Walleij <linus.walleij@...aro.org>
Cc: "open list:GPIO SUBSYSTEM" <linux-gpio@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Bartosz Golaszewski <bgolaszewski@...libre.com>
Subject: Re: [RFT PATCH 6/7] gpio: exar: switch to using regmap
On Mon, Oct 26, 2020 at 3:18 PM Bartosz Golaszewski <brgl@...ev.pl> wrote:
>
> From: Bartosz Golaszewski <bgolaszewski@...libre.com>
>
> We can simplify the code in gpio-exar by using regmap. This allows us to
> drop the mutex (regmap provides its own locking) and we can also reuse
> regmap's bit operations instead of implementing our own update function.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@...libre.com>
[snip]
>
> static int exar_direction_output(struct gpio_chip *chip, unsigned int offset,
> int value)
> {
> - exar_set_value(chip, offset, value);
> - return exar_set_direction(chip, 0, offset);
> + struct exar_gpio_chip *exar_gpio = gpiochip_get_data(chip);
> + unsigned int addr = exar_offset_to_sel_addr(exar_gpio, offset);
> + unsigned int bit = exar_offset_to_bit(exar_gpio, offset);
> +
> + regmap_clear_bits(exar_gpio->regs, addr, BIT(bit));
> +
> + return 0;
> }
>
Upon closer look I noticed this now ignores the value argument. I
doubt however it's the culprit of the crash Jan reported.
[snip]
Bartosz
Powered by blists - more mailing lists