On Mon, Jul 4, 2022 at 12:03 AM Jakob Hauser <jahau@xxxxxxxxxxxxxx> wrote: > > This commit gathers several minor changes. > > In the device examples, "Xiaomi" is too generic, specific devices should be > listed here. E.g. Xiaomi Redmi 2 seems to have YAS537 but it's not fully clear > if this applies to all its variants. Samsung Galaxy S7 is often quoted in > conjunction with YAS537. > > Removed defines for device IDs of YAS537 and YAS539, they are not needed so far. Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Signed-off-by: Jakob Hauser <jahau@xxxxxxxxxxxxxx> > --- > drivers/iio/magnetometer/yamaha-yas530.c | 21 +++++++++++---------- > 1 file changed, 11 insertions(+), 10 deletions(-) > > diff --git a/drivers/iio/magnetometer/yamaha-yas530.c b/drivers/iio/magnetometer/yamaha-yas530.c > index 8358d4b3d1e2..4e2f460a4efd 100644 > --- a/drivers/iio/magnetometer/yamaha-yas530.c > +++ b/drivers/iio/magnetometer/yamaha-yas530.c > @@ -10,7 +10,7 @@ > * (YAS534 is a magnetic switch, not handled) > * YAS535 MS-6C > * YAS536 MS-3W > - * YAS537 MS-3T (2015 Samsung Galaxy S6, Note 5, Xiaomi) > + * YAS537 MS-3T (2015 Samsung Galaxy S6, Note 5, Galaxy S7) > * YAS539 MS-3S (2018 Samsung Galaxy A7 SM-A750FN) > * > * Code functions found in the MPU3050 YAS530 and YAS532 drivers > @@ -93,10 +93,6 @@ > #define YAS532_DATA_OVERFLOW (BIT(YAS532_DATA_BITS) - 1) > #define YAS532_20DEGREES 390 /* Counts starting at -50 °C */ > > -/* These variant IDs are known from code dumps */ > -#define YAS537_DEVICE_ID 0x07 /* YAS537 (MS-3T) */ > -#define YAS539_DEVICE_ID 0x08 /* YAS539 (MS-3S) */ > - > /* Turn off device regulators etc after 5 seconds of inactivity */ > #define YAS5XX_AUTOSUSPEND_DELAY_MS 5000 > > @@ -323,7 +319,7 @@ static int yas530_get_measure(struct yas5xx *yas5xx, s32 *to, s32 *xo, s32 *yo, > { > struct yas5xx_calibration *c = &yas5xx->calibration; > u16 t_ref, t, x, y1, y2; > - /* These are "signed x, signed y1 etc */ > + /* These are signed x, signed y1 etc */ > s32 sx, sy1, sy2, sy, sz; > int ret; > > @@ -663,7 +659,10 @@ static int yas530_get_calibration_data(struct yas5xx *yas5xx) > return ret; > dev_dbg(yas5xx->dev, "calibration data: %16ph\n", data); > > + /* Contribute calibration data to the input pool for kernel entropy */ > add_device_randomness(data, sizeof(data)); > + > + /* Extract version */ > yas5xx->version = data[15] & GENMASK(1, 0); > > /* Extract the calibration from the bitfield */ > @@ -690,6 +689,7 @@ static int yas530_get_calibration_data(struct yas5xx *yas5xx) > c->r[0] = sign_extend32(FIELD_GET(GENMASK(28, 23), val), 5); > c->r[1] = sign_extend32(FIELD_GET(GENMASK(20, 15), val), 5); > c->r[2] = sign_extend32(FIELD_GET(GENMASK(12, 7), val), 5); > + > return 0; > } > > @@ -711,12 +711,12 @@ static int yas532_get_calibration_data(struct yas5xx *yas5xx) > dev_dbg(yas5xx->dev, "calibration data: %14ph\n", data); > > /* Sanity check, is this all zeroes? */ > - if (memchr_inv(data, 0x00, 13) == NULL) { > - if (!(data[13] & BIT(7))) > - dev_warn(yas5xx->dev, "calibration is blank!\n"); > - } > + if (!memchr_inv(data, 0x00, 13) && !(data[13] & BIT(7))) > + dev_warn(yas5xx->dev, "calibration is blank!\n"); > > + /* Contribute calibration data to the input pool for kernel entropy */ > add_device_randomness(data, sizeof(data)); > + > /* Only one bit of version info reserved here as far as we know */ > yas5xx->version = data[13] & BIT(0); > > @@ -725,6 +725,7 @@ static int yas532_get_calibration_data(struct yas5xx *yas5xx) > c->Cy1 = data[1] * 10 - 1280; > c->Cy2 = data[2] * 10 - 1280; > yas530_extract_calibration(&data[3], c); > + > /* > * Extract linearization: > * Linearization layout in the 32 bits at byte 10: > -- > 2.35.1 > -- With Best Regards, Andy Shevchenko