diff --git a/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_buffer.c b/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_buffer.c index d4db6b7b7e5a..80b6d470013e 100644 --- a/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_buffer.c +++ b/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_buffer.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "st_lsm6dsr.h" #define ST_LSM6DSR_REG_EMB_FUNC_STATUS_MAINPAGE 0x35 @@ -976,7 +977,6 @@ int st_lsm6dsr_buffers_setup(struct st_lsm6dsr_hw *hw) { struct device_node *np = hw->dev->of_node; struct st_lsm6dsr_sensor *sensor; - struct iio_buffer *buffer; struct iio_dev *iio_dev; unsigned long irq_type; int i, err; @@ -1014,13 +1014,10 @@ int st_lsm6dsr_buffers_setup(struct st_lsm6dsr_hw *hw) if (!hw->iio_devs[i]) continue; - buffer = devm_iio_kfifo_allocate(hw->dev); - if (!buffer) - return -ENOMEM; - - iio_device_attach_buffer(hw->iio_devs[i], buffer); - hw->iio_devs[i]->modes |= INDIO_BUFFER_SOFTWARE; - hw->iio_devs[i]->setup_ops = &st_lsm6dsr_fifo_ops; + err = devm_iio_kfifo_buffer_setup(hw->dev, hw->iio_devs[i], + &st_lsm6dsr_fifo_ops); + if (err) + return err; } err = st_lsm6dsr_fifo_init(hw); diff --git a/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_core.c b/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_core.c index 0aa82a576fb7..1d12a197e00b 100644 --- a/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_core.c +++ b/drivers/iio/imu/st_lsm6dsr/st_lsm6dsr_core.c @@ -1126,6 +1126,7 @@ static int st_lsm6dsr_write_raw(struct iio_dev *iio_dev, break; err = st_lsm6dsr_update_batching(iio_dev, 1); + break; default: break; } diff --git a/drivers/iio/light/ucs12cm0.c b/drivers/iio/light/ucs12cm0.c index 16b31d635cbf..b32dece65d4e 100644 --- a/drivers/iio/light/ucs12cm0.c +++ b/drivers/iio/light/ucs12cm0.c @@ -553,7 +553,6 @@ static int ucs12cm0_probe(struct i2c_client *client, { struct ucs12cm0_data *data; struct iio_dev *indio_dev; - struct iio_buffer *buffer; u32 type; int ret; @@ -561,12 +560,6 @@ static int ucs12cm0_probe(struct i2c_client *client, if (!indio_dev) return -ENOMEM; - buffer = devm_iio_kfifo_allocate(&client->dev); - if (!buffer) - return -ENOMEM; - - iio_device_attach_buffer(indio_dev, buffer); - data = iio_priv(indio_dev); i2c_set_clientdata(client, indio_dev); data->client = client; @@ -575,8 +568,12 @@ static int ucs12cm0_probe(struct i2c_client *client, indio_dev->channels = ucs12cm0_channels; indio_dev->num_channels = ARRAY_SIZE(ucs12cm0_channels); indio_dev->name = "ucs12cm0"; - indio_dev->modes = (INDIO_DIRECT_MODE | INDIO_BUFFER_SOFTWARE); - indio_dev->setup_ops = &ucs12cm0_buffer_setup_ops; + indio_dev->modes = INDIO_DIRECT_MODE; + + ret = devm_iio_kfifo_buffer_setup(&client->dev, indio_dev, + &ucs12cm0_buffer_setup_ops); + if (ret) + return ret; ret = ucs12cm0_init(data); if (ret < 0) diff --git a/drivers/iio/light/vl6180.c b/drivers/iio/light/vl6180.c index 62382d94ba23..466eebe2f980 100644 --- a/drivers/iio/light/vl6180.c +++ b/drivers/iio/light/vl6180.c @@ -898,7 +898,6 @@ static int vl6180_probe(struct i2c_client *client, { struct vl6180_data *data; struct iio_dev *indio_dev; - struct iio_buffer *buffer; u32 type; int ret; @@ -931,13 +930,10 @@ static int vl6180_probe(struct i2c_client *client, return ret; if (client->irq) { - buffer = devm_iio_kfifo_allocate(&client->dev); - if (!buffer) - return -ENOMEM; - - iio_device_attach_buffer(indio_dev, buffer); - indio_dev->modes |= INDIO_BUFFER_SOFTWARE; - indio_dev->setup_ops = &vl6180_buffer_setup_ops; + ret = devm_iio_kfifo_buffer_setup(&client->dev, indio_dev, + &vl6180_buffer_setup_ops); + if (ret) + return ret; type = irqd_get_trigger_type(irq_get_irq_data(client->irq)); ret = devm_request_threaded_irq(&client->dev, client->irq, diff --git a/drivers/input/sensors/accel/da223_cust.c b/drivers/input/sensors/accel/da223_cust.c index 09770142643d..dc96560b91e8 100644 --- a/drivers/input/sensors/accel/da223_cust.c +++ b/drivers/input/sensors/accel/da223_cust.c @@ -281,9 +281,9 @@ static void msdelay(int ms) /******************************************************************************/ #if MIR3DA_OFFSET_TEMP_SOLUTION -static MIR_GENERAL_OPS_DECLARE(ops_handle, i2c_smbus_read, i2c_smbus_read_block, i2c_smbus_write, sensor_sync_write, sensor_sync_read, check_califolder_exist,get_address,support_fast_auto_cali,msdelay, printk, sprintf); +static MIR_GENERAL_OPS_DECLARE(ops_handle, i2c_smbus_read, i2c_smbus_read_block, i2c_smbus_write, sensor_sync_write, sensor_sync_read, check_califolder_exist,get_address,support_fast_auto_cali,msdelay, _printk, sprintf); #else -static MIR_GENERAL_OPS_DECLARE(ops_handle, i2c_smbus_read, i2c_smbus_read_block, i2c_smbus_write, NULL, NULL, NULL,get_address,NULL,msdelay, printk, sprintf); +static MIR_GENERAL_OPS_DECLARE(ops_handle, i2c_smbus_read, i2c_smbus_read_block, i2c_smbus_write, NULL, NULL, NULL,get_address,NULL,msdelay, _printk, sprintf); #endif /******************************************************************************/ diff --git a/drivers/input/sensors/accel/mc3230.c b/drivers/input/sensors/accel/mc3230.c index 5b43a97dd6ea..2c35516ebb13 100644 --- a/drivers/input/sensors/accel/mc3230.c +++ b/drivers/input/sensors/accel/mc3230.c @@ -123,7 +123,6 @@ static GSENSOR_VECTOR3D gsensor_gain; static struct file *fd_file; static int load_cali_flg; static bool READ_FROM_BACKUP; -static mm_segment_t oldfs; static unsigned char offset_buf[9]; static signed int offset_data[3]; static s16 G_RAW_DATA[3]; @@ -219,8 +218,6 @@ static int closeFile(struct file *fp) static void initKernelEnv(void) { - oldfs = get_fs(); - set_fs(KERNEL_DS); } static struct mc3230_data g_mc3230_data = { 0 }; @@ -259,7 +256,6 @@ static int mcube_read_cali_file(struct i2c_client *client) else GSE_LOG("read file error %d\n", err); - set_fs(oldfs); closeFile(fd_file); sscanf(backup_buf, "%d %d %d", &cali_data[MC32X0_AXIS_X], @@ -1043,7 +1039,6 @@ static void mcube_copy_file(const char *dstfilepath) else GSE_LOG("write file error %d\n", err); - set_fs(oldfs); closeFile(fd_file); }