diff --git a/[refs] b/[refs] index 0f75626f5105..06f8de25bccb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cd4361c7e2e0778016a770157d0ccf126fca7a2a +refs/heads/master: 0339d3dbbfd51348dda584796e59a740a57a7e32 diff --git a/trunk/drivers/staging/iio/adc/max1363_core.c b/trunk/drivers/staging/iio/adc/max1363_core.c index 7f39ca3c936f..3a5bd2084e64 100644 --- a/trunk/drivers/staging/iio/adc/max1363_core.c +++ b/trunk/drivers/staging/iio/adc/max1363_core.c @@ -1245,31 +1245,10 @@ static int max1363_initial_setup(struct max1363_state *st) return max1363_set_scan_mode(st); } -static int __devinit max1363_alloc_scan_masks(struct iio_dev *indio_dev) -{ - struct max1363_state *st = iio_priv(indio_dev); - unsigned long *masks; - int i; - - masks = kzalloc(BITS_TO_LONGS(MAX1363_MAX_CHANNELS)*sizeof(long)* - (st->chip_info->num_modes + 1), GFP_KERNEL); - if (!masks) - return -ENOMEM; - - for (i = 0; i < st->chip_info->num_modes; i++) - bitmap_copy(masks + BITS_TO_LONGS(MAX1363_MAX_CHANNELS)*i, - max1363_mode_table[st->chip_info->mode_list[i]] - .modemask, MAX1363_MAX_CHANNELS); - - indio_dev->available_scan_masks = masks; - - return 0; -} - static int __devinit max1363_probe(struct i2c_client *client, const struct i2c_device_id *id) { - int ret; + int ret, i; struct max1363_state *st; struct iio_dev *indio_dev; struct regulator *reg; @@ -1297,10 +1276,19 @@ static int __devinit max1363_probe(struct i2c_client *client, st->chip_info = &max1363_chip_info_tbl[id->driver_data]; st->client = client; - ret = max1363_alloc_scan_masks(indio_dev); - if (ret) + indio_dev->available_scan_masks + = kzalloc(BITS_TO_LONGS(MAX1363_MAX_CHANNELS)*sizeof(long)* + (st->chip_info->num_modes + 1), GFP_KERNEL); + if (!indio_dev->available_scan_masks) { + ret = -ENOMEM; goto error_free_device; + } + for (i = 0; i < st->chip_info->num_modes; i++) + bitmap_copy(indio_dev->available_scan_masks + + BITS_TO_LONGS(MAX1363_MAX_CHANNELS)*i, + max1363_mode_table[st->chip_info->mode_list[i]] + .modemask, MAX1363_MAX_CHANNELS); /* Estabilish that the iio_dev is a child of the i2c device */ indio_dev->dev.parent = &client->dev; indio_dev->name = id->name; diff --git a/trunk/drivers/staging/iio/buffer.h b/trunk/drivers/staging/iio/buffer.h index df2046dcb623..6fb6e64181a5 100644 --- a/trunk/drivers/staging/iio/buffer.h +++ b/trunk/drivers/staging/iio/buffer.h @@ -91,6 +91,8 @@ struct iio_buffer { **/ void iio_buffer_init(struct iio_buffer *buffer); +void iio_buffer_deinit(struct iio_buffer *buffer); + /** * __iio_update_buffer() - update common elements of buffers * @buffer: buffer that is the event source diff --git a/trunk/drivers/staging/iio/iio.h b/trunk/drivers/staging/iio/iio.h index 76a3f509e5a6..b9bce9aeb19e 100644 --- a/trunk/drivers/staging/iio/iio.h +++ b/trunk/drivers/staging/iio/iio.h @@ -345,9 +345,9 @@ struct iio_dev { struct iio_buffer *buffer; struct mutex mlock; - const unsigned long *available_scan_masks; + unsigned long *available_scan_masks; unsigned masklength; - const unsigned long *active_scan_mask; + unsigned long *active_scan_mask; struct iio_trigger *trig; struct iio_poll_func *pollfunc; diff --git a/trunk/drivers/staging/iio/industrialio-buffer.c b/trunk/drivers/staging/iio/industrialio-buffer.c index 386ba760f3f1..d7b1e9e435ae 100644 --- a/trunk/drivers/staging/iio/industrialio-buffer.c +++ b/trunk/drivers/staging/iio/industrialio-buffer.c @@ -489,9 +489,9 @@ ssize_t iio_buffer_show_enable(struct device *dev, EXPORT_SYMBOL(iio_buffer_show_enable); /* note NULL used as error indicator as it doesn't make sense. */ -static const unsigned long *iio_scan_mask_match(const unsigned long *av_masks, +static unsigned long *iio_scan_mask_match(unsigned long *av_masks, unsigned int masklength, - const unsigned long *mask) + unsigned long *mask) { if (bitmap_empty(mask, masklength)) return NULL; @@ -554,7 +554,7 @@ EXPORT_SYMBOL(iio_sw_buffer_preenable); int iio_scan_mask_set(struct iio_dev *indio_dev, struct iio_buffer *buffer, int bit) { - const unsigned long *mask; + unsigned long *mask; unsigned long *trialmask; trialmask = kmalloc(sizeof(*trialmask)* diff --git a/trunk/drivers/staging/ozwpan/ozeventdef.h b/trunk/drivers/staging/ozwpan/ozeventdef.h index cfe4163965de..a880288bab11 100644 --- a/trunk/drivers/staging/ozwpan/ozeventdef.h +++ b/trunk/drivers/staging/ozwpan/ozeventdef.h @@ -37,7 +37,7 @@ struct oz_event { unsigned ctx4; }; -#define OZ_EVT_LIST_SZ 256 +#define OZ_EVT_LIST_SZ 64 struct oz_evtlist { int count; int missed;