Re: sysfs mount_matrix for st_lsm6dsx gyro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 12 Jan 2023 12:32:11 +0100
Lorenzo Bianconi <lorenzo@xxxxxxxxxx> wrote:

> > Hello Lorenzo,
> > 
> > On Thu, Jan 12, 2023 at 10:51:03AM +0100, Lorenzo Bianconi wrote:  
> > > Date: Thu, 12 Jan 2023 10:51:03 +0100
> > > From: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>
> > > To: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > > Cc: Philippe De Muyter <phdm@xxxxxxx>, linux-iio@xxxxxxxxxxxxxxx
> > > Subject: Re: sysfs mount_matrix for st_lsm6dsx gyro
> > >   
> > > > On Wed, 11 Jan 2023 13:09:40 +0100
> > > > Philippe De Muyter <phdm@xxxxxxx> wrote:
> > > >   
> > > > > Hello Lorenzo and list,
> > > > > 
> > > > > I do not find a "*mount_matrix" entry in sysfs for a 'ism330dlc_gyro'
> > > > > iio device.
> > > > > Is that normal ?
> > > > > Is a fix available ?  
> > > > 
> > > > Looks like the channel definition for the gyro does not include an
> > > > appropriate ext_info entry unlike the accelerometer channels which
> > > > have one with mount_matrix support.
> > > > 
> > > > From a quick glance looks like a simple fix. Add that entry.  
> > > 
> > > I am not sure if accel and gyro can be mounted with a different orientation.
> > > Do you think we should have a per-sensor mount_matrix?  
> > 
> > My chip is a 'ism330dlc'.  It's one chip containing an accel and a gyro,
> > so the mount_matrix should be the same for the accel and the gyro.
> > Unfortunately the accel and the gyro are presented in /sysfs as two
> > separate devices, and only the accel one has a 'mount_matrix' entry.
> > So a user looking for any gyro will find the gyro entry, but without
> > 'mount_matrix'.
> > 
> > I have followed Jonathan's proposal and added this simple patch in
> > the definition of the ST_LSM6DSX_CHANNEL macro :
> > 
> > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> > index d80ba2e688ed..9d18145d5041 100644
> > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
> > @@ -96,6 +96,7 @@ enum st_lsm6dsx_hw_id {
> >  		.storagebits = 16,                                      \
> >  		.endianness = IIO_LE,                                   \
> > 	},                                                              \
> > +	.ext_info = st_lsm6dsx_accel_ext_info,                          \
> >  }  
> 
> I am fine with this approach, probably having a per-sensor mount_matrix is
> unnecessary. Can you please just rename st_lsm6dsx_accel_ext_info in
> st_lsm6dsx_ext_info?
> 
> Regards,
> Lorenzo
> 
> > 
> >  struct st_lsm6dsx_reg {
> > 
> > Another fix would be to create only one chip entry in sysfs, but that's
> > above my knowledge of this driver.

We can't make that change. It would be ABI breakage - userspace code would
stop working.  

Jonathan

> > 
> > Best regards
> > 
> > Philippe  
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux