diff options
| author | James Morris <james.morris@microsoft.com> | 2018-03-23 08:26:16 +1100 | 
|---|---|---|
| committer | James Morris <james.morris@microsoft.com> | 2018-03-23 08:26:16 +1100 | 
| commit | 5893ed18a26d1f56b97c0290b0cbbc2d49d6de28 (patch) | |
| tree | 97aa931519fca28a0a12fad7485347198f8267cc /drivers/iio | |
| parent | 7bd698b3c04e61ee9e03d4c2a55003f75df14dca (diff) | |
| parent | c698ca5278934c0ae32297a8725ced2e27585d7f (diff) | |
Merge tag 'v4.16-rc6' into next-general
Merge to Linux 4.16-rc6 at the request of Jarkko, for his TPM updates.
Diffstat (limited to 'drivers/iio')
| -rw-r--r-- | drivers/iio/adc/aspeed_adc.c | 7 | ||||
| -rw-r--r-- | drivers/iio/adc/stm32-adc.c | 7 | ||||
| -rw-r--r-- | drivers/iio/imu/adis_trigger.c | 7 | ||||
| -rw-r--r-- | drivers/iio/industrialio-buffer.c | 2 | ||||
| -rw-r--r-- | drivers/iio/proximity/Kconfig | 2 | 
5 files changed, 15 insertions, 10 deletions
| diff --git a/drivers/iio/adc/aspeed_adc.c b/drivers/iio/adc/aspeed_adc.c index 327a49ba1991..9515ca165dfd 100644 --- a/drivers/iio/adc/aspeed_adc.c +++ b/drivers/iio/adc/aspeed_adc.c @@ -243,7 +243,7 @@ static int aspeed_adc_probe(struct platform_device *pdev)  					 ASPEED_ADC_INIT_POLLING_TIME,  					 ASPEED_ADC_INIT_TIMEOUT);  		if (ret) -			goto scaler_error; +			goto poll_timeout_error;  	}  	/* Start all channels in normal mode. */ @@ -274,9 +274,10 @@ iio_register_error:  	writel(ASPEED_OPERATION_MODE_POWER_DOWN,  		data->base + ASPEED_REG_ENGINE_CONTROL);  	clk_disable_unprepare(data->clk_scaler->clk); -reset_error: -	reset_control_assert(data->rst);  clk_enable_error: +poll_timeout_error: +	reset_control_assert(data->rst); +reset_error:  	clk_hw_unregister_divider(data->clk_scaler);  scaler_error:  	clk_hw_unregister_divider(data->clk_prescaler); diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index 7f5def465340..9a2583caedaa 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -722,8 +722,6 @@ static int stm32h7_adc_enable(struct stm32_adc *adc)  	int ret;  	u32 val; -	/* Clear ADRDY by writing one, then enable ADC */ -	stm32_adc_set_bits(adc, STM32H7_ADC_ISR, STM32H7_ADRDY);  	stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADEN);  	/* Poll for ADRDY to be set (after adc startup time) */ @@ -731,8 +729,11 @@ static int stm32h7_adc_enable(struct stm32_adc *adc)  					   val & STM32H7_ADRDY,  					   100, STM32_ADC_TIMEOUT_US);  	if (ret) { -		stm32_adc_clr_bits(adc, STM32H7_ADC_CR, STM32H7_ADEN); +		stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADDIS);  		dev_err(&indio_dev->dev, "Failed to enable ADC\n"); +	} else { +		/* Clear ADRDY by writing one */ +		stm32_adc_set_bits(adc, STM32H7_ADC_ISR, STM32H7_ADRDY);  	}  	return ret; diff --git a/drivers/iio/imu/adis_trigger.c b/drivers/iio/imu/adis_trigger.c index 0dd5a381be64..457372f36791 100644 --- a/drivers/iio/imu/adis_trigger.c +++ b/drivers/iio/imu/adis_trigger.c @@ -46,6 +46,10 @@ int adis_probe_trigger(struct adis *adis, struct iio_dev *indio_dev)  	if (adis->trig == NULL)  		return -ENOMEM; +	adis->trig->dev.parent = &adis->spi->dev; +	adis->trig->ops = &adis_trigger_ops; +	iio_trigger_set_drvdata(adis->trig, adis); +  	ret = request_irq(adis->spi->irq,  			  &iio_trigger_generic_data_rdy_poll,  			  IRQF_TRIGGER_RISING, @@ -54,9 +58,6 @@ int adis_probe_trigger(struct adis *adis, struct iio_dev *indio_dev)  	if (ret)  		goto error_free_trig; -	adis->trig->dev.parent = &adis->spi->dev; -	adis->trig->ops = &adis_trigger_ops; -	iio_trigger_set_drvdata(adis->trig, adis);  	ret = iio_trigger_register(adis->trig);  	indio_dev->trig = iio_trigger_get(adis->trig); diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c index 79abf70a126d..cd5bfe39591b 100644 --- a/drivers/iio/industrialio-buffer.c +++ b/drivers/iio/industrialio-buffer.c @@ -175,7 +175,7 @@ __poll_t iio_buffer_poll(struct file *filp,  	struct iio_dev *indio_dev = filp->private_data;  	struct iio_buffer *rb = indio_dev->buffer; -	if (!indio_dev->info) +	if (!indio_dev->info || rb == NULL)  		return 0;  	poll_wait(filp, &rb->pollq, wait); diff --git a/drivers/iio/proximity/Kconfig b/drivers/iio/proximity/Kconfig index fcb1c4ba5e41..f726f9427602 100644 --- a/drivers/iio/proximity/Kconfig +++ b/drivers/iio/proximity/Kconfig @@ -68,6 +68,8 @@ config SX9500  config SRF08  	tristate "Devantech SRF02/SRF08/SRF10 ultrasonic ranger sensor" +	select IIO_BUFFER +	select IIO_TRIGGERED_BUFFER  	depends on I2C  	help  	  Say Y here to build a driver for Devantech SRF02/SRF08/SRF10 | 
