On 03/12, Pandruvada, Srinivas wrote: > On Wed, 2018-03-07 at 20:20 +0000, Jonathan Cameron wrote: > > On Tue, 6 Mar 2018 09:00:11 -0300 > > Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx> wrote: > > > > > The magn_3d_channels array has multiple declarations of > > > iio_chan_spec. > > > Most of the iio_chan_spec are very similar, changing only by the > > > .type > > > and .channel2 field. This patch reduces the code duplication by > > > adding a > > > macro that can replace the iio_chan_spec repetitions in the > > > magn_3d_channels array. > > I don't think it was tested otherwise channel registration would have > failed. See below. Hi, Sorry for the mistake, I did not test it because I don't have the hardware. I'll be more cautious. Thanks for your review. I will send a v2. > > > > > > Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx> > > > > Whilst this looks fine to me, I'd like Srinivas to take a look before > > I apply it as this is his driver. Please do make sure to cc the > > author. > > Whilst many such email addresses bounce as they have moved on they > > don't always. > > > > Jonathan > > > > > --- > > > drivers/iio/magnetometer/hid-sensor-magn-3d.c | 83 ++++++--------- > > > ------------ > > > 1 file changed, 19 insertions(+), 64 deletions(-) > > > > > > diff --git a/drivers/iio/magnetometer/hid-sensor-magn-3d.c > > > b/drivers/iio/magnetometer/hid-sensor-magn-3d.c > > > index a1fd9d591818..fff64711a6c8 100644 > > > --- a/drivers/iio/magnetometer/hid-sensor-magn-3d.c > > > +++ b/drivers/iio/magnetometer/hid-sensor-magn-3d.c > > > @@ -74,72 +74,27 @@ static const u32 > > > magn_3d_addresses[MAGN_3D_CHANNEL_MAX] = { > > > HID_USAGE_SENSOR_ORIENT_TRUE_NORTH, > > > }; > > > > > > +#define HID_SENSOR_MAGN_3D_AXIS_CHANNEL(channel_type, > > > characteristic) \ > > > + { > > > \ > > > + .type = channel_type, > > > \ > > > + .modified = 1, > > > \ > > > + .channel2 = characteristic, > > > \ > > > + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > \ > > > + .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | \ > > > + BIT(IIO_CHAN_INFO_SCALE) | > > > \ > > > + BIT(IIO_CHAN_INFO_SAMP_FRE > > > Q) | \ > > > + BIT(IIO_CHAN_INFO_HYSTERES > > > IS), \ > > > + } > > > \ > > > + > > > /* Channel definitions */ > > > static const struct iio_chan_spec magn_3d_channels[] = { > > > - { > > > - .type = IIO_MAGN, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_X, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - }, { > > > - .type = IIO_MAGN, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_Y, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - }, { > > > - .type = IIO_MAGN, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_Z, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - }, { > > > - .type = IIO_ROT, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_NORTH_MAGN_TILT_COMP, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - }, { > > > - .type = IIO_ROT, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_NORTH_TRUE_TILT_COMP, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - }, { > > > - .type = IIO_ROT, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_NORTH_MAGN, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - }, { > > > - .type = IIO_ROT, > > > - .modified = 1, > > > - .channel2 = IIO_MOD_NORTH_TRUE, > > > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), > > > - .info_mask_shared_by_type = > > > BIT(IIO_CHAN_INFO_OFFSET) | > > > - BIT(IIO_CHAN_INFO_SCALE) | > > > - BIT(IIO_CHAN_INFO_SAMP_FREQ) | > > > - BIT(IIO_CHAN_INFO_HYSTERESIS), > > > - } > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_MAGN, IIO_MOD_X), > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_MAGN, IIO_MOD_Y), > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_MAGN, IIO_MOD_Z), > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_ROT, > > > IIO_MOD_NORTH_MAGN_TILT_COMP), > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_ROT, > > > IIO_MOD_NORTH_TRUE_TILT_COMP), > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_ROT, > > > IIO_MOD_NORTH_MAGN), > > > + HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_ROT, > > > IIO_MOD_NORTH_MAGN), > It should be > HID_SENSOR_MAGN_3D_AXIS_CHANNEL(IIO_ROT, IIO_MOD_NORTH_TRUE) > > Thanks, > Srinivas -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html