[PATCH] fix some coding style in drivers/staging/iio
fix some coding style in drivers/staging/iio. Signed-off-by: Jimmy Li --- drivers/staging/iio/accel/adis16220_core.c |3 ++- drivers/staging/iio/accel/sca3000_core.c |3 ++- drivers/staging/iio/adc/ad7192.c |3 ++- drivers/staging/iio/adc/ad7606_core.c |2 +- drivers/staging/iio/adc/ad7816.c |6 +++--- drivers/staging/iio/adc/mxs-lradc.c|6 -- drivers/staging/iio/addac/adt7316.c|3 +-- drivers/staging/iio/frequency/ad5930.c | 23 +++ drivers/staging/iio/frequency/ad9850.c |2 +- drivers/staging/iio/light/isl29018.c | 10 ++ drivers/staging/iio/light/tsl2583.c|2 +- drivers/staging/iio/light/tsl2x7x_core.c | 12 ++-- drivers/staging/iio/meter/ade7854-i2c.c|3 ++- drivers/staging/iio/resolver/ad2s1200.c|1 + 14 files changed, 47 insertions(+), 32 deletions(-) diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c index 6f38ca9..31c7a9d 100644 --- a/drivers/staging/iio/accel/adis16220_core.c +++ b/drivers/staging/iio/accel/adis16220_core.c @@ -392,7 +392,8 @@ static const struct iio_info adis16220_info = { }; static const char * const adis16220_status_error_msgs[] = { - [ADIS16220_DIAG_STAT_VIOLATION_BIT] = "Capture period violation/interruption", + [ADIS16220_DIAG_STAT_VIOLATION_BIT] = + "Capture period violation/interruption", [ADIS16220_DIAG_STAT_SPI_FAIL_BIT] = "SPI failure", [ADIS16220_DIAG_STAT_FLASH_UPT_BIT] = "Flash update failed", [ADIS16220_DIAG_STAT_POWER_HIGH_BIT] = "Power supply above 3.625V", diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c index ed30e32..c099294 100644 --- a/drivers/staging/iio/accel/sca3000_core.c +++ b/drivers/staging/iio/accel/sca3000_core.c @@ -506,7 +506,8 @@ static int sca3000_read_raw(struct iio_dev *indio_dev, mutex_unlock(&st->lock); return ret; } - *val = ((st->rx[0] & 0x3F) << 3) | ((st->rx[1] & 0xE0) >> 5); + *val = ((st->rx[0] & 0x3F) << 3) | + ((st->rx[1] & 0xE0) >> 5); } mutex_unlock(&st->lock); return IIO_VAL_INT; diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 83bb44b..d1f9790 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -223,7 +223,8 @@ static int ad7192_setup(struct ad7192_state *st, id &= AD7192_ID_MASK; if (id != st->devid) - dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X)\n", id); + dev_warn(&st->sd.spi->dev, + "device ID query failed (0x%X)\n", id); switch (pdata->clock_source_sel) { case AD7192_CLK_EXT_MCLK1_2: diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c index f0f05f1..bf2c801 100644 --- a/drivers/staging/iio/adc/ad7606_core.c +++ b/drivers/staging/iio/adc/ad7606_core.c @@ -140,7 +140,7 @@ static ssize_t ad7606_store_range(struct device *dev, return count; } -static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, \ +static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, ad7606_show_range, ad7606_store_range, 0); static IIO_CONST_ATTR(in_voltage_range_available, "5000 1"); diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 2369cf2..ec86c01 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -153,7 +153,8 @@ static ssize_t ad7816_show_available_modes(struct device *dev, return sprintf(buf, "full\npower-save\n"); } -static IIO_DEVICE_ATTR(available_modes, S_IRUGO, ad7816_show_available_modes, NULL, 0); +static IIO_DEVICE_ATTR(available_modes, S_IRUGO, + ad7816_show_available_modes, NULL, 0); static ssize_t ad7816_show_channel(struct device *dev, struct device_attribute *attr, @@ -442,6 +443,5 @@ static struct spi_driver ad7816_driver = { module_spi_driver(ad7816_driver); MODULE_AUTHOR("Sonic Zhang "); -MODULE_DESCRIPTION("Analog Devices AD7816/7/8 digital" - " temperature sensor driver"); +MODULE_DESCRIPTION("Analog Devices AD7816/7/8 digital temperature sensor driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index 11fb952..84f7177 100644 --- a/drivers/staging/iio/adc/mxs
[PATCH V2] fix some coding style in drivers/staging/iio, and a break missing.
Signed-off-by: Jimmy Li --- drivers/staging/iio/accel/sca3000_core.c |3 ++- drivers/staging/iio/adc/ad7192.c |3 ++- drivers/staging/iio/adc/ad7606_core.c|2 +- drivers/staging/iio/adc/ad7816.c |6 +++--- drivers/staging/iio/adc/mxs-lradc.c |6 -- drivers/staging/iio/addac/adt7316.c |3 +-- drivers/staging/iio/frequency/ad5930.c | 23 +++ drivers/staging/iio/frequency/ad9850.c |2 +- drivers/staging/iio/light/isl29018.c | 10 ++ drivers/staging/iio/light/tsl2583.c |2 +- drivers/staging/iio/light/tsl2x7x_core.c | 12 ++-- drivers/staging/iio/meter/ade7854-i2c.c |3 ++- drivers/staging/iio/resolver/ad2s1200.c |1 + 13 files changed, 45 insertions(+), 31 deletions(-) diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c index ed30e32..c099294 100644 --- a/drivers/staging/iio/accel/sca3000_core.c +++ b/drivers/staging/iio/accel/sca3000_core.c @@ -506,7 +506,8 @@ static int sca3000_read_raw(struct iio_dev *indio_dev, mutex_unlock(&st->lock); return ret; } - *val = ((st->rx[0] & 0x3F) << 3) | ((st->rx[1] & 0xE0) >> 5); + *val = ((st->rx[0] & 0x3F) << 3) | + ((st->rx[1] & 0xE0) >> 5); } mutex_unlock(&st->lock); return IIO_VAL_INT; diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 83bb44b..d1f9790 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -223,7 +223,8 @@ static int ad7192_setup(struct ad7192_state *st, id &= AD7192_ID_MASK; if (id != st->devid) - dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X)\n", id); + dev_warn(&st->sd.spi->dev, + "device ID query failed (0x%X)\n", id); switch (pdata->clock_source_sel) { case AD7192_CLK_EXT_MCLK1_2: diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c index f0f05f1..bf2c801 100644 --- a/drivers/staging/iio/adc/ad7606_core.c +++ b/drivers/staging/iio/adc/ad7606_core.c @@ -140,7 +140,7 @@ static ssize_t ad7606_store_range(struct device *dev, return count; } -static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, \ +static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, ad7606_show_range, ad7606_store_range, 0); static IIO_CONST_ATTR(in_voltage_range_available, "5000 1"); diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 2369cf2..ec86c01 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -153,7 +153,8 @@ static ssize_t ad7816_show_available_modes(struct device *dev, return sprintf(buf, "full\npower-save\n"); } -static IIO_DEVICE_ATTR(available_modes, S_IRUGO, ad7816_show_available_modes, NULL, 0); +static IIO_DEVICE_ATTR(available_modes, S_IRUGO, + ad7816_show_available_modes, NULL, 0); static ssize_t ad7816_show_channel(struct device *dev, struct device_attribute *attr, @@ -442,6 +443,5 @@ static struct spi_driver ad7816_driver = { module_spi_driver(ad7816_driver); MODULE_AUTHOR("Sonic Zhang "); -MODULE_DESCRIPTION("Analog Devices AD7816/7/8 digital" - " temperature sensor driver"); +MODULE_DESCRIPTION("Analog Devices AD7816/7/8 digital temperature sensor driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index 11fb952..84f7177 100644 --- a/drivers/staging/iio/adc/mxs-lradc.c +++ b/drivers/staging/iio/adc/mxs-lradc.c @@ -462,7 +462,8 @@ static void mxs_lradc_setup_ts_channel(struct mxs_lradc *lradc, unsigned ch) * SoC's delay unit and start the conversion later * and automatically. */ - mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ + mxs_lradc_reg_wrt(lradc, + LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ LRADC_DELAY_TRIGGER_DELAYS(1 << 3) | /* trigger DELAY unit#3 */ LRADC_DELAY_KICK | LRADC_DELAY_DELAY(lradc->settling_delay), @@ -520,7 +521,8 @@ static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1, * SoC's delay unit and start the conversion later * and automatically. */ - mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ + mxs_lradc_reg_wrt(lradc, +
[PATCH] fix a missing break in devivers/staging/iio
fix a missing break. Signed-off-by: Jimmy Li --- drivers/staging/iio/resolver/ad2s1200.c |1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c index 36eedd8..e2b4820 100644 --- a/drivers/staging/iio/resolver/ad2s1200.c +++ b/drivers/staging/iio/resolver/ad2s1200.c @@ -70,6 +70,7 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev, vel = (((s16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4); vel = (vel << 4) >> 4; *val = vel; + break; default: mutex_unlock(&st->lock); return -EINVAL; -- 1.7.9.5 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH V2] fix some coding style in drivers/staging/iio, and a break missing.
the coding style patch is attached. and the break missing one is https://lkml.org/lkml/2014/3/22/4. sorry for the misspelling subject. Signed-off-by: Jimmy Li --- drivers/staging/iio/accel/sca3000_core.c |3 ++- drivers/staging/iio/adc/ad7192.c |3 ++- drivers/staging/iio/adc/ad7606_core.c|2 +- drivers/staging/iio/adc/ad7816.c |6 +++--- drivers/staging/iio/adc/mxs-lradc.c |6 -- drivers/staging/iio/addac/adt7316.c |3 +-- drivers/staging/iio/frequency/ad5930.c | 23 +++ drivers/staging/iio/frequency/ad9850.c |2 +- drivers/staging/iio/light/isl29018.c | 10 ++ drivers/staging/iio/light/tsl2583.c |2 +- drivers/staging/iio/light/tsl2x7x_core.c | 12 ++-- drivers/staging/iio/meter/ade7854-i2c.c |3 ++- 12 files changed, 44 insertions(+), 31 deletions(-) diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c index ed30e32..c099294 100644 --- a/drivers/staging/iio/accel/sca3000_core.c +++ b/drivers/staging/iio/accel/sca3000_core.c @@ -506,7 +506,8 @@ static int sca3000_read_raw(struct iio_dev *indio_dev, mutex_unlock(&st->lock); return ret; } - *val = ((st->rx[0] & 0x3F) << 3) | ((st->rx[1] & 0xE0) >> 5); + *val = ((st->rx[0] & 0x3F) << 3) | + ((st->rx[1] & 0xE0) >> 5); } mutex_unlock(&st->lock); return IIO_VAL_INT; diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c index 83bb44b..d1f9790 100644 --- a/drivers/staging/iio/adc/ad7192.c +++ b/drivers/staging/iio/adc/ad7192.c @@ -223,7 +223,8 @@ static int ad7192_setup(struct ad7192_state *st, id &= AD7192_ID_MASK; if (id != st->devid) - dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X)\n", id); + dev_warn(&st->sd.spi->dev, + "device ID query failed (0x%X)\n", id); switch (pdata->clock_source_sel) { case AD7192_CLK_EXT_MCLK1_2: diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c index f0f05f1..bf2c801 100644 --- a/drivers/staging/iio/adc/ad7606_core.c +++ b/drivers/staging/iio/adc/ad7606_core.c @@ -140,7 +140,7 @@ static ssize_t ad7606_store_range(struct device *dev, return count; } -static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, \ +static IIO_DEVICE_ATTR(in_voltage_range, S_IRUGO | S_IWUSR, ad7606_show_range, ad7606_store_range, 0); static IIO_CONST_ATTR(in_voltage_range_available, "5000 1"); diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 2369cf2..ec86c01 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -153,7 +153,8 @@ static ssize_t ad7816_show_available_modes(struct device *dev, return sprintf(buf, "full\npower-save\n"); } -static IIO_DEVICE_ATTR(available_modes, S_IRUGO, ad7816_show_available_modes, NULL, 0); +static IIO_DEVICE_ATTR(available_modes, S_IRUGO, + ad7816_show_available_modes, NULL, 0); static ssize_t ad7816_show_channel(struct device *dev, struct device_attribute *attr, @@ -442,6 +443,5 @@ static struct spi_driver ad7816_driver = { module_spi_driver(ad7816_driver); MODULE_AUTHOR("Sonic Zhang "); -MODULE_DESCRIPTION("Analog Devices AD7816/7/8 digital" - " temperature sensor driver"); +MODULE_DESCRIPTION("Analog Devices AD7816/7/8 digital temperature sensor driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index 11fb952..84f7177 100644 --- a/drivers/staging/iio/adc/mxs-lradc.c +++ b/drivers/staging/iio/adc/mxs-lradc.c @@ -462,7 +462,8 @@ static void mxs_lradc_setup_ts_channel(struct mxs_lradc *lradc, unsigned ch) * SoC's delay unit and start the conversion later * and automatically. */ - mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ + mxs_lradc_reg_wrt(lradc, + LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */ LRADC_DELAY_TRIGGER_DELAYS(1 << 3) | /* trigger DELAY unit#3 */ LRADC_DELAY_KICK | LRADC_DELAY_DELAY(lradc->settling_delay), @@ -520,7 +521,8 @@ static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1, * SoC's delay unit and start the conversion later * and automatically. */ - mxs_lradc_reg_wrt(lradc, LRADC_DEL
[PATCH] drivers/staging/vt6655/iwctl.c fix a sparse warning
fix a sparse warning. drivers/staging/vt6655/iwctl.c:1846:35: warning: cast from restricted gfp_t drivers/staging/vt6655/iwctl.c:1846:35: warning: incorrect type in argument 2 (different base types) drivers/staging/vt6655/iwctl.c:1846:35:expected restricted gfp_t [usertype] flags drivers/staging/vt6655/iwctl.c:1846:35:got int [signed] Signed-off-by: Jimmy Li --- drivers/staging/vt6655/iwctl.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/vt6655/iwctl.c b/drivers/staging/vt6655/iwctl.c index ac3fc16..5e25535 100644 --- a/drivers/staging/vt6655/iwctl.c +++ b/drivers/staging/vt6655/iwctl.c @@ -1843,7 +1843,7 @@ int iwctl_siwencodeext(struct net_device *dev, PRINT_K("SIOCSIWENCODEEXT.. \n"); blen = sizeof(*param); - buf = kmalloc((int)blen, (int)GFP_KERNEL); + buf = kmalloc((int)blen, GFP_KERNEL); if (buf == NULL) return -ENOMEM; memset(buf, 0, blen); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] drivers/staging/vt6655/iwctl.c fix a sparse warning
On Wed, Mar 26, 2014 at 12:42:43AM -0700, Jimmy Li wrote: > fix a sparse warning. > drivers/staging/vt6655/iwctl.c:1846:35: warning: cast from restricted > gfp_t > drivers/staging/vt6655/iwctl.c:1846:35: warning: incorrect type in > argument 2 (different base types) > drivers/staging/vt6655/iwctl.c:1846:35:expected restricted gfp_t > [usertype] flags > drivers/staging/vt6655/iwctl.c:1846:35:got int [signed] > > Signed-off-by: Jimmy Li > --- > drivers/staging/vt6655/iwctl.c |2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/vt6655/iwctl.c b/drivers/staging/vt6655/iwctl.c > index ac3fc16..5e25535 100644 > --- a/drivers/staging/vt6655/iwctl.c > +++ b/drivers/staging/vt6655/iwctl.c > @@ -1843,7 +1843,7 @@ int iwctl_siwencodeext(struct net_device *dev, > PRINT_K("SIOCSIWENCODEEXT.. \n"); > > blen = sizeof(*param); > - buf = kmalloc((int)blen, (int)GFP_KERNEL); > + buf = kmalloc((int)blen, GFP_KERNEL); > if (buf == NULL) > return -ENOMEM; > memset(buf, 0, blen); > -- > 1.7.10.4 > You are right, I found that variable buf also don't make sense here, maybe this could be more clear. param = kzalloc(sizeof(struct viawget_wpa_param), GFP_KERNEL); if (param == NULL) return -ENOMEM; removing two unnecessary variable, buf and blen. In this situation, I should send a new patch v2 for it base on the previous path? or send a new patch include all changes? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2] drivers/staging/vt6655/iwctl.c fix a sparse warning
Signed-off-by: Jimmy Li --- v2: additional cleanups as well. drivers/staging/vt6655/iwctl.c |9 ++--- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/staging/vt6655/iwctl.c b/drivers/staging/vt6655/iwctl.c index ac3fc16..394031b 100644 --- a/drivers/staging/vt6655/iwctl.c +++ b/drivers/staging/vt6655/iwctl.c @@ -1835,19 +1835,14 @@ int iwctl_siwencodeext(struct net_device *dev, size_t seq_len = 0, key_len = 0; // // int ii; - u8 *buf; - size_t blen; u8 key_array[64]; int ret = 0; PRINT_K("SIOCSIWENCODEEXT.. \n"); - blen = sizeof(*param); - buf = kmalloc((int)blen, (int)GFP_KERNEL); - if (buf == NULL) + param = kzalloc(sizeof(struct viawget_wpa_param), GFP_KERNEL); + if (param == NULL) return -ENOMEM; - memset(buf, 0, blen); - param = (struct viawget_wpa_param *)buf; //recover alg_name switch (ext->alg) { -- 1.7.9.5 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3] Staging: vt6655: iwctl.c: fix a sparse warning
thanks for correcting my patch format. Signed-off-by: Jimmy Li --- v1 fix a sparse warning. (iwctl.c:1846:35: expected restricted gfp_t [usertype] flags) v2 clear up two unnecessary variable, buf and blen. v3 fix patch format. drivers/staging/vt6655/iwctl.c |9 ++--- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/staging/vt6655/iwctl.c b/drivers/staging/vt6655/iwctl.c index ac3fc16..394031b 100644 --- a/drivers/staging/vt6655/iwctl.c +++ b/drivers/staging/vt6655/iwctl.c @@ -1835,19 +1835,14 @@ int iwctl_siwencodeext(struct net_device *dev, size_t seq_len = 0, key_len = 0; // // int ii; - u8 *buf; - size_t blen; u8 key_array[64]; int ret = 0; PRINT_K("SIOCSIWENCODEEXT.. \n"); - blen = sizeof(*param); - buf = kmalloc((int)blen, (int)GFP_KERNEL); - if (buf == NULL) + param = kzalloc(sizeof(struct viawget_wpa_param), GFP_KERNEL); + if (param == NULL) return -ENOMEM; - memset(buf, 0, blen); - param = (struct viawget_wpa_param *)buf; //recover alg_name switch (ext->alg) { -- 1.7.9.5 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH]staging:iio:ad2s1200 fix missing parenthesis in a for statment.
Signed-off-by: Jimmy Li --- drivers/staging/iio/resolver/ad2s1200.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c index e2b4820..017d2f8 100644 --- a/drivers/staging/iio/resolver/ad2s1200.c +++ b/drivers/staging/iio/resolver/ad2s1200.c @@ -107,7 +107,7 @@ static int ad2s1200_probe(struct spi_device *spi) int pn, ret = 0; 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, DRV_NAME); if (ret) { @@ -115,6 +115,7 @@ static int ad2s1200_probe(struct spi_device *spi) pins[pn]); return ret; } + } indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); if (!indio_dev) return -ENOMEM; -- 1.7.9.5 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH] staging:iio:ad2s1210 fix a leak when device removed
Signed-off-by: Jimmy Li --- drivers/staging/iio/resolver/ad2s1210.c |1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c index 7fbaba4..3d6e123 100644 --- a/drivers/staging/iio/resolver/ad2s1210.c +++ b/drivers/staging/iio/resolver/ad2s1210.c @@ -716,6 +716,7 @@ static int ad2s1210_remove(struct spi_device *spi) iio_device_unregister(indio_dev); ad2s1210_free_gpios(iio_priv(indio_dev)); + devm_iio_device_free(&spi->dev, indio_dev); return 0; } -- 1.7.9.5 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging:iio:ad2s1210 fix a leak when device removed
On Tue, Apr 29, 2014 at 03:07:04PM +0900, Jingoo Han wrote: > On Tuesday, April 29, 2014 2:56 PM, Jimmy Li wrote: > > > > Signed-off-by: Jimmy Li > > --- > > drivers/staging/iio/resolver/ad2s1210.c |1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/staging/iio/resolver/ad2s1210.c > > b/drivers/staging/iio/resolver/ad2s1210.c > > index 7fbaba4..3d6e123 100644 > > --- a/drivers/staging/iio/resolver/ad2s1210.c > > +++ b/drivers/staging/iio/resolver/ad2s1210.c > > @@ -716,6 +716,7 @@ static int ad2s1210_remove(struct spi_device *spi) > > > > iio_device_unregister(indio_dev); > > ad2s1210_free_gpios(iio_priv(indio_dev)); > > + devm_iio_device_free(&spi->dev, indio_dev); > > NAK. > > In ad2s1210_probe(),devm_iio_device_alloc() was already used. > So, when ad2s1210_remove() is called, iio_device_free() will > be called automatically. So, the leak never happens. > > If you want to know about devm_* functions, please refer > to the following. > > Documentation/driver-model/devres.txt Thank you for your reply, I understand it now, just ignore this patch. > > Best regards, > Jingoo Han > > > > return 0; > > } > > -- > > 1.7.9.5 > ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel