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

Reply via email to