From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751373AbaDQVKn (ORCPT ); Thu, 17 Apr 2014 17:10:43 -0400 Received: from mga09.intel.com ([134.134.136.24]:35229 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751235AbaDQVKi (ORCPT ); Thu, 17 Apr 2014 17:10:38 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,881,1389772800"; d="scan'208";a="495004520" Message-ID: <53504417.9070504@linux.intel.com> Date: Thu, 17 Apr 2014 14:13:59 -0700 From: Srinivas Pandruvada User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6 MIME-Version: 1.0 CC: jianlong , jic23@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, ji.chen@cn.bosch.com, yunfei.ma2@cn.bosch.com Subject: iio: add Bosch BMG160 gyroscope sensor driver References: <1379914517-2491-1-git-send-email-jianlong.gao@cn.bosch.com> <1379960878.3575.43.camel@joe-AO722> In-Reply-To: <1379960878.3575.43.camel@joe-AO722> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi jianlong, Are you planning to update this driver, so that it can be accepted? I will appreciate if you reply ASAP. Thanks, Srinivas On Mon, 2013-09-23 at 13:35 +0800, jianlong wrote: >> This patch adds IIO driver for Bosch BMG160 triaxial gyroscope sensor. >> Thanks a lot. > Maybe some trivial, mostly whitespace, corrections before > modifying the bmg160_api.c and bmg_iio.h files... > --- > drivers/iio/gyro/bmg160_core.c | 286 +++++++++++++++++++------------------- > drivers/iio/gyro/bmg160_ring.c | 19 +-- > drivers/iio/gyro/bmg160_trigger.c | 75 +++++----- > 3 files changed, 187 insertions(+), 193 deletions(-) > > diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c > index 0234348..73fd3b2 100644 > --- a/drivers/iio/gyro/bmg160_core.c > +++ b/drivers/iio/gyro/bmg160_core.c > @@ -38,7 +38,7 @@ > #define BUFF_SIZE 256 > > struct op_mode_map { > - char *op_mode_name; > + const char *op_mode_name; > long op_mode; > }; > > @@ -59,7 +59,7 @@ static struct i2c_client *bmg_client; > * @gyro_fs_dps: sensor's full scale, the unit is degree pre second. > * @gyro_fs_rslt: sensor's resolution. > * example: 0(Reg val)----2000dps(full scale)----61000(resolution) > -*/ > + */ > static struct bmg_fullscale_avl bmg_fs_avl_array[] = { > [0] = { > .gyro_fs_value = BMG_FSR_2000DPS_VAL, > @@ -106,42 +106,42 @@ static const struct bmg_hw bmg_hw_info[NUM_DEVICE_PARTS] = { > #define BMG_SENSORS_16_BITS 16 > #define BMG_TEMP_SCALE 5000 > #define BMG_TEMP_OFFSET 12000 > -#define WATER_MARK_LEVEL 40 > - > -#define BMG_GYRO_CHANNELS_CONFIG(device_type, si, mod, \ > - endian, bits, addr) \ > - { \ > - .type = device_type, \ > - .modified = 1, \ > - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ > - .scan_index = si, \ > - .channel2 = mod, \ > - .address = addr, \ > - .scan_type = { \ > - .sign = 's', \ > - .realbits = bits, \ > - .shift = 16 - bits, \ > - .storagebits = 16, \ > - .endianness = endian, \ > - }, \ > +#define WATER_MARK_LEVEL 40 > + > +#define BMG_GYRO_CHANNELS_CONFIG(device_type, si, mod, \ > + endian, bits, addr) \ > + { \ > + .type = device_type, \ > + .modified = 1, \ > + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ > + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ > + .scan_index = si, \ > + .channel2 = mod, \ > + .address = addr, \ > + .scan_type = { \ > + .sign = 's', \ > + .realbits = bits, \ > + .shift = 16 - bits, \ > + .storagebits = 16, \ > + .endianness = endian, \ > + }, \ > } > -#define BMG_DEV_ATTR_SAMP_FREQ() \ > - IIO_DEV_ATTR_SAMP_FREQ(S_IWUSR | S_IRUGO, \ > - bmg_read_frequency, \ > - bmg_write_frequency) > - > -#define BMG_DEV_ATTR_R_W(name) \ > - IIO_DEVICE_ATTR(name, S_IRUGO | S_IWUSR , \ > - bmg_show_##name, \ > - bmg_store_##name, 0); > - > -#define BMG_DEV_ATTR_R(name) \ > - IIO_DEVICE_ATTR(name, S_IRUGO, \ > +#define BMG_DEV_ATTR_SAMP_FREQ() \ > + IIO_DEV_ATTR_SAMP_FREQ(S_IWUSR | S_IRUGO, \ > + bmg_read_frequency, \ > + bmg_write_frequency) > + > +#define BMG_DEV_ATTR_R_W(name) \ > + IIO_DEVICE_ATTR(name, S_IRUGO | S_IWUSR , \ > + bmg_show_##name, \ > + bmg_store_##name, 0); > + > +#define BMG_DEV_ATTR_R(name) \ > + IIO_DEVICE_ATTR(name, S_IRUGO, \ > bmg_show_##name, NULL , 0); > > -#define BMG_DEV_ATTR_W(name) \ > - IIO_DEVICE_ATTR(name, S_IWUSR, \ > +#define BMG_DEV_ATTR_W(name) \ > + IIO_DEVICE_ATTR(name, S_IWUSR, \ > NULL, bmg_store_##name, 0); > > #define BMG_BYTE_FOR_PER_AXIS_CHANNEL 2 > @@ -150,20 +150,28 @@ static const struct bmg_hw bmg_hw_info[NUM_DEVICE_PARTS] = { > static const struct iio_chan_spec bmg_12bit_raw_channels[] = { > { .type = IIO_TEMP, > .channel = IIO_NO_MOD, > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) > - | BIT(IIO_CHAN_INFO_OFFSET) > - | BIT(IIO_CHAN_INFO_SCALE), > + .info_mask_separate = (BIT(IIO_CHAN_INFO_RAW) | > + BIT(IIO_CHAN_INFO_OFFSET) | > + BIT(IIO_CHAN_INFO_SCALE)), > .address = BMG160_TEMP_ADDR, > .scan_index = -1, > - .scan_type = { .sign = 'u', .realbits = 8, > - .storagebits = 8, .shift = 0, .endianness = IIO_LE }, > + .scan_type = { > + .sign = 'u', > + .realbits = 8, > + .storagebits = 8, > + .shift = 0, > + .endianness = IIO_LE > + }, > }, > BMG_GYRO_CHANNELS_CONFIG(IIO_ANGL_VEL, BMG_SCAN_GYRO_X, > - IIO_MOD_X, IIO_LE, BMG_SENSORS_12_BITS, BMG160_RATE_X_LSB_VALUEX__REG), > + IIO_MOD_X, IIO_LE, BMG_SENSORS_12_BITS, > + BMG160_RATE_X_LSB_VALUEX__REG), > BMG_GYRO_CHANNELS_CONFIG(IIO_ANGL_VEL, BMG_SCAN_GYRO_Y, > - IIO_MOD_Y, IIO_LE, BMG_SENSORS_12_BITS, BMG160_RATE_Y_LSB_VALUEY__REG), > + IIO_MOD_Y, IIO_LE, BMG_SENSORS_12_BITS, > + BMG160_RATE_Y_LSB_VALUEY__REG), > BMG_GYRO_CHANNELS_CONFIG(IIO_ANGL_VEL, BMG_SCAN_GYRO_Z, > - IIO_MOD_Z, IIO_LE, BMG_SENSORS_12_BITS, BMG160_RATE_Z_LSB_VALUEZ__REG), > + IIO_MOD_Z, IIO_LE, BMG_SENSORS_12_BITS, > + BMG160_RATE_Z_LSB_VALUEZ__REG), > IIO_CHAN_SOFT_TIMESTAMP(BMG_SCAN_TIMESTAMP), > > }; > @@ -172,26 +180,34 @@ static const struct iio_chan_spec bmg_12bit_raw_channels[] = { > static const struct iio_chan_spec bmg_16bit_raw_channels[] = { > { .type = IIO_TEMP, > .channel = IIO_NO_MOD, > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) > - | BIT(IIO_CHAN_INFO_OFFSET) > - | BIT(IIO_CHAN_INFO_SCALE), > + .info_mask_separate = (BIT(IIO_CHAN_INFO_RAW) | > + BIT(IIO_CHAN_INFO_OFFSET) | > + BIT(IIO_CHAN_INFO_SCALE)), > .address = BMG160_TEMP_ADDR, > .scan_index = -1, > - .scan_type = { .sign = 'u', .realbits = 8, > - .storagebits = 8, .shift = 0, .endianness = IIO_LE }, > + .scan_type = { > + .sign = 'u', > + .realbits = 8, > + .storagebits = 8, > + .shift = 0, > + .endianness = IIO_LE > + }, > }, > BMG_GYRO_CHANNELS_CONFIG(IIO_ANGL_VEL, BMG_SCAN_GYRO_X, > - IIO_MOD_X, IIO_LE, BMG_SENSORS_16_BITS, BMG160_RATE_X_LSB_VALUEX__REG), > + IIO_MOD_X, IIO_LE, BMG_SENSORS_16_BITS, > + BMG160_RATE_X_LSB_VALUEX__REG), > BMG_GYRO_CHANNELS_CONFIG(IIO_ANGL_VEL, BMG_SCAN_GYRO_Y, > - IIO_MOD_Y, IIO_LE, BMG_SENSORS_16_BITS, BMG160_RATE_Y_LSB_VALUEY__REG), > + IIO_MOD_Y, IIO_LE, BMG_SENSORS_16_BITS, > + BMG160_RATE_Y_LSB_VALUEY__REG), > BMG_GYRO_CHANNELS_CONFIG(IIO_ANGL_VEL, BMG_SCAN_GYRO_Z, > - IIO_MOD_Z, IIO_LE, BMG_SENSORS_16_BITS, BMG160_RATE_Z_LSB_VALUEZ__REG), > + IIO_MOD_Z, IIO_LE, BMG_SENSORS_16_BITS, > + BMG160_RATE_Z_LSB_VALUEZ__REG), > IIO_CHAN_SOFT_TIMESTAMP(BMG_SCAN_TIMESTAMP), > }; > > /* bmg i2c routine read */ > static char bmg_i2c_read(struct i2c_client *client, u8 reg_addr, > - u8 *data, u8 len) > + u8 *data, u8 len) > { > #if !defined BMG_USE_BASIC_I2C_FUNC > s32 dummy; > @@ -202,7 +218,7 @@ static char bmg_i2c_read(struct i2c_client *client, u8 reg_addr, > #ifdef BMG_SMBUS > dummy = i2c_smbus_read_byte_data(client, reg_addr); > if (dummy < 0) { > - dev_err(&client->dev, "i2c bus read error"); > + dev_err(&client->dev, "i2c bus read error\n"); > return -1; > } > *data = (u8)(dummy & 0xff); > @@ -224,18 +240,18 @@ static char bmg_i2c_read(struct i2c_client *client, u8 reg_addr, > > struct i2c_msg msg[] = { > { > - .addr = client->addr, > - .flags = 0, > - .len = 1, > - .buf = ®_addr, > + .addr = client->addr, > + .flags = 0, > + .len = 1, > + .buf = ®_addr, > }, > > { > - .addr = client->addr, > - .flags = I2C_M_RD, > - .len = len, > - .buf = data, > - }, > + .addr = client->addr, > + .flags = I2C_M_RD, > + .len = len, > + .buf = data, > + }, > }; > > for (retry = 0; retry < BMG_MAX_RETRY_I2C_XFER; retry++) { > @@ -246,7 +262,7 @@ static char bmg_i2c_read(struct i2c_client *client, u8 reg_addr, > } > > if (BMG_MAX_RETRY_I2C_XFER <= retry) { > - dev_err(&client->dev, "I2C xfer error"); > + dev_err(&client->dev, "I2C xfer error\n"); > return -EIO; > } > > @@ -268,21 +284,20 @@ static void bmg_dump_reg(struct i2c_client *client) > for (i = 0; i < BYTES_PER_LINE; i++) { > dbg_buf[i] = i; > sprintf(dbg_buf_str + i * 3, "%02x%c", > - dbg_buf[i], > - (((i + 1) % BYTES_PER_LINE == 0) ? '\n' : ' ')); > + dbg_buf[i], > + (((i + 1) % BYTES_PER_LINE == 0) ? '\n' : ' ')); > } > dev_dbg(&client->dev, "%s\n", dbg_buf_str); > > bmg_i2c_read(client, BMG_REG_NAME(CHIP_ID_ADDR), dbg_buf, 64); > for (i = 0; i < 64; i++) { > sprintf(dbg_buf_str + i * 3, "%02x%c", > - dbg_buf[i], > - (((i + 1) % BYTES_PER_LINE == 0) ? '\n' : ' ')); > + dbg_buf[i], > + (((i + 1) % BYTES_PER_LINE == 0) ? '\n' : ' ')); > } > dev_dbg(&client->dev, "%s\n", dbg_buf_str); > } > > - > /* i2c operation for API */ > static int bmg_check_chip_id(struct i2c_client *client) > { > @@ -290,7 +305,7 @@ static int bmg_check_chip_id(struct i2c_client *client) > u8 chip_id = 0; > > bmg_i2c_read(client, BMG_REG_NAME(CHIP_ID_ADDR), &chip_id, 1); > - dev_info(&client->dev, "read chip id result: %#x", chip_id); > + dev_info(&client->dev, "read chip id result: %#x\n", chip_id); > > if ((chip_id & 0xff) != SENSOR_CHIP_ID_BMG) > err = -1; > @@ -300,11 +315,10 @@ static int bmg_check_chip_id(struct i2c_client *client) > > /* i2c write routine*/ > static char bmg_i2c_write(struct i2c_client *client, u8 reg_addr, > - u8 *data, u8 len) > + u8 *data, u8 len) > { > #if !defined BMG_USE_BASIC_I2C_FUNC > s32 dummy; > - > #ifndef BMG_SMBUS > u8 buffer[2]; > #endif > @@ -323,22 +337,22 @@ static char bmg_i2c_write(struct i2c_client *client, u8 reg_addr, > reg_addr++; > data++; > if (dummy < 0) { > - dev_err(&client->dev, "error writing i2c bus"); > + dev_err(&client->dev, "error writing i2c bus\n"); > return -EPERM; > } > - > } > + > return 0; > #else > u8 buffer[2]; > int retry; > struct i2c_msg msg[] = { > { > - .addr = client->addr, > - .flags = 0, > - .len = 2, > - .buf = buffer, > - }, > + .addr = client->addr, > + .flags = 0, > + .len = 2, > + .buf = buffer, > + }, > }; > > while (0 != len--) { > @@ -346,14 +360,14 @@ static char bmg_i2c_write(struct i2c_client *client, u8 reg_addr, > buffer[1] = *data; > for (retry = 0; retry < BMG_MAX_RETRY_I2C_XFER; retry++) { > if (i2c_transfer(client->adapter, msg, > - ARRAY_SIZE(msg)) > 0) { > + ARRAY_SIZE(msg)) > 0) { > break; > } else { > mdelay(BMG_I2C_WRITE_DELAY_TIME); > } > } > if (BMG_MAX_RETRY_I2C_XFER <= retry) { > - dev_err(&client->dev, "I2C xfer error"); > + dev_err(&client->dev, "I2C xfer error\n"); > return -EIO; > } > reg_addr++; > @@ -378,16 +392,15 @@ static char bmg_i2c_write_wrapper(u8 dev_addr, u8 reg_addr, u8 *data, u8 len) > return err; > } > > - > static int bmg_read_axis_data(struct iio_dev *indio_dev, u8 reg_address, > - int *data) > + int *data) > { > int ret; > unsigned char axis_outdata[BMG_BYTE_FOR_PER_AXIS_CHANNEL]; > struct bmg_client_data *client_data = iio_priv(indio_dev); > > ret = bmg_i2c_read(client_data->client, reg_address, > - axis_outdata, BMG_BYTE_FOR_PER_AXIS_CHANNEL); > + axis_outdata, BMG_BYTE_FOR_PER_AXIS_CHANNEL); > if (ret < 0) > return ret; > > @@ -396,7 +409,7 @@ static int bmg_read_axis_data(struct iio_dev *indio_dev, u8 reg_address, > } > > static int bmg_read_temp_data(struct iio_dev *indio_dev, u8 reg_address, > - int *data) > + int *data) > { > int ret; > signed char temp_outdata; > @@ -410,7 +423,7 @@ static int bmg_read_temp_data(struct iio_dev *indio_dev, u8 reg_address, > } > > static ssize_t bmg_read_frequency(struct device *dev, > - struct device_attribute *attr, char *buf) > + struct device_attribute *attr, char *buf) > { > struct iio_dev *indio_dev = dev_get_drvdata(dev); > int ret; > @@ -425,8 +438,8 @@ static ssize_t bmg_read_frequency(struct device *dev, > } > > static ssize_t bmg_write_frequency(struct device *dev, > - struct device_attribute *attr, > - const char *buf, size_t count) > + struct device_attribute *attr, > + const char *buf, size_t count) > { > struct iio_dev *indio_dev = dev_get_drvdata(dev); > int err; > @@ -443,7 +456,7 @@ static ssize_t bmg_write_frequency(struct device *dev, > } > > static ssize_t bmg_show_op_mode(struct device *dev, > - struct device_attribute *attr, char *buf) > + struct device_attribute *attr, char *buf) > { > int ret; > struct iio_dev *indio_dev = dev_get_drvdata(dev); > @@ -459,8 +472,8 @@ static ssize_t bmg_show_op_mode(struct device *dev, > } > > static ssize_t bmg_store_op_mode(struct device *dev, > - struct device_attribute *attr, > - const char *buf, size_t count) > + struct device_attribute *attr, > + const char *buf, size_t count) > { > int err; > struct iio_dev *indio_dev = dev_get_drvdata(dev); > @@ -470,8 +483,8 @@ static ssize_t bmg_store_op_mode(struct device *dev, > if (err) > return err; > > - dev_notice(indio_dev->dev.parent, "%s:set op-mode[%ld]", > - __func__, op_mode); > + dev_notice(indio_dev->dev.parent, "%s:set op-mode[%ld]\n", > + __func__, op_mode); > > mutex_lock(&indio_dev->mlock); > err = BMG_CALL_API(set_mode)(op_mode); > @@ -479,12 +492,12 @@ static ssize_t bmg_store_op_mode(struct device *dev, > > if (err) > return err; > - else > - return count; > + > + return count; > } > > static ssize_t bmg_show_bandwidth(struct device *dev, > - struct device_attribute *attr, char *buf) > + struct device_attribute *attr, char *buf) > { > int err; > unsigned char bandwidth = 0; > @@ -499,8 +512,8 @@ static ssize_t bmg_show_bandwidth(struct device *dev, > } > > static ssize_t bmg_store_bandwidth(struct device *dev, > - struct device_attribute *attr, > - const char *buf, size_t count) > + struct device_attribute *attr, > + const char *buf, size_t count) > { > int err; > unsigned long bandwidth; > @@ -517,7 +530,7 @@ static ssize_t bmg_store_bandwidth(struct device *dev, > } > > static ssize_t bmg_show_selftest(struct device *dev, > - struct device_attribute *attr, char *buf) > + struct device_attribute *attr, char *buf) > { > int err; > unsigned char selftest; > @@ -539,10 +552,10 @@ static ssize_t bmg_show_selftest(struct device *dev, > datay_check = abs(1000 * client_data->value.datay / 16384); > dataz_check = abs(1000 * client_data->value.dataz / 16384); > mutex_unlock(&indio_dev->mlock); > - if ((datax_check <= 5) && (datay_check <= 5) && (dataz_check <= 5)) > + if ((datax_check <= 5) && (datay_check <= 5) && (dataz_check <= 5)) { > dev_notice(&indio_dev->dev, "Self test successfully!\n"); > - else { > - dev_err(&indio_dev->dev, "Self test checking value failed!"); > + } else { > + dev_err(&indio_dev->dev, "Self test checking value failed!\n"); > dev_err(&indio_dev->dev, "x y z axis values:%d,%d,%d\n", > datax_check, datay_check, dataz_check); > selftest |= C_BMG160_FAILURE; > @@ -559,51 +572,49 @@ static int bmg_set_fullscale(struct bmg_client_data *client_data, int val) > for (i = 0; i < NUM_BMG_FSR_VAL; i++) { > if (val == bmg_fs_avl_array[i].gyro_fs_value) { > BMG_CALL_API(set_range_reg)(val); > - client_data->current_fullscale = > - (struct bmg_fullscale_avl *)&bmg_fs_avl_array[i]; > + client_data->current_fullscale = &bmg_fs_avl_array[i]; > return 0; > - } else if (i == NUM_BMG_FSR_VAL) > + } else if (i == NUM_BMG_FSR_VAL) { > return -EINVAL; > + } > } > return -EINVAL; > } > > static int bmg_read_raw(struct iio_dev *indio_dev, > struct iio_chan_spec const *ch, int *val, > - int *val2, long mask) > + int *val2, long mask) > { > int ret, result; > struct bmg_client_data *client_data = iio_priv(indio_dev); > > switch (mask) { > - case IIO_CHAN_INFO_RAW: > - { > + case IIO_CHAN_INFO_RAW: { > result = 0; > ret = IIO_VAL_INT; > mutex_lock(&indio_dev->mlock); > switch (ch->type) { > case IIO_ANGL_VEL: > result = bmg_read_axis_data(indio_dev, > - ch->address, val); > + ch->address, val); > *val = *val >> ch->scan_type.shift; > break; > case IIO_TEMP: > result = bmg_read_temp_data(indio_dev, > - ch->address, val); > + ch->address, val); > *val = *val >> ch->scan_type.shift; > break; > default: > ret = -EINVAL; > break; > } > - mutex_unlock(&indio_dev->mlock); > - if (result < 0) > - return result; > - return ret; > + mutex_unlock(&indio_dev->mlock); > + if (result < 0) > + return result; > + return ret; > } > > - case IIO_CHAN_INFO_SCALE: > - { > + case IIO_CHAN_INFO_SCALE: { > switch (ch->type) { > case IIO_ANGL_VEL: > *val = 0; > @@ -618,8 +629,7 @@ static int bmg_read_raw(struct iio_dev *indio_dev, > } > } > > - case IIO_CHAN_INFO_OFFSET: > - { > + case IIO_CHAN_INFO_OFFSET: { > switch (ch->type) { > case IIO_TEMP: > *val = BMG_TEMP_OFFSET; > @@ -632,12 +642,11 @@ static int bmg_read_raw(struct iio_dev *indio_dev, > default: > return -EINVAL; > } > - > } > > static int bmg_wirte_raw(struct iio_dev *indio_dev, > - struct iio_chan_spec const *ch, int val, > - int val2, long mask) > + struct iio_chan_spec const *ch, int val, > + int val2, long mask) > { > int ret; > struct bmg_client_data *client_data = iio_priv(indio_dev); > @@ -689,19 +698,16 @@ static const struct iio_info bmg_iio_info = { > .write_raw = &bmg_wirte_raw, > }; > > - > - > - > static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > { > int err = 0; > struct iio_dev *indio_dev; > struct bmg_client_data *client_data = NULL; > struct device_node *np = client->dev.of_node; > - dev_info(&client->dev, "function entrance"); > + dev_info(&client->dev, "function entrance\n"); > > if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { > - dev_err(&client->dev, "i2c_check_functionality error!"); > + dev_err(&client->dev, "i2c_check_functionality error!\n"); > err = -EIO; > goto exit_err_clean; > } > @@ -710,7 +716,7 @@ static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > bmg_client = client; > } else { > dev_err(&client->dev, > - "this driver does not support multiple clients"); > + "this driver does not support multiple clients\n"); > err = -EINVAL; > goto exit_err_clean; > } > @@ -718,10 +724,10 @@ static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > err = bmg_check_chip_id(client); > if (!err) { > dev_notice(&client->dev, > - "Bosch Sensortec Device %s detected", SENSOR_NAME); > + "Bosch Sensortec Device %s detected\n", SENSOR_NAME); > } else { > dev_err(&client_data->client->dev, > - "Bosch Sensortec Device not found, chip id mismatch"); > + "Bosch Sensortec Device not found, chip id mismatch\n"); > err = -ENXIO; > goto exit_err_clean; > } > @@ -729,7 +735,7 @@ static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*client_data)); > if (indio_dev == NULL) { > dev_err(indio_dev->dev.parent, > - "IIO device alloc err %d\n", err); > + "IIO device alloc err %d\n", err); > return -ENOMEM; > } > > @@ -740,7 +746,7 @@ static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > * need to set in the dts file by using "gpio_int" key word. > */ > err = of_property_read_u32(np, "gpio_int", > - &client_data->gpio_interrupt_pin); > + &client_data->gpio_interrupt_pin); > if (err) { > dev_err(&client_data->client->dev, > "Not found usable gpio interrupt pin!\n"); > @@ -751,8 +757,7 @@ static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > indio_dev->channels = bmg_16bit_raw_channels; > indio_dev->num_channels = ARRAY_SIZE(bmg_16bit_raw_channels); > indio_dev->info = &bmg_iio_info; > - client_data->current_fullscale = (struct bmg_fullscale_avl *) > - &bmg_fs_avl_array[0]; > + client_data->current_fullscale = bmg_fs_avl_array; > indio_dev->modes = INDIO_DIRECT_MODE; > /* h/w init */ > client_data->device.bus_read = bmg_i2c_read_wrapper; > @@ -777,38 +782,37 @@ static int bmg_probe(struct i2c_client *client, const struct i2c_device_id *id) > #endif > > memcpy(&client_data->chip_config, > - bmg_hw_info[client_data->chip_type].config, > - sizeof(struct bmg_chip_config)); > + bmg_hw_info[client_data->chip_type].config, > + sizeof(struct bmg_chip_config)); > client_data->IRQ = client->irq; > > err = bmg_allocate_ring(indio_dev); > if (err < 0) { > dev_err(indio_dev->dev.parent, > - "bmg configure buffer fail %d\n", err); > + "bmg configure buffer fail %d\n", err); > return err; > } > err = bmg_probe_trigger(indio_dev); > if (err) { > dev_err(indio_dev->dev.parent, > - "bmg trigger probe fail %d\n", err); > + "bmg trigger probe fail %d\n", err); > goto bmg_probe_trigger_error; > } > BMG_CALL_API(set_bw)(3); /*set bandwidth to 47Hz*/ > err = iio_device_register(indio_dev); > if (err) { > dev_err(indio_dev->dev.parent, > - "bmg IIO device register failed %d\n", err); > + "bmg IIO device register failed %d\n", err); > goto bmg_probe_error; > } > > > BMG_CALL_API(set_data_enable)(INT_ENABLE); > /* now it's power on which is considered as resuming from suspend */ > - err = BMG_CALL_API(set_mode)( > - BMG_VAL_NAME(MODE_SUSPEND)); > + err = BMG_CALL_API(set_mode)(BMG_VAL_NAME(MODE_SUSPEND)); > > dev_notice(indio_dev->dev.parent, > - "IIO device sensor %s probed successfully", SENSOR_NAME); > + "IIO device sensor %s probed successfully\n", SENSOR_NAME); > > return 0; > > @@ -819,10 +823,8 @@ bmg_probe_trigger_error: > exit_err_clean: > bmg_client = NULL; > return err; > - > } > > - > static int bmg_remove(struct i2c_client *client) > { > struct iio_dev *indio_dev = i2c_get_clientdata(client); > diff --git a/drivers/iio/gyro/bmg160_ring.c b/drivers/iio/gyro/bmg160_ring.c > index ffc51d1..0dadd97 100644 > --- a/drivers/iio/gyro/bmg160_ring.c > +++ b/drivers/iio/gyro/bmg160_ring.c > @@ -10,7 +10,7 @@ > #include "bmg_iio.h" > > extern char bmg_i2c_burst_read(struct i2c_client *client, u8 reg_addr, > - u8 *data, u16 len); > + u8 *data, u16 len); > > static irqreturn_t bmg_buffer_handler(int irq, void *p) > { > @@ -30,9 +30,9 @@ static irqreturn_t bmg_buffer_handler(int irq, void *p) > if (client_data->chip_config.gyro_fifo_enable) > bytes_per_datum = BMG160_BYTES_PER_3AXIS_SENSOR; > /* > -* There is new data to push to IIO ring buffer > -* please give attentions to the data format > -*/ > + * There is new data to push to IIO ring buffer > + * please give attentions to the data format > + */ > BMG_CALL_API(get_dataxyz)(&client_data->value); > > buffer_data_out[0] = client_data->value.datax & 0xff; > @@ -42,28 +42,23 @@ static irqreturn_t bmg_buffer_handler(int irq, void *p) > buffer_data_out[4] = client_data->value.dataz & 0xff; > buffer_data_out[5] = (client_data->value.dataz >> 8) & 0xff; > /*for every frame, need 8 bytes to axis data storage*/ > - iio_push_to_buffers_with_timestamp(indio_dev, buffer_data_out, timestamp); > - > + iio_push_to_buffers_with_timestamp(indio_dev, buffer_data_out, > + timestamp); > > bmg_buffer_handler_error: > mutex_unlock(&indio_dev->mlock); > iio_trigger_notify_done(indio_dev->trig); > > return IRQ_HANDLED; > - > } > > - > int bmg_allocate_ring(struct iio_dev *indio_dev) > { > return iio_triggered_buffer_setup(indio_dev, &iio_pollfunc_store_time, > - &bmg_buffer_handler, NULL); > + &bmg_buffer_handler, NULL); > } > > void bmg_deallocate_ring(struct iio_dev *indio_dev) > { > iio_triggered_buffer_cleanup(indio_dev); > } > - > - > - > diff --git a/drivers/iio/gyro/bmg160_trigger.c b/drivers/iio/gyro/bmg160_trigger.c > index a374c72..b749c94 100644 > --- a/drivers/iio/gyro/bmg160_trigger.c > +++ b/drivers/iio/gyro/bmg160_trigger.c > @@ -13,58 +13,56 @@ > #include > #include > > - > static void bmg_scan_query(struct iio_dev *indio_dev) > { > - struct bmg_client_data *client_data = iio_priv(indio_dev); > + struct bmg_client_data *client_data = iio_priv(indio_dev); > > - client_data->chip_config.gyro_fifo_enable = > + client_data->chip_config.gyro_fifo_enable = > test_bit(BMG_SCAN_GYRO_X, indio_dev->active_scan_mask) || > test_bit(BMG_SCAN_GYRO_Y, indio_dev->active_scan_mask) || > test_bit(BMG_SCAN_GYRO_Z, indio_dev->active_scan_mask); > } > > - /** > - * bmg_set_trig_ready_enable() - enable related functions such as new data mode. > - * @indio_dev: Device driver instance. > - * @enable: enable/disable > - */ > +/** > + * bmg_set_trig_ready_enable() - enable related functions such as new data mode. > + * @indio_dev: Device driver instance. > + * @enable: enable/disable > + */ > static int bmg_set_trig_ready_enable(struct iio_dev *indio_dev, bool enable) > { > - struct bmg_client_data *client_data = iio_priv(indio_dev); > + struct bmg_client_data *client_data = iio_priv(indio_dev); > > if (enable) { > bmg_scan_query(indio_dev); > if (client_data->chip_config.gyro_fifo_enable) > - dev_notice(indio_dev->dev.parent, "bmg scan query active enable.\n"); > + dev_notice(indio_dev->dev.parent, "bmg scan query active enable\n"); > #if defined(BMG160_ENABLE_INT1) || defined(BMG160_ENABLE_INT2) > - BMG_CALL_API(set_data_enable)(INT_ENABLE); > - dev_notice(indio_dev->dev.parent, "bmg new data ready enable.\n"); > + BMG_CALL_API(set_data_enable)(INT_ENABLE); > + dev_notice(indio_dev->dev.parent, "bmg new data ready enable\n"); > #endif > } else { > - BMG_CALL_API(set_reset_int)(1); > + BMG_CALL_API(set_reset_int)(1); > #if defined(BMG160_ENABLE_INT1) || defined(BMG160_ENABLE_INT2) > - BMG_CALL_API(set_data_enable)(INT_DISABLE); > - dev_notice(indio_dev->dev.parent, "bmg new data ready disabled.\n"); > + BMG_CALL_API(set_data_enable)(INT_DISABLE); > + dev_notice(indio_dev->dev.parent, "bmg new data ready disabled\n"); > #endif > } > - return 0; > + return 0; > } > > - /** > - * bmg_data_rdy_trigger_set_state() - set data ready state > - * @trig: Trigger instance > - * @state: Desired trigger state > - */ > -static int bmg_data_rdy_trigger_set_state(struct iio_trigger *trig, > - bool state) > +/** > + * bmg_data_rdy_trigger_set_state() - set data ready state > + * @trig: Trigger instance > + * @state: Desired trigger state > + */ > +static int bmg_data_rdy_trigger_set_state(struct iio_trigger *trig, bool state) > { > return bmg_set_trig_ready_enable(iio_trigger_get_drvdata(trig), state); > } > > static const struct iio_trigger_ops bmg_trigger_ops = { > - .owner = THIS_MODULE, > - .set_trigger_state = &bmg_data_rdy_trigger_set_state, > + .owner = THIS_MODULE, > + .set_trigger_state = &bmg_data_rdy_trigger_set_state, > }; > > int bmg_probe_trigger(struct iio_dev *indio_dev) > @@ -73,8 +71,8 @@ int bmg_probe_trigger(struct iio_dev *indio_dev) > struct bmg_client_data *client_data = iio_priv(indio_dev); > int irq_num = 0; > client_data->trig = iio_trigger_alloc("%s-dev%d", > - indio_dev->name, > - indio_dev->id); > + indio_dev->name, > + indio_dev->id); > if (client_data->trig == NULL) { > ret = -ENOMEM; > dev_err(&indio_dev->dev, "bmg failed to allocate iio trigger.\n"); > @@ -84,10 +82,10 @@ int bmg_probe_trigger(struct iio_dev *indio_dev) > gpio_direction_input(client_data->gpio_interrupt_pin); > irq_num = gpio_to_irq(client_data->gpio_interrupt_pin); > ret = devm_request_irq(irq_num, &iio_trigger_generic_data_rdy_poll, 0, > - "bmg_iio_int", client_data->trig); > + "bmg_iio_int", client_data->trig); > if (ret) { > dev_err(&client_data->client->dev, > - "bmg could not request irq! err = %d\n", ret); > + "bmg could not request irq! err = %d\n", ret); > goto error_irq_request; > } > /*gpio interrupt trig type*/ > @@ -96,20 +94,20 @@ int bmg_probe_trigger(struct iio_dev *indio_dev) > client_data->trig->dev.parent = &client_data->client->dev; > client_data->trig->ops = &bmg_trigger_ops; > ret = iio_trigger_register(client_data->trig); > - if (ret < 0) { > - dev_err(&indio_dev->dev, "bmg iio trigger failed to register.\n"); > + if (ret < 0) { > + dev_err(&indio_dev->dev, "bmg iio trigger failed to register\n"); > goto erro_iio_trigger_register; > - } > - indio_dev->trig = client_data->trig; > + } > + indio_dev->trig = client_data->trig; > > - return 0; > + return 0; > > erro_iio_trigger_register: > free_irq(gpio_to_irq(client_data->client->irq), client_data->trig); > - error_irq_request: > - iio_trigger_free(client_data->trig); > - error_alloc_trigger: > - return ret; > +error_irq_request: > + iio_trigger_free(client_data->trig); > +error_alloc_trigger: > + return ret; > } > > void bmg_remove_trigger(struct iio_dev *indio_dev) > @@ -119,4 +117,3 @@ void bmg_remove_trigger(struct iio_dev *indio_dev) > free_irq(client_data->client->irq, client_data->trig); > iio_trigger_free(client_data->trig); > } > - > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-iio" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >