mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 14:34:28 +08:00
Staging / IIO fixes for 3.15-rc4
Here are some small IIO driver fixes for 3.15-rc4 that resolve some reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEABECAAYFAlNn+48ACgkQMUfUDdst+yn06wCgzKTAHNtiZDir6xddEr4DfkH+ XNsAoLRJAr+w9hdRuA9JcxnQBK1srTvq =vuRJ -----END PGP SIGNATURE----- Merge tag 'staging-3.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging / iio fixes from Greg KH: "Here are some small IIO driver fixes for 3.15-rc4 that resolve some reported issues" * tag 'staging-3.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: iio: adc: Nothing in ADC should be a bool CONFIG iio: exynos_adc: use indio_dev->dev structure to handle child nodes iio:imu:mpu6050: Fixed segfault in Invensens MPU driver due to null dereference staging:iio:ad2s1200 fix missing parenthesis in a for statment.
This commit is contained in:
commit
a1e74464ff
@ -106,7 +106,7 @@ config AT91_ADC
|
|||||||
Say yes here to build support for Atmel AT91 ADC.
|
Say yes here to build support for Atmel AT91 ADC.
|
||||||
|
|
||||||
config EXYNOS_ADC
|
config EXYNOS_ADC
|
||||||
bool "Exynos ADC driver support"
|
tristate "Exynos ADC driver support"
|
||||||
depends on OF
|
depends on OF
|
||||||
help
|
help
|
||||||
Core support for the ADC block found in the Samsung EXYNOS series
|
Core support for the ADC block found in the Samsung EXYNOS series
|
||||||
@ -114,7 +114,7 @@ config EXYNOS_ADC
|
|||||||
this resource.
|
this resource.
|
||||||
|
|
||||||
config LP8788_ADC
|
config LP8788_ADC
|
||||||
bool "LP8788 ADC driver"
|
tristate "LP8788 ADC driver"
|
||||||
depends on MFD_LP8788
|
depends on MFD_LP8788
|
||||||
help
|
help
|
||||||
Say yes here to build support for TI LP8788 ADC.
|
Say yes here to build support for TI LP8788 ADC.
|
||||||
|
@ -344,7 +344,7 @@ static int exynos_adc_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
exynos_adc_hw_init(info);
|
exynos_adc_hw_init(info);
|
||||||
|
|
||||||
ret = of_platform_populate(np, exynos_adc_match, NULL, &pdev->dev);
|
ret = of_platform_populate(np, exynos_adc_match, NULL, &indio_dev->dev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(&pdev->dev, "failed adding child nodes\n");
|
dev_err(&pdev->dev, "failed adding child nodes\n");
|
||||||
goto err_of_populate;
|
goto err_of_populate;
|
||||||
@ -353,7 +353,7 @@ static int exynos_adc_probe(struct platform_device *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_of_populate:
|
err_of_populate:
|
||||||
device_for_each_child(&pdev->dev, NULL,
|
device_for_each_child(&indio_dev->dev, NULL,
|
||||||
exynos_adc_remove_devices);
|
exynos_adc_remove_devices);
|
||||||
regulator_disable(info->vdd);
|
regulator_disable(info->vdd);
|
||||||
clk_disable_unprepare(info->clk);
|
clk_disable_unprepare(info->clk);
|
||||||
@ -369,7 +369,7 @@ static int exynos_adc_remove(struct platform_device *pdev)
|
|||||||
struct iio_dev *indio_dev = platform_get_drvdata(pdev);
|
struct iio_dev *indio_dev = platform_get_drvdata(pdev);
|
||||||
struct exynos_adc *info = iio_priv(indio_dev);
|
struct exynos_adc *info = iio_priv(indio_dev);
|
||||||
|
|
||||||
device_for_each_child(&pdev->dev, NULL,
|
device_for_each_child(&indio_dev->dev, NULL,
|
||||||
exynos_adc_remove_devices);
|
exynos_adc_remove_devices);
|
||||||
regulator_disable(info->vdd);
|
regulator_disable(info->vdd);
|
||||||
clk_disable_unprepare(info->clk);
|
clk_disable_unprepare(info->clk);
|
||||||
|
@ -660,6 +660,7 @@ static int inv_mpu_probe(struct i2c_client *client,
|
|||||||
{
|
{
|
||||||
struct inv_mpu6050_state *st;
|
struct inv_mpu6050_state *st;
|
||||||
struct iio_dev *indio_dev;
|
struct iio_dev *indio_dev;
|
||||||
|
struct inv_mpu6050_platform_data *pdata;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
if (!i2c_check_functionality(client->adapter,
|
if (!i2c_check_functionality(client->adapter,
|
||||||
@ -672,8 +673,10 @@ static int inv_mpu_probe(struct i2c_client *client,
|
|||||||
|
|
||||||
st = iio_priv(indio_dev);
|
st = iio_priv(indio_dev);
|
||||||
st->client = client;
|
st->client = client;
|
||||||
st->plat_data = *(struct inv_mpu6050_platform_data
|
pdata = (struct inv_mpu6050_platform_data
|
||||||
*)dev_get_platdata(&client->dev);
|
*)dev_get_platdata(&client->dev);
|
||||||
|
if (pdata)
|
||||||
|
st->plat_data = *pdata;
|
||||||
/* power is turned on inside check chip type*/
|
/* power is turned on inside check chip type*/
|
||||||
result = inv_check_and_setup_chip(st, id);
|
result = inv_check_and_setup_chip(st, id);
|
||||||
if (result)
|
if (result)
|
||||||
|
@ -107,7 +107,7 @@ static int ad2s1200_probe(struct spi_device *spi)
|
|||||||
int pn, ret = 0;
|
int pn, ret = 0;
|
||||||
unsigned short *pins = spi->dev.platform_data;
|
unsigned short *pins = spi->dev.platform_data;
|
||||||
|
|
||||||
for (pn = 0; pn < AD2S1200_PN; pn++)
|
for (pn = 0; pn < AD2S1200_PN; pn++) {
|
||||||
ret = devm_gpio_request_one(&spi->dev, pins[pn], GPIOF_DIR_OUT,
|
ret = devm_gpio_request_one(&spi->dev, pins[pn], GPIOF_DIR_OUT,
|
||||||
DRV_NAME);
|
DRV_NAME);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -115,6 +115,7 @@ static int ad2s1200_probe(struct spi_device *spi)
|
|||||||
pins[pn]);
|
pins[pn]);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
|
indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
|
||||||
if (!indio_dev)
|
if (!indio_dev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
Loading…
Reference in New Issue
Block a user