Commit 8b1c82cb authored by Jonathan Cameron's avatar Jonathan Cameron

iio: core: move @flags from struct iio_dev to struct iio_dev_opaque

No reason any driver should ever need access to this field, so hide it.
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarAlexandru Ardelean <ardeleanalex@gmail.com>
Link: https://lore.kernel.org/r/20210426174911.397061-9-jic23@kernel.org
parent 396f7234
...@@ -1720,7 +1720,7 @@ static int iio_chrdev_open(struct inode *inode, struct file *filp) ...@@ -1720,7 +1720,7 @@ static int iio_chrdev_open(struct inode *inode, struct file *filp)
struct iio_dev *indio_dev = &iio_dev_opaque->indio_dev; struct iio_dev *indio_dev = &iio_dev_opaque->indio_dev;
struct iio_dev_buffer_pair *ib; struct iio_dev_buffer_pair *ib;
if (test_and_set_bit(IIO_BUSY_BIT_POS, &indio_dev->flags)) if (test_and_set_bit(IIO_BUSY_BIT_POS, &iio_dev_opaque->flags))
return -EBUSY; return -EBUSY;
iio_device_get(indio_dev); iio_device_get(indio_dev);
...@@ -1728,7 +1728,7 @@ static int iio_chrdev_open(struct inode *inode, struct file *filp) ...@@ -1728,7 +1728,7 @@ static int iio_chrdev_open(struct inode *inode, struct file *filp)
ib = kmalloc(sizeof(*ib), GFP_KERNEL); ib = kmalloc(sizeof(*ib), GFP_KERNEL);
if (!ib) { if (!ib) {
iio_device_put(indio_dev); iio_device_put(indio_dev);
clear_bit(IIO_BUSY_BIT_POS, &indio_dev->flags); clear_bit(IIO_BUSY_BIT_POS, &iio_dev_opaque->flags);
return -ENOMEM; return -ENOMEM;
} }
...@@ -1754,7 +1754,7 @@ static int iio_chrdev_release(struct inode *inode, struct file *filp) ...@@ -1754,7 +1754,7 @@ static int iio_chrdev_release(struct inode *inode, struct file *filp)
container_of(inode->i_cdev, struct iio_dev_opaque, chrdev); container_of(inode->i_cdev, struct iio_dev_opaque, chrdev);
struct iio_dev *indio_dev = &iio_dev_opaque->indio_dev; struct iio_dev *indio_dev = &iio_dev_opaque->indio_dev;
kfree(ib); kfree(ib);
clear_bit(IIO_BUSY_BIT_POS, &indio_dev->flags); clear_bit(IIO_BUSY_BIT_POS, &iio_dev_opaque->flags);
iio_device_put(indio_dev); iio_device_put(indio_dev);
return 0; return 0;
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
* @legacy_buffer_group: attribute group for legacy buffer attributes group * @legacy_buffer_group: attribute group for legacy buffer attributes group
* @scan_index_timestamp: cache of the index to the timestamp * @scan_index_timestamp: cache of the index to the timestamp
* @chrdev: associated character device * @chrdev: associated character device
* @flags: file ops related flags including busy flag.
* @debugfs_dentry: device specific debugfs dentry * @debugfs_dentry: device specific debugfs dentry
* @cached_reg_addr: cached register address for debugfs reads * @cached_reg_addr: cached register address for debugfs reads
* @read_buf: read buffer to be used for the initial reg read * @read_buf: read buffer to be used for the initial reg read
...@@ -51,6 +52,7 @@ struct iio_dev_opaque { ...@@ -51,6 +52,7 @@ struct iio_dev_opaque {
unsigned int scan_index_timestamp; unsigned int scan_index_timestamp;
struct cdev chrdev; struct cdev chrdev;
unsigned long flags;
#if defined(CONFIG_DEBUG_FS) #if defined(CONFIG_DEBUG_FS)
struct dentry *debugfs_dentry; struct dentry *debugfs_dentry;
......
...@@ -512,7 +512,6 @@ struct iio_buffer_setup_ops { ...@@ -512,7 +512,6 @@ struct iio_buffer_setup_ops {
* @clock_id: [INTERN] timestamping clock posix identifier * @clock_id: [INTERN] timestamping clock posix identifier
* @setup_ops: [DRIVER] callbacks to call before and after buffer * @setup_ops: [DRIVER] callbacks to call before and after buffer
* enable/disable * enable/disable
* @flags: [INTERN] file ops related flags including busy flag.
* @priv: [DRIVER] reference to driver's private information * @priv: [DRIVER] reference to driver's private information
* **MUST** be accessed **ONLY** via iio_priv() helper * **MUST** be accessed **ONLY** via iio_priv() helper
*/ */
...@@ -542,7 +541,6 @@ struct iio_dev { ...@@ -542,7 +541,6 @@ struct iio_dev {
clockid_t clock_id; clockid_t clock_id;
const struct iio_buffer_setup_ops *setup_ops; const struct iio_buffer_setup_ops *setup_ops;
unsigned long flags;
void *priv; void *priv;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment