Re: [PATCH v2] iio: adc: ti-ads7950: add GPIO support

From: Florian Fainelli
Date: Tue Feb 12 2019 - 21:48:00 EST


Hi Justin,

This looks good, one comment below:


[snip]

>+static int ti_ads7950_init_gpio(struct ti_ads7950_state *st)
>+{
>+ int ret;
>+
>+ /* Initialize GPIO */
>+ mutex_lock(&st->slock);

Lock is acquired here.

>+
>+ /* Default to GPIO input */
>+ st->gpio_direction_bitmask = 0x0;
>+ st->single_tx = cpu_to_be16(TI_ADS7950_CR_GPIO |
>+ (st->gpio_direction_bitmask &
>+ TI_ADS7950_GPIO_MASK));
>+ ret = spi_sync(st->spi, &st->scan_single_msg);
>+ mutex_unlock(&st->slock);

then released here.

>+ if (ret)
>+ return ret;
>+
>+ /* Default to signal low */
>+ st->gpio_signal_bitmask = 0x0;
>+ st->single_tx = cpu_to_be16(TI_ADS7950_CR_MANUAL |
>+ TI_ADS7950_CR_WRITE |
>+ (st->gpio_signal_bitmask &
>+ TI_ADS7950_GPIO_MASK));
>+ ret = spi_sync(st->spi, &st->scan_single_msg);
>+ mutex_unlock(&st->slock);

and here as well, presumably there should be a mutex_lock() guarding the signal bitmask and transaction, right?

Thanks!
--
Florian