* [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name
@ 2017-04-03 17:27 Lorenzo Bianconi
2017-04-03 19:43 ` Jonathan Cameron
0 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bianconi @ 2017-04-03 17:27 UTC (permalink / raw)
To: jic23; +Cc: linux-iio, lorenzo.bianconi
Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
instead of a generic one (lsm6dsx)
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +++-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 14 +++++++++-----
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 2 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 2 +-
4 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
index 6a9849e..4839db7 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
@@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
/**
* struct st_lsm6dsx_sensor - ST IMU sensor instance
+ * @name: Sensor name.
* @id: Sensor identifier.
* @hw: Pointer to instance of struct st_lsm6dsx_hw.
* @gain: Configured sensor sensitivity.
@@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
* @ts: Latest timestamp from the interrupt handler.
*/
struct st_lsm6dsx_sensor {
+ char name[32];
enum st_lsm6dsx_sensor_id id;
struct st_lsm6dsx_hw *hw;
@@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
#endif /* CONFIG_SPI_MASTER */
};
-int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
+int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
const struct st_lsm6dsx_transfer_function *tf_ops);
int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index f80a3d4..98b51d7 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
}
static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
- enum st_lsm6dsx_sensor_id id)
+ enum st_lsm6dsx_sensor_id id,
+ const char *name)
{
struct st_lsm6dsx_sensor *sensor;
struct iio_dev *iio_dev;
@@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
case ST_LSM6DSX_ID_ACC:
iio_dev->channels = st_lsm6dsx_acc_channels;
iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
- iio_dev->name = "lsm6dsx_accel";
iio_dev->info = &st_lsm6dsx_acc_info;
sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
+ scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
+ name);
break;
case ST_LSM6DSX_ID_GYRO:
iio_dev->channels = st_lsm6dsx_gyro_channels;
iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
- iio_dev->name = "lsm6dsx_gyro";
iio_dev->info = &st_lsm6dsx_gyro_info;
sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
+ scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
+ name);
break;
default:
return NULL;
}
+ iio_dev->name = sensor->name;
return iio_dev;
}
-int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
+int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
const struct st_lsm6dsx_transfer_function *tf_ops)
{
struct st_lsm6dsx_hw *hw;
@@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
return err;
for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
- hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i);
+ hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
if (!hw->iio_devs[i])
return -ENOMEM;
}
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
index 2e4ed26..09a51cf 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
@@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
return st_lsm6dsx_probe(&client->dev, client->irq,
- (int)id->driver_data,
+ (int)id->driver_data, id->name,
&st_lsm6dsx_transfer_fn);
}
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
index 1bf4a58..f765a50 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
@@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
const struct spi_device_id *id = spi_get_device_id(spi);
return st_lsm6dsx_probe(&spi->dev, spi->irq,
- (int)id->driver_data,
+ (int)id->driver_data, id->name,
&st_lsm6dsx_transfer_fn);
}
--
2.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name
2017-04-03 17:27 [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name Lorenzo Bianconi
@ 2017-04-03 19:43 ` Jonathan Cameron
2017-04-03 20:02 ` Lorenzo Bianconi
0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2017-04-03 19:43 UTC (permalink / raw)
To: Lorenzo Bianconi; +Cc: linux-iio, lorenzo.bianconi
On 03/04/17 18:27, Lorenzo Bianconi wrote:
> Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
> instead of a generic one (lsm6dsx)
>
> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Hmm. Always a fun one. Technically this is changing a userspace
ABI so is a problem unless we think no one will notice...
The question is whether the gain is worth the potential risk?
What do people think?
J
> ---
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +++-
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 14 +++++++++-----
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 2 +-
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 2 +-
> 4 files changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> index 6a9849e..4839db7 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> @@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
>
> /**
> * struct st_lsm6dsx_sensor - ST IMU sensor instance
> + * @name: Sensor name.
> * @id: Sensor identifier.
> * @hw: Pointer to instance of struct st_lsm6dsx_hw.
> * @gain: Configured sensor sensitivity.
> @@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
> * @ts: Latest timestamp from the interrupt handler.
> */
> struct st_lsm6dsx_sensor {
> + char name[32];
> enum st_lsm6dsx_sensor_id id;
> struct st_lsm6dsx_hw *hw;
>
> @@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
> #endif /* CONFIG_SPI_MASTER */
> };
>
> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
> const struct st_lsm6dsx_transfer_function *tf_ops);
> int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
> int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> index f80a3d4..98b51d7 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> @@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
> }
>
> static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
> - enum st_lsm6dsx_sensor_id id)
> + enum st_lsm6dsx_sensor_id id,
> + const char *name)
> {
> struct st_lsm6dsx_sensor *sensor;
> struct iio_dev *iio_dev;
> @@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
> case ST_LSM6DSX_ID_ACC:
> iio_dev->channels = st_lsm6dsx_acc_channels;
> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
> - iio_dev->name = "lsm6dsx_accel";
> iio_dev->info = &st_lsm6dsx_acc_info;
>
> sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
> + scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
> + name);
> break;
> case ST_LSM6DSX_ID_GYRO:
> iio_dev->channels = st_lsm6dsx_gyro_channels;
> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
> - iio_dev->name = "lsm6dsx_gyro";
> iio_dev->info = &st_lsm6dsx_gyro_info;
>
> sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
> + scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
> + name);
> break;
> default:
> return NULL;
> }
> + iio_dev->name = sensor->name;
>
> return iio_dev;
> }
>
> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
> const struct st_lsm6dsx_transfer_function *tf_ops)
> {
> struct st_lsm6dsx_hw *hw;
> @@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
> return err;
>
> for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
> - hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i);
> + hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
> if (!hw->iio_devs[i])
> return -ENOMEM;
> }
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
> index 2e4ed26..09a51cf 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
> @@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
> const struct i2c_device_id *id)
> {
> return st_lsm6dsx_probe(&client->dev, client->irq,
> - (int)id->driver_data,
> + (int)id->driver_data, id->name,
> &st_lsm6dsx_transfer_fn);
> }
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
> index 1bf4a58..f765a50 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
> @@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
> const struct spi_device_id *id = spi_get_device_id(spi);
>
> return st_lsm6dsx_probe(&spi->dev, spi->irq,
> - (int)id->driver_data,
> + (int)id->driver_data, id->name,
> &st_lsm6dsx_transfer_fn);
> }
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name
2017-04-03 19:43 ` Jonathan Cameron
@ 2017-04-03 20:02 ` Lorenzo Bianconi
2017-04-03 20:05 ` Jonathan Cameron
0 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bianconi @ 2017-04-03 20:02 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-iio, Lorenzo BIANCONI
> On 03/04/17 18:27, Lorenzo Bianconi wrote:
>> Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
>> instead of a generic one (lsm6dsx)
>>
>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
> Hmm. Always a fun one. Technically this is changing a userspace
> ABI so is a problem unless we think no one will notice...
>
Right.
> The question is whether the gain is worth the potential risk?
In this way we can support multiple chips at the same time (e.g.
lsm6dsm_accel and lsm6ds3h_gyro).
I needed that change when I had to support two different devices at
the same time, in particular lsm6dsm + lsm6ds3h.
What do you think? Does it worth? Fine if you think it does not :)
Regards,
Lorenzo
>
> What do people think?
>
> J
>> ---
>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +++-
>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 14 +++++++++-----
>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 2 +-
>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 2 +-
>> 4 files changed, 14 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>> index 6a9849e..4839db7 100644
>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>> @@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
>>
>> /**
>> * struct st_lsm6dsx_sensor - ST IMU sensor instance
>> + * @name: Sensor name.
>> * @id: Sensor identifier.
>> * @hw: Pointer to instance of struct st_lsm6dsx_hw.
>> * @gain: Configured sensor sensitivity.
>> @@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
>> * @ts: Latest timestamp from the interrupt handler.
>> */
>> struct st_lsm6dsx_sensor {
>> + char name[32];
>> enum st_lsm6dsx_sensor_id id;
>> struct st_lsm6dsx_hw *hw;
>>
>> @@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
>> #endif /* CONFIG_SPI_MASTER */
>> };
>>
>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>> const struct st_lsm6dsx_transfer_function *tf_ops);
>> int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
>> int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>> index f80a3d4..98b51d7 100644
>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>> @@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
>> }
>>
>> static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>> - enum st_lsm6dsx_sensor_id id)
>> + enum st_lsm6dsx_sensor_id id,
>> + const char *name)
>> {
>> struct st_lsm6dsx_sensor *sensor;
>> struct iio_dev *iio_dev;
>> @@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>> case ST_LSM6DSX_ID_ACC:
>> iio_dev->channels = st_lsm6dsx_acc_channels;
>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
>> - iio_dev->name = "lsm6dsx_accel";
>> iio_dev->info = &st_lsm6dsx_acc_info;
>>
>> sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
>> + name);
>> break;
>> case ST_LSM6DSX_ID_GYRO:
>> iio_dev->channels = st_lsm6dsx_gyro_channels;
>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
>> - iio_dev->name = "lsm6dsx_gyro";
>> iio_dev->info = &st_lsm6dsx_gyro_info;
>>
>> sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
>> + name);
>> break;
>> default:
>> return NULL;
>> }
>> + iio_dev->name = sensor->name;
>>
>> return iio_dev;
>> }
>>
>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>> const struct st_lsm6dsx_transfer_function *tf_ops)
>> {
>> struct st_lsm6dsx_hw *hw;
>> @@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>> return err;
>>
>> for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
>> - hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i);
>> + hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
>> if (!hw->iio_devs[i])
>> return -ENOMEM;
>> }
>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>> index 2e4ed26..09a51cf 100644
>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>> @@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
>> const struct i2c_device_id *id)
>> {
>> return st_lsm6dsx_probe(&client->dev, client->irq,
>> - (int)id->driver_data,
>> + (int)id->driver_data, id->name,
>> &st_lsm6dsx_transfer_fn);
>> }
>>
>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>> index 1bf4a58..f765a50 100644
>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>> @@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
>> const struct spi_device_id *id = spi_get_device_id(spi);
>>
>> return st_lsm6dsx_probe(&spi->dev, spi->irq,
>> - (int)id->driver_data,
>> + (int)id->driver_data, id->name,
>> &st_lsm6dsx_transfer_fn);
>> }
>>
>>
>
--
UNIX is Sexy: who | grep -i blonde | talk; cd ~; wine; talk; touch;
unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; gasp;
umount; make clean; sleep
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name
2017-04-03 20:02 ` Lorenzo Bianconi
@ 2017-04-03 20:05 ` Jonathan Cameron
2017-04-03 20:13 ` Lorenzo Bianconi
0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2017-04-03 20:05 UTC (permalink / raw)
To: Lorenzo Bianconi; +Cc: linux-iio, Lorenzo BIANCONI
On 03/04/17 21:02, Lorenzo Bianconi wrote:
>> On 03/04/17 18:27, Lorenzo Bianconi wrote:
>>> Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
>>> instead of a generic one (lsm6dsx)
>>>
>>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
>> Hmm. Always a fun one. Technically this is changing a userspace
>> ABI so is a problem unless we think no one will notice...
>>
>
> Right.
>
>> The question is whether the gain is worth the potential risk?
>
> In this way we can support multiple chips at the same time (e.g.
> lsm6dsm_accel and lsm6ds3h_gyro).
> I needed that change when I had to support two different devices at
> the same time, in particular lsm6dsm + lsm6ds3h.
> What do you think? Does it worth? Fine if you think it does not :)
There are lots of other ways of identifying devices, this one is
just a convenience really....
Lets leave it a few days and see if anyone else chips in.
Jonathan
>
> Regards,
> Lorenzo
>
>>
>> What do people think?
>>
>> J
>>> ---
>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +++-
>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 14 +++++++++-----
>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 2 +-
>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 2 +-
>>> 4 files changed, 14 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>> index 6a9849e..4839db7 100644
>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>> @@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
>>>
>>> /**
>>> * struct st_lsm6dsx_sensor - ST IMU sensor instance
>>> + * @name: Sensor name.
>>> * @id: Sensor identifier.
>>> * @hw: Pointer to instance of struct st_lsm6dsx_hw.
>>> * @gain: Configured sensor sensitivity.
>>> @@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
>>> * @ts: Latest timestamp from the interrupt handler.
>>> */
>>> struct st_lsm6dsx_sensor {
>>> + char name[32];
>>> enum st_lsm6dsx_sensor_id id;
>>> struct st_lsm6dsx_hw *hw;
>>>
>>> @@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
>>> #endif /* CONFIG_SPI_MASTER */
>>> };
>>>
>>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>>> const struct st_lsm6dsx_transfer_function *tf_ops);
>>> int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
>>> int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>> index f80a3d4..98b51d7 100644
>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>> @@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
>>> }
>>>
>>> static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>>> - enum st_lsm6dsx_sensor_id id)
>>> + enum st_lsm6dsx_sensor_id id,
>>> + const char *name)
>>> {
>>> struct st_lsm6dsx_sensor *sensor;
>>> struct iio_dev *iio_dev;
>>> @@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>>> case ST_LSM6DSX_ID_ACC:
>>> iio_dev->channels = st_lsm6dsx_acc_channels;
>>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
>>> - iio_dev->name = "lsm6dsx_accel";
>>> iio_dev->info = &st_lsm6dsx_acc_info;
>>>
>>> sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
>>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
>>> + name);
>>> break;
>>> case ST_LSM6DSX_ID_GYRO:
>>> iio_dev->channels = st_lsm6dsx_gyro_channels;
>>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
>>> - iio_dev->name = "lsm6dsx_gyro";
>>> iio_dev->info = &st_lsm6dsx_gyro_info;
>>>
>>> sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
>>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
>>> + name);
>>> break;
>>> default:
>>> return NULL;
>>> }
>>> + iio_dev->name = sensor->name;
>>>
>>> return iio_dev;
>>> }
>>>
>>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>>> const struct st_lsm6dsx_transfer_function *tf_ops)
>>> {
>>> struct st_lsm6dsx_hw *hw;
>>> @@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>> return err;
>>>
>>> for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
>>> - hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i);
>>> + hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
>>> if (!hw->iio_devs[i])
>>> return -ENOMEM;
>>> }
>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>> index 2e4ed26..09a51cf 100644
>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>> @@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
>>> const struct i2c_device_id *id)
>>> {
>>> return st_lsm6dsx_probe(&client->dev, client->irq,
>>> - (int)id->driver_data,
>>> + (int)id->driver_data, id->name,
>>> &st_lsm6dsx_transfer_fn);
>>> }
>>>
>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>> index 1bf4a58..f765a50 100644
>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>> @@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
>>> const struct spi_device_id *id = spi_get_device_id(spi);
>>>
>>> return st_lsm6dsx_probe(&spi->dev, spi->irq,
>>> - (int)id->driver_data,
>>> + (int)id->driver_data, id->name,
>>> &st_lsm6dsx_transfer_fn);
>>> }
>>>
>>>
>>
>
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name
2017-04-03 20:05 ` Jonathan Cameron
@ 2017-04-03 20:13 ` Lorenzo Bianconi
2017-04-08 17:10 ` Jonathan Cameron
0 siblings, 1 reply; 6+ messages in thread
From: Lorenzo Bianconi @ 2017-04-03 20:13 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-iio, Lorenzo BIANCONI
> On 03/04/17 21:02, Lorenzo Bianconi wrote:
>>> On 03/04/17 18:27, Lorenzo Bianconi wrote:
>>>> Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
>>>> instead of a generic one (lsm6dsx)
>>>>
>>>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
>>> Hmm. Always a fun one. Technically this is changing a userspace
>>> ABI so is a problem unless we think no one will notice...
>>>
>>
>> Right.
>>
>>> The question is whether the gain is worth the potential risk?
>>
>> In this way we can support multiple chips at the same time (e.g.
>> lsm6dsm_accel and lsm6ds3h_gyro).
>> I needed that change when I had to support two different devices at
>> the same time, in particular lsm6dsm + lsm6ds3h.
>> What do you think? Does it worth? Fine if you think it does not :)
> There are lots of other ways of identifying devices, this one is
> just a convenience really....
>
> Lets leave it a few days and see if anyone else chips in.
Fine,
regards,
Lorenzo
>
> Jonathan
>>
>> Regards,
>> Lorenzo
>>
>>>
>>> What do people think?
>>>
>>> J
>>>> ---
>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +++-
>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 14 +++++++++-----
>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 2 +-
>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 2 +-
>>>> 4 files changed, 14 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>>> index 6a9849e..4839db7 100644
>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>>> @@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
>>>>
>>>> /**
>>>> * struct st_lsm6dsx_sensor - ST IMU sensor instance
>>>> + * @name: Sensor name.
>>>> * @id: Sensor identifier.
>>>> * @hw: Pointer to instance of struct st_lsm6dsx_hw.
>>>> * @gain: Configured sensor sensitivity.
>>>> @@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
>>>> * @ts: Latest timestamp from the interrupt handler.
>>>> */
>>>> struct st_lsm6dsx_sensor {
>>>> + char name[32];
>>>> enum st_lsm6dsx_sensor_id id;
>>>> struct st_lsm6dsx_hw *hw;
>>>>
>>>> @@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
>>>> #endif /* CONFIG_SPI_MASTER */
>>>> };
>>>>
>>>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>>>> const struct st_lsm6dsx_transfer_function *tf_ops);
>>>> int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
>>>> int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>>> index f80a3d4..98b51d7 100644
>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>>> @@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
>>>> }
>>>>
>>>> static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>>>> - enum st_lsm6dsx_sensor_id id)
>>>> + enum st_lsm6dsx_sensor_id id,
>>>> + const char *name)
>>>> {
>>>> struct st_lsm6dsx_sensor *sensor;
>>>> struct iio_dev *iio_dev;
>>>> @@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>>>> case ST_LSM6DSX_ID_ACC:
>>>> iio_dev->channels = st_lsm6dsx_acc_channels;
>>>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
>>>> - iio_dev->name = "lsm6dsx_accel";
>>>> iio_dev->info = &st_lsm6dsx_acc_info;
>>>>
>>>> sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
>>>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
>>>> + name);
>>>> break;
>>>> case ST_LSM6DSX_ID_GYRO:
>>>> iio_dev->channels = st_lsm6dsx_gyro_channels;
>>>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
>>>> - iio_dev->name = "lsm6dsx_gyro";
>>>> iio_dev->info = &st_lsm6dsx_gyro_info;
>>>>
>>>> sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
>>>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
>>>> + name);
>>>> break;
>>>> default:
>>>> return NULL;
>>>> }
>>>> + iio_dev->name = sensor->name;
>>>>
>>>> return iio_dev;
>>>> }
>>>>
>>>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>>>> const struct st_lsm6dsx_transfer_function *tf_ops)
>>>> {
>>>> struct st_lsm6dsx_hw *hw;
>>>> @@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>>> return err;
>>>>
>>>> for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
>>>> - hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i);
>>>> + hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
>>>> if (!hw->iio_devs[i])
>>>> return -ENOMEM;
>>>> }
>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>>> index 2e4ed26..09a51cf 100644
>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>>> @@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
>>>> const struct i2c_device_id *id)
>>>> {
>>>> return st_lsm6dsx_probe(&client->dev, client->irq,
>>>> - (int)id->driver_data,
>>>> + (int)id->driver_data, id->name,
>>>> &st_lsm6dsx_transfer_fn);
>>>> }
>>>>
>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>>> index 1bf4a58..f765a50 100644
>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>>> @@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
>>>> const struct spi_device_id *id = spi_get_device_id(spi);
>>>>
>>>> return st_lsm6dsx_probe(&spi->dev, spi->irq,
>>>> - (int)id->driver_data,
>>>> + (int)id->driver_data, id->name,
>>>> &st_lsm6dsx_transfer_fn);
>>>> }
>>>>
>>>>
>>>
>>
>>
>>
>
--
UNIX is Sexy: who | grep -i blonde | talk; cd ~; wine; talk; touch;
unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; gasp;
umount; make clean; sleep
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name
2017-04-03 20:13 ` Lorenzo Bianconi
@ 2017-04-08 17:10 ` Jonathan Cameron
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2017-04-08 17:10 UTC (permalink / raw)
To: Lorenzo Bianconi; +Cc: linux-iio, Lorenzo BIANCONI
On 03/04/17 21:13, Lorenzo Bianconi wrote:
>> On 03/04/17 21:02, Lorenzo Bianconi wrote:
>>>> On 03/04/17 18:27, Lorenzo Bianconi wrote:
>>>>> Use the correct chip name (e.g. lsm6dsm) as suffix for iio_dev name
>>>>> instead of a generic one (lsm6dsx)
>>>>>
>>>>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
>>>> Hmm. Always a fun one. Technically this is changing a userspace
>>>> ABI so is a problem unless we think no one will notice...
>>>>
>>>
>>> Right.
>>>
>>>> The question is whether the gain is worth the potential risk?
>>>
>>> In this way we can support multiple chips at the same time (e.g.
>>> lsm6dsm_accel and lsm6ds3h_gyro).
>>> I needed that change when I had to support two different devices at
>>> the same time, in particular lsm6dsm + lsm6ds3h.
>>> What do you think? Does it worth? Fine if you think it does not :)
>> There are lots of other ways of identifying devices, this one is
>> just a convenience really....
>>
>> Lets leave it a few days and see if anyone else chips in.
>
> Fine,
> regards,
>
> Lorenzo
Ah well. No one else cares ;)
Applied to the togreg branch of iio.git. We'll see if
anyone screams.
Jonathan
>
>>
>> Jonathan
>>>
>>> Regards,
>>> Lorenzo
>>>
>>>>
>>>> What do people think?
>>>>
>>>> J
>>>>> ---
>>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +++-
>>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 14 +++++++++-----
>>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 2 +-
>>>>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 2 +-
>>>>> 4 files changed, 14 insertions(+), 8 deletions(-)
>>>>>
>>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>>>> index 6a9849e..4839db7 100644
>>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
>>>>> @@ -71,6 +71,7 @@ enum st_lsm6dsx_fifo_mode {
>>>>>
>>>>> /**
>>>>> * struct st_lsm6dsx_sensor - ST IMU sensor instance
>>>>> + * @name: Sensor name.
>>>>> * @id: Sensor identifier.
>>>>> * @hw: Pointer to instance of struct st_lsm6dsx_hw.
>>>>> * @gain: Configured sensor sensitivity.
>>>>> @@ -83,6 +84,7 @@ enum st_lsm6dsx_fifo_mode {
>>>>> * @ts: Latest timestamp from the interrupt handler.
>>>>> */
>>>>> struct st_lsm6dsx_sensor {
>>>>> + char name[32];
>>>>> enum st_lsm6dsx_sensor_id id;
>>>>> struct st_lsm6dsx_hw *hw;
>>>>>
>>>>> @@ -133,7 +135,7 @@ struct st_lsm6dsx_hw {
>>>>> #endif /* CONFIG_SPI_MASTER */
>>>>> };
>>>>>
>>>>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>>>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>>>>> const struct st_lsm6dsx_transfer_function *tf_ops);
>>>>> int st_lsm6dsx_sensor_enable(struct st_lsm6dsx_sensor *sensor);
>>>>> int st_lsm6dsx_sensor_disable(struct st_lsm6dsx_sensor *sensor);
>>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>>>> index f80a3d4..98b51d7 100644
>>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
>>>>> @@ -642,7 +642,8 @@ static int st_lsm6dsx_init_device(struct st_lsm6dsx_hw *hw)
>>>>> }
>>>>>
>>>>> static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>>>>> - enum st_lsm6dsx_sensor_id id)
>>>>> + enum st_lsm6dsx_sensor_id id,
>>>>> + const char *name)
>>>>> {
>>>>> struct st_lsm6dsx_sensor *sensor;
>>>>> struct iio_dev *iio_dev;
>>>>> @@ -666,27 +667,30 @@ static struct iio_dev *st_lsm6dsx_alloc_iiodev(struct st_lsm6dsx_hw *hw,
>>>>> case ST_LSM6DSX_ID_ACC:
>>>>> iio_dev->channels = st_lsm6dsx_acc_channels;
>>>>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_acc_channels);
>>>>> - iio_dev->name = "lsm6dsx_accel";
>>>>> iio_dev->info = &st_lsm6dsx_acc_info;
>>>>>
>>>>> sensor->decimator_mask = ST_LSM6DSX_REG_ACC_DEC_MASK;
>>>>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_accel",
>>>>> + name);
>>>>> break;
>>>>> case ST_LSM6DSX_ID_GYRO:
>>>>> iio_dev->channels = st_lsm6dsx_gyro_channels;
>>>>> iio_dev->num_channels = ARRAY_SIZE(st_lsm6dsx_gyro_channels);
>>>>> - iio_dev->name = "lsm6dsx_gyro";
>>>>> iio_dev->info = &st_lsm6dsx_gyro_info;
>>>>>
>>>>> sensor->decimator_mask = ST_LSM6DSX_REG_GYRO_DEC_MASK;
>>>>> + scnprintf(sensor->name, sizeof(sensor->name), "%s_gyro",
>>>>> + name);
>>>>> break;
>>>>> default:
>>>>> return NULL;
>>>>> }
>>>>> + iio_dev->name = sensor->name;
>>>>>
>>>>> return iio_dev;
>>>>> }
>>>>>
>>>>> -int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>>>> +int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id, const char *name,
>>>>> const struct st_lsm6dsx_transfer_function *tf_ops)
>>>>> {
>>>>> struct st_lsm6dsx_hw *hw;
>>>>> @@ -710,7 +714,7 @@ int st_lsm6dsx_probe(struct device *dev, int irq, int hw_id,
>>>>> return err;
>>>>>
>>>>> for (i = 0; i < ST_LSM6DSX_ID_MAX; i++) {
>>>>> - hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i);
>>>>> + hw->iio_devs[i] = st_lsm6dsx_alloc_iiodev(hw, i, name);
>>>>> if (!hw->iio_devs[i])
>>>>> return -ENOMEM;
>>>>> }
>>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>>>> index 2e4ed26..09a51cf 100644
>>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c
>>>>> @@ -61,7 +61,7 @@ static int st_lsm6dsx_i2c_probe(struct i2c_client *client,
>>>>> const struct i2c_device_id *id)
>>>>> {
>>>>> return st_lsm6dsx_probe(&client->dev, client->irq,
>>>>> - (int)id->driver_data,
>>>>> + (int)id->driver_data, id->name,
>>>>> &st_lsm6dsx_transfer_fn);
>>>>> }
>>>>>
>>>>> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>>>> index 1bf4a58..f765a50 100644
>>>>> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>>>> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c
>>>>> @@ -78,7 +78,7 @@ static int st_lsm6dsx_spi_probe(struct spi_device *spi)
>>>>> const struct spi_device_id *id = spi_get_device_id(spi);
>>>>>
>>>>> return st_lsm6dsx_probe(&spi->dev, spi->irq,
>>>>> - (int)id->driver_data,
>>>>> + (int)id->driver_data, id->name,
>>>>> &st_lsm6dsx_transfer_fn);
>>>>> }
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-04-08 17:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-03 17:27 [PATCH] iio: imu: st_lsm6dsx: use i2c/spi device name for iio_dev name Lorenzo Bianconi
2017-04-03 19:43 ` Jonathan Cameron
2017-04-03 20:02 ` Lorenzo Bianconi
2017-04-03 20:05 ` Jonathan Cameron
2017-04-03 20:13 ` Lorenzo Bianconi
2017-04-08 17:10 ` Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.