diff options
Diffstat (limited to 'drivers/iio/adc')
| -rw-r--r-- | drivers/iio/adc/ad7266.c | 6 | ||||
| -rw-r--r-- | drivers/iio/adc/at91_adc.c | 2 | ||||
| -rw-r--r-- | drivers/iio/adc/max1363.c | 13 | 
3 files changed, 12 insertions, 9 deletions
diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c index 4a5f639bc68..bbad9b94cd7 100644 --- a/drivers/iio/adc/ad7266.c +++ b/drivers/iio/adc/ad7266.c @@ -411,7 +411,11 @@ static int ad7266_probe(struct spi_device *spi)  		if (ret)  			goto error_put_reg; -		st->vref_uv = regulator_get_voltage(st->reg); +		ret = regulator_get_voltage(st->reg); +		if (ret < 0) +			goto error_disable_reg; + +		st->vref_uv = ret;  	} else {  		/* Use internal reference */  		st->vref_uv = 2500000; diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index 04b013561f0..a526c0e3aaa 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c @@ -80,7 +80,7 @@ static irqreturn_t at91_adc_trigger_handler(int irq, void *p)  		*timestamp = pf->timestamp;  	} -	iio_push_to_buffers(indio_dev, (u8 *)st->buffer); +	iio_push_to_buffers(idev, (u8 *)st->buffer);  	iio_trigger_notify_done(idev->trig); diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c index b5669be6f39..03b25b3dc71 100644 --- a/drivers/iio/adc/max1363.c +++ b/drivers/iio/adc/max1363.c @@ -1605,19 +1605,20 @@ static int max1363_probe(struct i2c_client *client,  	return 0;  error_free_irq: -	free_irq(st->client->irq, indio_dev); +	if (client->irq) +		free_irq(st->client->irq, indio_dev);  error_uninit_buffer:  	iio_buffer_unregister(indio_dev);  error_cleanup_buffer:  	max1363_buffer_cleanup(indio_dev);  error_free_available_scan_masks:  	kfree(indio_dev->available_scan_masks); -error_unregister_map: -	iio_map_array_unregister(indio_dev, client->dev.platform_data);  error_disable_reg:  	regulator_disable(st->reg);  error_put_reg:  	regulator_put(st->reg); +error_unregister_map: +	iio_map_array_unregister(indio_dev, client->dev.platform_data);  error_free_device:  	iio_device_free(indio_dev);  error_out: @@ -1635,10 +1636,8 @@ static int max1363_remove(struct i2c_client *client)  	iio_buffer_unregister(indio_dev);  	max1363_buffer_cleanup(indio_dev);  	kfree(indio_dev->available_scan_masks); -	if (!IS_ERR(st->reg)) { -		regulator_disable(st->reg); -		regulator_put(st->reg); -	} +	regulator_disable(st->reg); +	regulator_put(st->reg);  	iio_map_array_unregister(indio_dev, client->dev.platform_data);  	iio_device_free(indio_dev);  |