All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20180712154505.00000f4a@huawei.com>

diff --git a/a/1.txt b/N1/1.txt
index a608f33..0716bf1 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -4,30 +4,31 @@ Brian Masney <masneyb@onstation.org> wrote:
 > On Wed, Jul 11, 2018 at 12:29:33PM +0000, Jean-Baptiste Maneyrol wrote:
 > > Hello,
 > >
- 
+=20
 > > I really don't like the idea to have regulator handled inside the
 > > driver. I know this was done like that before for Nexus 5, but I
 > > think now this is something that can be done using dts only. Does
 > > anyone know if there is a way with dts to handle regulator
 > > automatically and prevent the use in the driver? That would be a
 > > good idea to search how this handled for other drivers.
-> > 
+> >=20
 > > Anyway, you are enforcing regulator use in your code. It doesn't
 > > seem the code will work when there is no regulator declared in the
 > > dts, which is the case for the majority of configurations. We
 > > should at least make it optional.
-> > 
-> > Thanks for the contribution.  
-> 
+> >=20
+> > Thanks for the contribution. =20
+>=20
 
 > My understanding of devm_regulator_get_optional() is that a stub
 > regulator will be returned if one is not configured. See the comment
 > above regulator_get_optional() for where I got this information.
-> 
-> https://elixir.bootlin.com/linux/v4.17/source/drivers/regulator/core.c#L1750
+>=20
+> https://elixir.bootlin.com/linux/v4.17/source/drivers/regulator/core.c#L1=
+750
 
 Quite the opposite (though the text is perhaps less than crystal clear)
- - reread that comment really carefully. 
+ - reread that comment really carefully.=20
 
  * This is intended for use by consumers for devices which can have
  * some supplies unconnected in normal use, such as some MMC devices.
@@ -41,7 +42,7 @@ optional versions are used, it will return an error if they aren't there
 - thus letting the driver decide what to do about it.
 
 
-> 
+>=20
 > I agree that it would be better if this could be handled exclusively in
 > dts if possible, although I'm not sure how. I looked at other drivers
 > and commits from the last year or so and this appears to be the current
@@ -57,253 +58,300 @@ in the driver.  Only a driver can know what the effect of turning
 a particular power supply to a device off actually is.
 
 Jonathan
- 
-> 
+=20
+>=20
 > Brian
-> 
-> 
+>=20
+>=20
 > >
-> > 
+> >=20
 > > From: Brian Masney <masneyb@onstation.org>
 > > Sent: Wednesday, July 11, 2018 03:09
-> > To: jic23@kernel.org; robh+dt@kernel.org; mark.rutland@arm.com; andy.gross@linaro.org; david.brown@linaro.org; linux-iio@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-msm@vger.kernel.org; linux-soc@vger.kernel.org
-> > Cc: jonathan@marek.ca; Jean-Baptiste Maneyrol; knaack.h@gmx.de; lars@metafoo.de; pmeerw@pmeerw.net; mkelly@xevo.com; fischerdouglasc@gmail.com; bshah@kde.org; ctatlor97@gmail.com; masneyb@onstation.org
-> > Subject: [PATCH 2/3] iio: imu: mpu6050: add support for regulator framework
-> >   
-> > 
-> > CAUTION: This email originated from outside of the organization. Please make sure the sender is who they say they are and do not click links or open attachments unless you recognize the sender and know the content is safe.
-> > 
-> > 
+> > To: jic23@kernel.org; robh+dt@kernel.org; mark.rutland@arm.com; andy.gr=
+oss@linaro.org; david.brown@linaro.org; linux-iio@vger.kernel.org; devicetr=
+ee@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-msm@vger.kernel=
+.org; linux-soc@vger.kernel.org
+> > Cc: jonathan@marek.ca; Jean-Baptiste Maneyrol; knaack.h@gmx.de; lars@me=
+tafoo.de; pmeerw@pmeerw.net; mkelly@xevo.com; fischerdouglasc@gmail.com; bs=
+hah@kde.org; ctatlor97@gmail.com; masneyb@onstation.org
+> > Subject: [PATCH 2/3] iio: imu: mpu6050: add support for regulator frame=
+work
+> > =A0=20
+> >=20
+> > CAUTION: This email originated from outside of the organization. Please=
+ make sure the sender is who they say they are and do not click links or op=
+en attachments unless you recognize the sender and know the content is safe.
+> >=20
+> >=20
 > > This patch adds support for the regulator framework to the mpu6050
 > > driver.
-> > 
+> >=20
 > > Signed-off-by: Brian Masney <masneyb@onstation.org>
 > > Signed-off-by: Jonathan Marek <jonathan@marek.ca>
 > > ---
 > > This is a variation of Jonathan Marek's patch from postmarketOS
-> > https://gitlab.com/postmarketOS/linux-postmarketos/commit/b8ad1ec1859c8bbcbce94944b3f4dd68f8f9fc37
+> > https://gitlab.com/postmarketOS/linux-postmarketos/commit/b8ad1ec1859c8=
+bbcbce94944b3f4dd68f8f9fc37
 > > with the following changes:
-> > 
+> >=20
 > > - Stripped out 6515 variant code. (See my previous patch in this series)
 > > - Add the regulator to the mpu core instead of only the i2c variant.
 > > - Add error handling.
 > > - Release the regulator on suspend, device remove, etc.
 > > - Device tree documentation.
-> > 
-> >  .../bindings/iio/imu/inv_mpu6050.txt          |  1 +
-> >  drivers/iio/imu/inv_mpu6050/inv_mpu_core.c    | 57 +++++++++++++++++--
-> >  drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c     |  2 +-
-> >  drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h     |  3 +
-> >  drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c     |  9 +++
-> >  5 files changed, 66 insertions(+), 6 deletions(-)
-> > 
-> > diff --git a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
+> >=20
+> > =A0.../bindings/iio/imu/inv_mpu6050.txt=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0=
+ 1 +
+> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_core.c=A0=A0=A0 | 57 +++++++++++=
+++++++--
+> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c=A0=A0=A0=A0 |=A0 2 +-
+> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h=A0=A0=A0=A0 |=A0 3 +
+> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c=A0=A0=A0=A0 |=A0 9 +++
+> > =A05 files changed, 66 insertions(+), 6 deletions(-)
+> >=20
+> > diff --git a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt =
+b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
 > > index b7def51c8ad9..d39907b12a46 100644
 > > --- a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
 > > +++ b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
 > > @@ -21,6 +21,7 @@ Required properties:
-> >    bindings.
-> > 
-> >  Optional properties:
+> > =A0=A0 bindings.
+> >=20
+> > =A0Optional properties:
 > > + - vddio-supply: regulator phandle for VDDIO supply
-> >   - mount-matrix: an optional 3x3 mounting rotation matrix
-> >   - i2c-gate node.  These devices also support an auxiliary i2c bus.  This is
-> >     simple enough to be described using the i2c-gate binding. See
-> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+> > =A0 - mount-matrix: an optional 3x3 mounting rotation matrix
+> > =A0 - i2c-gate node.=A0 These devices also support an auxiliary i2c bus=
+.=A0 This is
+> > =A0=A0=A0 simple enough to be described using the i2c-gate binding. See
+> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/i=
+mu/inv_mpu6050/inv_mpu_core.c
 > > index 12c1b9507007..ec276b7bcc69 100644
 > > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
 > > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
 > > @@ -23,6 +23,7 @@
-> >  #include <linux/iio/iio.h>
-> >  #include <linux/acpi.h>
-> >  #include <linux/platform_device.h>
+> > =A0#include <linux/iio/iio.h>
+> > =A0#include <linux/acpi.h>
+> > =A0#include <linux/platform_device.h>
 > > +#include <linux/regulator/consumer.h>
-> >  #include "inv_mpu_iio.h"
-> > 
-> >  /*
-> > @@ -926,6 +927,19 @@ static int inv_check_and_setup_chip(struct inv_mpu6050_state *st)
-> >         return result;
-> >  }
-> > 
+> > =A0#include "inv_mpu_iio.h"
+> >=20
+> > =A0/*
+> > @@ -926,6 +927,19 @@ static int inv_check_and_setup_chip(struct inv_mpu=
+6050_state *st)
+> > =A0=A0=A0=A0=A0=A0=A0 return result;
+> > =A0}
+> >=20
 > > +static int inv_mpu_core_enable_regulator(struct inv_mpu6050_state *st)
 > > +{
-> > +       int result;
+> > +=A0=A0=A0=A0=A0=A0 int result;
 > > +
-> > +       result = regulator_enable(st->vddio_supply);
-> > +       if (result == 0) {
-> > +               /* Give the device a little bit of time to start up. */
-> > +               usleep_range(35000, 70000);
-> > +       }
+> > +=A0=A0=A0=A0=A0=A0 result =3D regulator_enable(st->vddio_supply);
+> > +=A0=A0=A0=A0=A0=A0 if (result =3D=3D 0) {
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 /* Give the device a little=
+ bit of time to start up. */
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 usleep_range(35000, 70000);
+> > +=A0=A0=A0=A0=A0=A0 }
 > > +
-> > +       return result;
+> > +=A0=A0=A0=A0=A0=A0 return result;
 > > +}
 > > +
-> >  int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
-> >                 int (*inv_mpu_bus_setup)(struct iio_dev *), int chip_type)
-> >  {
-> > @@ -990,15 +1004,28 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
-> >                 return -EINVAL;
-> >         }
-> > 
-> > +       st->vddio_supply = devm_regulator_get_optional(dev, "vddio");
-> > +       if (IS_ERR(st->vddio_supply)) {
-> > +               if (PTR_ERR(st->vddio_supply) != -EPROBE_DEFER)
-> > +                       dev_err(dev, "Failed to get vddio regulator %d\n",
-> > +                               (int)PTR_ERR(st->vddio_supply));
+> > =A0int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *n=
+ame,
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int (*inv_mpu_bus_setup)(=
+struct iio_dev *), int chip_type)
+> > =A0{
+> > @@ -990,15 +1004,28 @@ int inv_mpu_core_probe(struct regmap *regmap, in=
+t irq, const char *name,
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return -EINVAL;
+> > =A0=A0=A0=A0=A0=A0=A0 }
+> >=20
+> > +=A0=A0=A0=A0=A0=A0 st->vddio_supply =3D devm_regulator_get_optional(de=
+v, "vddio");
+> > +=A0=A0=A0=A0=A0=A0 if (IS_ERR(st->vddio_supply)) {
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (PTR_ERR(st->vddio_suppl=
+y) !=3D -EPROBE_DEFER)
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev=
+_err(dev, "Failed to get vddio regulator %d\n",
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
+=A0=A0=A0=A0=A0=A0=A0 (int)PTR_ERR(st->vddio_supply));
 > > +
-> > +               return PTR_ERR(st->vddio_supply);
-> > +       }
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return PTR_ERR(st->vddio_su=
+pply);
+> > +=A0=A0=A0=A0=A0=A0 }
 > > +
-> > +       result = inv_mpu_core_enable_regulator(st);
-> > +       if (result)
-> > +               return result;
+> > +=A0=A0=A0=A0=A0=A0 result =3D inv_mpu_core_enable_regulator(st);
+> > +=A0=A0=A0=A0=A0=A0 if (result)
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;
 > > +
-> >         /* power is turned on inside check chip type*/
-> >         result = inv_check_and_setup_chip(st);
-> >         if (result)
-> > -               return result;
-> > +               goto out_disable_regulator;
-> > 
-> >         result = inv_mpu6050_init_config(indio_dev);
-> >         if (result) {
-> >                 dev_err(dev, "Could not initialize device.\n");
-> > -               return result;
-> > +               goto out_disable_regulator;
-> >         }
-> > 
-> >         if (inv_mpu_bus_setup)
-> > @@ -1023,24 +1050,34 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
-> >                                                  NULL);
-> >         if (result) {
-> >                 dev_err(dev, "configure buffer fail %d\n", result);
-> > -               return result;
-> > +               goto out_disable_regulator;
-> >         }
-> >         result = inv_mpu6050_probe_trigger(indio_dev, irq_type);
-> >         if (result) {
-> >                 dev_err(dev, "trigger probe fail %d\n", result);
-> > -               return result;
-> > +               goto out_disable_regulator;
-> >         }
-> > 
-> >         result = devm_iio_device_register(dev, indio_dev);
-> >         if (result) {
-> >                 dev_err(dev, "IIO register fail %d\n", result);
-> > -               return result;
-> > +               goto out_disable_regulator;
-> >         }
-> > 
-> >         return 0;
+> > =A0=A0=A0=A0=A0=A0=A0 /* power is turned on inside check chip type*/
+> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_check_and_setup_chip(st);
+> > =A0=A0=A0=A0=A0=A0=A0 if (result)
+> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_init_config(indio_dev);
+> > =A0=A0=A0=A0=A0=A0=A0 if (result) {
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, "Could not i=
+nitialize device.\n");
+> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;
+> > =A0=A0=A0=A0=A0=A0=A0 }
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 if (inv_mpu_bus_setup)
+> > @@ -1023,24 +1050,34 @@ int inv_mpu_core_probe(struct regmap *regmap, i=
+nt irq, const char *name,
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
+ NULL);
+> > =A0=A0=A0=A0=A0=A0=A0 if (result) {
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, "configure b=
+uffer fail %d\n", result);
+> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;
+> > =A0=A0=A0=A0=A0=A0=A0 }
+> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_probe_trigger(indio_dev, i=
+rq_type);
+> > =A0=A0=A0=A0=A0=A0=A0 if (result) {
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, "trigger pro=
+be fail %d\n", result);
+> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;
+> > =A0=A0=A0=A0=A0=A0=A0 }
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 result =3D devm_iio_device_register(dev, indio_de=
+v);
+> > =A0=A0=A0=A0=A0=A0=A0 if (result) {
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, "IIO registe=
+r fail %d\n", result);
+> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;
+> > =A0=A0=A0=A0=A0=A0=A0 }
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 return 0;
 > > +
 > > +out_disable_regulator:
-> > +       regulator_disable(st->vddio_supply);
-> > +       return result;
+> > +=A0=A0=A0=A0=A0=A0 regulator_disable(st->vddio_supply);
+> > +=A0=A0=A0=A0=A0=A0 return result;
 > > +
-> >  }
-> >  EXPORT_SYMBOL_GPL(inv_mpu_core_probe);
-> > 
+> > =A0}
+> > =A0EXPORT_SYMBOL_GPL(inv_mpu_core_probe);
+> >=20
 > > +int inv_mpu_core_remove(struct inv_mpu6050_state *st)
 > > +{
-> > +       return regulator_disable(st->vddio_supply);
+> > +=A0=A0=A0=A0=A0=A0 return regulator_disable(st->vddio_supply);
 > > +}
 > > +
-> >  #ifdef CONFIG_PM_SLEEP
-> > 
-> >  static int inv_mpu_resume(struct device *dev)
+> > =A0#ifdef CONFIG_PM_SLEEP
+> >=20
+> > =A0static int inv_mpu_resume(struct device *dev)
 > > @@ -1050,6 +1087,11 @@ static int inv_mpu_resume(struct device *dev)
-> > 
-> >         mutex_lock(&st->lock);
-> >         result = inv_mpu6050_set_power_itg(st, true);
-> > +       if (result)
-> > +               goto out_unlock;
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 mutex_lock(&st->lock);
+> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_set_power_itg(st, true);
+> > +=A0=A0=A0=A0=A0=A0 if (result)
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_unlock;
 > > +
-> > +       result = inv_mpu_core_enable_regulator(st);
+> > +=A0=A0=A0=A0=A0=A0 result =3D inv_mpu_core_enable_regulator(st);
 > > +out_unlock:
-> >         mutex_unlock(&st->lock);
-> > 
-> >         return result;
+> > =A0=A0=A0=A0=A0=A0=A0 mutex_unlock(&st->lock);
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 return result;
 > > @@ -1062,6 +1104,11 @@ static int inv_mpu_suspend(struct device *dev)
-> > 
-> >         mutex_lock(&st->lock);
-> >         result = inv_mpu6050_set_power_itg(st, false);
-> > +       if (result)
-> > +               goto out_unlock;
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 mutex_lock(&st->lock);
+> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_set_power_itg(st, false);
+> > +=A0=A0=A0=A0=A0=A0 if (result)
+> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_unlock;
 > > +
-> > +       result = regulator_disable(st->vddio_supply);
+> > +=A0=A0=A0=A0=A0=A0 result =3D regulator_disable(st->vddio_supply);
 > > +out_unlock:
-> >         mutex_unlock(&st->lock);
-> > 
-> >         return result;
-> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
+> > =A0=A0=A0=A0=A0=A0=A0 mutex_unlock(&st->lock);
+> >=20
+> > =A0=A0=A0=A0=A0=A0=A0 return result;
+> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/im=
+u/inv_mpu6050/inv_mpu_i2c.c
 > > index dd758e3d403d..ce227038c61c 100644
 > > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
 > > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
 > > @@ -164,7 +164,7 @@ static int inv_mpu_remove(struct i2c_client *client)
-> >                 i2c_mux_del_adapters(st->muxc);
-> >         }
-> > 
-> > -       return 0;
-> > +       return inv_mpu_core_remove(st);
-> >  }
-> > 
-> >  /*
-> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 i2c_mux_del_adapters(st->=
+muxc);
+> > =A0=A0=A0=A0=A0=A0=A0 }
+> >=20
+> > -=A0=A0=A0=A0=A0=A0 return 0;
+> > +=A0=A0=A0=A0=A0=A0 return inv_mpu_core_remove(st);
+> > =A0}
+> >=20
+> > =A0/*
+> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/im=
+u/inv_mpu6050/inv_mpu_iio.h
 > > index e69a59659dbc..0289615a6135 100644
 > > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
 > > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
 > > @@ -129,6 +129,7 @@ struct inv_mpu6050_hw {
-> >   *  @chip_period:      chip internal period estimation (~1kHz).
-> >   *  @it_timestamp:     timestamp from previous interrupt.
-> >   *  @data_timestamp:   timestamp for next data sample.
-> > + *  @vddio_supply      voltage regulator for the chip.
-> >   */
-> >  struct inv_mpu6050_state {
-> >         struct mutex lock;
+> > =A0 *=A0 @chip_period:=A0=A0=A0=A0=A0 chip internal period estimation (=
+~1kHz).
+> > =A0 *=A0 @it_timestamp:=A0=A0=A0=A0 timestamp from previous interrupt.
+> > =A0 *=A0 @data_timestamp:=A0=A0 timestamp for next data sample.
+> > + *=A0 @vddio_supply=A0=A0=A0=A0=A0 voltage regulator for the chip.
+> > =A0 */
+> > =A0struct inv_mpu6050_state {
+> > =A0=A0=A0=A0=A0=A0=A0 struct mutex lock;
 > > @@ -149,6 +150,7 @@ struct inv_mpu6050_state {
-> >         s64 chip_period;
-> >         s64 it_timestamp;
-> >         s64 data_timestamp;
-> > +       struct regulator *vddio_supply;
-> >  };
-> > 
-> >  /*register and associated bit definition*/
-> > @@ -321,4 +323,5 @@ int inv_mpu_acpi_create_mux_client(struct i2c_client *client);
-> >  void inv_mpu_acpi_delete_mux_client(struct i2c_client *client);
-> >  int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
-> >                 int (*inv_mpu_bus_setup)(struct iio_dev *), int chip_type);
+> > =A0=A0=A0=A0=A0=A0=A0 s64 chip_period;
+> > =A0=A0=A0=A0=A0=A0=A0 s64 it_timestamp;
+> > =A0=A0=A0=A0=A0=A0=A0 s64 data_timestamp;
+> > +=A0=A0=A0=A0=A0=A0 struct regulator *vddio_supply;
+> > =A0};
+> >=20
+> > =A0/*register and associated bit definition*/
+> > @@ -321,4 +323,5 @@ int inv_mpu_acpi_create_mux_client(struct i2c_clien=
+t *client);
+> > =A0void inv_mpu_acpi_delete_mux_client(struct i2c_client *client);
+> > =A0int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *n=
+ame,
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int (*inv_mpu_bus_setup)(=
+struct iio_dev *), int chip_type);
 > > +int inv_mpu_core_remove(struct inv_mpu6050_state *st);
-> >  extern const struct dev_pm_ops inv_mpu_pmops;
-> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
+> > =A0extern const struct dev_pm_ops inv_mpu_pmops;
+> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/im=
+u/inv_mpu6050/inv_mpu_spi.c
 > > index 227f50afff22..fce935f8f1e4 100644
 > > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
 > > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
 > > @@ -70,6 +70,14 @@ static int inv_mpu_probe(struct spi_device *spi)
-> >                                   inv_mpu_i2c_disable, chip_type);
-> >  }
-> > 
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 inv_mpu_i2c_disable, chip_type);
+> > =A0}
+> >=20
 > > +static int inv_mpu_remove(struct spi_device *spi)
 > > +{
-> > +       struct iio_dev *indio_dev = spi_get_drvdata(spi);
-> > +       struct inv_mpu6050_state *st = iio_priv(indio_dev);
+> > +=A0=A0=A0=A0=A0=A0 struct iio_dev *indio_dev =3D spi_get_drvdata(spi);
+> > +=A0=A0=A0=A0=A0=A0 struct inv_mpu6050_state *st =3D iio_priv(indio_dev=
+);
 > > +
-> > +       return inv_mpu_core_remove(st);
+> > +=A0=A0=A0=A0=A0=A0 return inv_mpu_core_remove(st);
 > > +}
 > > +
-> >  /*
-> >   * device id table is used to identify what device can be
-> >   * supported by this driver
+> > =A0/*
+> > =A0 * device id table is used to identify what device can be
+> > =A0 * supported by this driver
 > > @@ -94,6 +102,7 @@ MODULE_DEVICE_TABLE(acpi, inv_acpi_match);
-> > 
-> >  static struct spi_driver inv_mpu_driver = {
-> >         .probe          =       inv_mpu_probe,
-> > +       .remove         =       inv_mpu_remove,
-> >         .id_table       =       inv_mpu_id,
-> >         .driver = {
-> >                 .acpi_match_table = ACPI_PTR(inv_acpi_match),
+> >=20
+> > =A0static struct spi_driver inv_mpu_driver =3D {
+> > =A0=A0=A0=A0=A0=A0=A0 .probe=A0=A0=A0=A0=A0=A0=A0=A0=A0 =3D=A0=A0=A0=A0=
+=A0=A0 inv_mpu_probe,
+> > +=A0=A0=A0=A0=A0=A0 .remove=A0=A0=A0=A0=A0=A0=A0=A0 =3D=A0=A0=A0=A0=A0=
+=A0 inv_mpu_remove,
+> > =A0=A0=A0=A0=A0=A0=A0 .id_table=A0=A0=A0=A0=A0=A0 =3D=A0=A0=A0=A0=A0=A0=
+ inv_mpu_id,
+> > =A0=A0=A0=A0=A0=A0=A0 .driver =3D {
+> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .acpi_match_table =3D ACP=
+I_PTR(inv_acpi_match),
 > > --
 > > 2.17.1
-> > 
-> >       
+> >=20
+> >      =20
 > --
 > To unsubscribe from this list: send the line "unsubscribe linux-iio" in
 > the body of a message to majordomo@vger.kernel.org
diff --git a/a/content_digest b/N1/content_digest
index b7bf968..b961a8a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -21,7 +21,10 @@
   knaack.h@gmx.de <knaack.h@gmx.de>
   lars@metafoo.de <lars@metafoo.de>
   pmeerw@pmeerw.net <pmeerw@pmeerw.net>
- " mkelly@xevo.com <mkelly@xevo.com>\0"
+  mkelly@xevo.com <mkelly@xevo.com>
+  fischerdouglasc@gmail.com <fischerdouglasc@gmail.com>
+  bshah@kde.org <bshah@kde.org>
+ " ctatlor97@gmail.com <ctatlor97@gmail.com>\0"
  "\00:1\0"
  "b\0"
  "On Wed, 11 Jul 2018 09:00:07 -0400\n"
@@ -30,30 +33,31 @@
  "> On Wed, Jul 11, 2018 at 12:29:33PM +0000, Jean-Baptiste Maneyrol wrote:\n"
  "> > Hello,\n"
  "> >\n"
- " \n"
+ "=20\n"
  "> > I really don't like the idea to have regulator handled inside the\n"
  "> > driver. I know this was done like that before for Nexus 5, but I\n"
  "> > think now this is something that can be done using dts only. Does\n"
  "> > anyone know if there is a way with dts to handle regulator\n"
  "> > automatically and prevent the use in the driver? That would be a\n"
  "> > good idea to search how this handled for other drivers.\n"
- "> > \n"
+ "> >=20\n"
  "> > Anyway, you are enforcing regulator use in your code. It doesn't\n"
  "> > seem the code will work when there is no regulator declared in the\n"
  "> > dts, which is the case for the majority of configurations. We\n"
  "> > should at least make it optional.\n"
- "> > \n"
- "> > Thanks for the contribution.  \n"
- "> \n"
+ "> >=20\n"
+ "> > Thanks for the contribution. =20\n"
+ ">=20\n"
  "\n"
  "> My understanding of devm_regulator_get_optional() is that a stub\n"
  "> regulator will be returned if one is not configured. See the comment\n"
  "> above regulator_get_optional() for where I got this information.\n"
- "> \n"
- "> https://elixir.bootlin.com/linux/v4.17/source/drivers/regulator/core.c#L1750\n"
+ ">=20\n"
+ "> https://elixir.bootlin.com/linux/v4.17/source/drivers/regulator/core.c#L1=\n"
+ "750\n"
  "\n"
  "Quite the opposite (though the text is perhaps less than crystal clear)\n"
- " - reread that comment really carefully. \n"
+ " - reread that comment really carefully.=20\n"
  "\n"
  " * This is intended for use by consumers for devices which can have\n"
  " * some supplies unconnected in normal use, such as some MMC devices.\n"
@@ -67,7 +71,7 @@
  "- thus letting the driver decide what to do about it.\n"
  "\n"
  "\n"
- "> \n"
+ ">=20\n"
  "> I agree that it would be better if this could be handled exclusively in\n"
  "> dts if possible, although I'm not sure how. I looked at other drivers\n"
  "> and commits from the last year or so and this appears to be the current\n"
@@ -83,256 +87,303 @@
  "a particular power supply to a device off actually is.\n"
  "\n"
  "Jonathan\n"
- " \n"
- "> \n"
+ "=20\n"
+ ">=20\n"
  "> Brian\n"
- "> \n"
- "> \n"
+ ">=20\n"
+ ">=20\n"
  "> >\n"
- "> > \n"
+ "> >=20\n"
  "> > From: Brian Masney <masneyb@onstation.org>\n"
  "> > Sent: Wednesday, July 11, 2018 03:09\n"
- "> > To: jic23@kernel.org; robh+dt@kernel.org; mark.rutland@arm.com; andy.gross@linaro.org; david.brown@linaro.org; linux-iio@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-msm@vger.kernel.org; linux-soc@vger.kernel.org\n"
- "> > Cc: jonathan@marek.ca; Jean-Baptiste Maneyrol; knaack.h@gmx.de; lars@metafoo.de; pmeerw@pmeerw.net; mkelly@xevo.com; fischerdouglasc@gmail.com; bshah@kde.org; ctatlor97@gmail.com; masneyb@onstation.org\n"
- "> > Subject: [PATCH 2/3] iio: imu: mpu6050: add support for regulator framework\n"
- "> > \302\240 \n"
- "> > \n"
- "> > CAUTION: This email originated from outside of the organization. Please make sure the sender is who they say they are and do not click links or open attachments unless you recognize the sender and know the content is safe.\n"
- "> > \n"
- "> > \n"
+ "> > To: jic23@kernel.org; robh+dt@kernel.org; mark.rutland@arm.com; andy.gr=\n"
+ "oss@linaro.org; david.brown@linaro.org; linux-iio@vger.kernel.org; devicetr=\n"
+ "ee@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm-msm@vger.kernel=\n"
+ ".org; linux-soc@vger.kernel.org\n"
+ "> > Cc: jonathan@marek.ca; Jean-Baptiste Maneyrol; knaack.h@gmx.de; lars@me=\n"
+ "tafoo.de; pmeerw@pmeerw.net; mkelly@xevo.com; fischerdouglasc@gmail.com; bs=\n"
+ "hah@kde.org; ctatlor97@gmail.com; masneyb@onstation.org\n"
+ "> > Subject: [PATCH 2/3] iio: imu: mpu6050: add support for regulator frame=\n"
+ "work\n"
+ "> > =A0=20\n"
+ "> >=20\n"
+ "> > CAUTION: This email originated from outside of the organization. Please=\n"
+ " make sure the sender is who they say they are and do not click links or op=\n"
+ "en attachments unless you recognize the sender and know the content is safe.\n"
+ "> >=20\n"
+ "> >=20\n"
  "> > This patch adds support for the regulator framework to the mpu6050\n"
  "> > driver.\n"
- "> > \n"
+ "> >=20\n"
  "> > Signed-off-by: Brian Masney <masneyb@onstation.org>\n"
  "> > Signed-off-by: Jonathan Marek <jonathan@marek.ca>\n"
  "> > ---\n"
  "> > This is a variation of Jonathan Marek's patch from postmarketOS\n"
- "> > https://gitlab.com/postmarketOS/linux-postmarketos/commit/b8ad1ec1859c8bbcbce94944b3f4dd68f8f9fc37\n"
+ "> > https://gitlab.com/postmarketOS/linux-postmarketos/commit/b8ad1ec1859c8=\n"
+ "bbcbce94944b3f4dd68f8f9fc37\n"
  "> > with the following changes:\n"
- "> > \n"
+ "> >=20\n"
  "> > - Stripped out 6515 variant code. (See my previous patch in this series)\n"
  "> > - Add the regulator to the mpu core instead of only the i2c variant.\n"
  "> > - Add error handling.\n"
  "> > - Release the regulator on suspend, device remove, etc.\n"
  "> > - Device tree documentation.\n"
- "> > \n"
- "> > \302\240.../bindings/iio/imu/inv_mpu6050.txt\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 |\302\240 1 +\n"
- "> > \302\240drivers/iio/imu/inv_mpu6050/inv_mpu_core.c\302\240\302\240\302\240 | 57 +++++++++++++++++--\n"
- "> > \302\240drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c\302\240\302\240\302\240\302\240 |\302\240 2 +-\n"
- "> > \302\240drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h\302\240\302\240\302\240\302\240 |\302\240 3 +\n"
- "> > \302\240drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c\302\240\302\240\302\240\302\240 |\302\240 9 +++\n"
- "> > \302\2405 files changed, 66 insertions(+), 6 deletions(-)\n"
- "> > \n"
- "> > diff --git a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt\n"
+ "> >=20\n"
+ "> > =A0.../bindings/iio/imu/inv_mpu6050.txt=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0=\n"
+ " 1 +\n"
+ "> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_core.c=A0=A0=A0 | 57 +++++++++++=\n"
+ "++++++--\n"
+ "> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c=A0=A0=A0=A0 |=A0 2 +-\n"
+ "> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h=A0=A0=A0=A0 |=A0 3 +\n"
+ "> > =A0drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c=A0=A0=A0=A0 |=A0 9 +++\n"
+ "> > =A05 files changed, 66 insertions(+), 6 deletions(-)\n"
+ "> >=20\n"
+ "> > diff --git a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt =\n"
+ "b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt\n"
  "> > index b7def51c8ad9..d39907b12a46 100644\n"
  "> > --- a/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt\n"
  "> > +++ b/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt\n"
  "> > @@ -21,6 +21,7 @@ Required properties:\n"
- "> > \302\240\302\240 bindings.\n"
- "> > \n"
- "> > \302\240Optional properties:\n"
+ "> > =A0=A0 bindings.\n"
+ "> >=20\n"
+ "> > =A0Optional properties:\n"
  "> > + - vddio-supply: regulator phandle for VDDIO supply\n"
- "> > \302\240 - mount-matrix: an optional 3x3 mounting rotation matrix\n"
- "> > \302\240 - i2c-gate node.\302\240 These devices also support an auxiliary i2c bus.\302\240 This is\n"
- "> > \302\240\302\240\302\240 simple enough to be described using the i2c-gate binding. See\n"
- "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c\n"
+ "> > =A0 - mount-matrix: an optional 3x3 mounting rotation matrix\n"
+ "> > =A0 - i2c-gate node.=A0 These devices also support an auxiliary i2c bus=\n"
+ ".=A0 This is\n"
+ "> > =A0=A0=A0 simple enough to be described using the i2c-gate binding. See\n"
+ "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/i=\n"
+ "mu/inv_mpu6050/inv_mpu_core.c\n"
  "> > index 12c1b9507007..ec276b7bcc69 100644\n"
  "> > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c\n"
  "> > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c\n"
  "> > @@ -23,6 +23,7 @@\n"
- "> > \302\240#include <linux/iio/iio.h>\n"
- "> > \302\240#include <linux/acpi.h>\n"
- "> > \302\240#include <linux/platform_device.h>\n"
+ "> > =A0#include <linux/iio/iio.h>\n"
+ "> > =A0#include <linux/acpi.h>\n"
+ "> > =A0#include <linux/platform_device.h>\n"
  "> > +#include <linux/regulator/consumer.h>\n"
- "> > \302\240#include \"inv_mpu_iio.h\"\n"
- "> > \n"
- "> > \302\240/*\n"
- "> > @@ -926,6 +927,19 @@ static int inv_check_and_setup_chip(struct inv_mpu6050_state *st)\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > \302\240}\n"
- "> > \n"
+ "> > =A0#include \"inv_mpu_iio.h\"\n"
+ "> >=20\n"
+ "> > =A0/*\n"
+ "> > @@ -926,6 +927,19 @@ static int inv_check_and_setup_chip(struct inv_mpu=\n"
+ "6050_state *st)\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > =A0}\n"
+ "> >=20\n"
  "> > +static int inv_mpu_core_enable_regulator(struct inv_mpu6050_state *st)\n"
  "> > +{\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 int result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0 int result;\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 result = regulator_enable(st->vddio_supply);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 if (result == 0) {\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 /* Give the device a little bit of time to start up. */\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 usleep_range(35000, 70000);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
+ "> > +=A0=A0=A0=A0=A0=A0 result =3D regulator_enable(st->vddio_supply);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 if (result =3D=3D 0) {\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 /* Give the device a little=\n"
+ " bit of time to start up. */\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 usleep_range(35000, 70000);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 }\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0 return result;\n"
  "> > +}\n"
  "> > +\n"
- "> > \302\240int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 int (*inv_mpu_bus_setup)(struct iio_dev *), int chip_type)\n"
- "> > \302\240{\n"
- "> > @@ -990,15 +1004,28 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return -EINVAL;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
- "> > \n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 st->vddio_supply = devm_regulator_get_optional(dev, \"vddio\");\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 if (IS_ERR(st->vddio_supply)) {\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (PTR_ERR(st->vddio_supply) != -EPROBE_DEFER)\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 dev_err(dev, \"Failed to get vddio regulator %d\\n\",\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 (int)PTR_ERR(st->vddio_supply));\n"
+ "> > =A0int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *n=\n"
+ "ame,\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int (*inv_mpu_bus_setup)(=\n"
+ "struct iio_dev *), int chip_type)\n"
+ "> > =A0{\n"
+ "> > @@ -990,15 +1004,28 @@ int inv_mpu_core_probe(struct regmap *regmap, in=\n"
+ "t irq, const char *name,\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return -EINVAL;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 }\n"
+ "> >=20\n"
+ "> > +=A0=A0=A0=A0=A0=A0 st->vddio_supply =3D devm_regulator_get_optional(de=\n"
+ "v, \"vddio\");\n"
+ "> > +=A0=A0=A0=A0=A0=A0 if (IS_ERR(st->vddio_supply)) {\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (PTR_ERR(st->vddio_suppl=\n"
+ "y) !=3D -EPROBE_DEFER)\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev=\n"
+ "_err(dev, \"Failed to get vddio regulator %d\\n\",\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=\n"
+ "=A0=A0=A0=A0=A0=A0=A0 (int)PTR_ERR(st->vddio_supply));\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return PTR_ERR(st->vddio_supply);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return PTR_ERR(st->vddio_su=\n"
+ "pply);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 }\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_mpu_core_enable_regulator(st);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 if (result)\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0 result =3D inv_mpu_core_enable_regulator(st);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 if (result)\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;\n"
  "> > +\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 /* power is turned on inside check chip type*/\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_check_and_setup_chip(st);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (result)\n"
- "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_disable_regulator;\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_mpu6050_init_config(indio_dev);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (result) {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 dev_err(dev, \"Could not initialize device.\\n\");\n"
- "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_disable_regulator;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (inv_mpu_bus_setup)\n"
- "> > @@ -1023,24 +1050,34 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 NULL);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (result) {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 dev_err(dev, \"configure buffer fail %d\\n\", result);\n"
- "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_disable_regulator;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_mpu6050_probe_trigger(indio_dev, irq_type);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (result) {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 dev_err(dev, \"trigger probe fail %d\\n\", result);\n"
- "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_disable_regulator;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 result = devm_iio_device_register(dev, indio_dev);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 if (result) {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 dev_err(dev, \"IIO register fail %d\\n\", result);\n"
- "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_disable_regulator;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 return 0;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 /* power is turned on inside check chip type*/\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_check_and_setup_chip(st);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 if (result)\n"
+ "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_init_config(indio_dev);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 if (result) {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, \"Could not i=\n"
+ "nitialize device.\\n\");\n"
+ "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 }\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 if (inv_mpu_bus_setup)\n"
+ "> > @@ -1023,24 +1050,34 @@ int inv_mpu_core_probe(struct regmap *regmap, i=\n"
+ "nt irq, const char *name,\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=\n"
+ "=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=\n"
+ " NULL);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 if (result) {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, \"configure b=\n"
+ "uffer fail %d\\n\", result);\n"
+ "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 }\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_probe_trigger(indio_dev, i=\n"
+ "rq_type);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 if (result) {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, \"trigger pro=\n"
+ "be fail %d\\n\", result);\n"
+ "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 }\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 result =3D devm_iio_device_register(dev, indio_de=\n"
+ "v);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 if (result) {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dev_err(dev, \"IIO registe=\n"
+ "r fail %d\\n\", result);\n"
+ "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_disable_regulator;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 }\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 return 0;\n"
  "> > +\n"
  "> > +out_disable_regulator:\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 regulator_disable(st->vddio_supply);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
+ "> > +=A0=A0=A0=A0=A0=A0 regulator_disable(st->vddio_supply);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 return result;\n"
  "> > +\n"
- "> > \302\240}\n"
- "> > \302\240EXPORT_SYMBOL_GPL(inv_mpu_core_probe);\n"
- "> > \n"
+ "> > =A0}\n"
+ "> > =A0EXPORT_SYMBOL_GPL(inv_mpu_core_probe);\n"
+ "> >=20\n"
  "> > +int inv_mpu_core_remove(struct inv_mpu6050_state *st)\n"
  "> > +{\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 return regulator_disable(st->vddio_supply);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 return regulator_disable(st->vddio_supply);\n"
  "> > +}\n"
  "> > +\n"
- "> > \302\240#ifdef CONFIG_PM_SLEEP\n"
- "> > \n"
- "> > \302\240static int inv_mpu_resume(struct device *dev)\n"
+ "> > =A0#ifdef CONFIG_PM_SLEEP\n"
+ "> >=20\n"
+ "> > =A0static int inv_mpu_resume(struct device *dev)\n"
  "> > @@ -1050,6 +1087,11 @@ static int inv_mpu_resume(struct device *dev)\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 mutex_lock(&st->lock);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_mpu6050_set_power_itg(st, true);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 if (result)\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_unlock;\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 mutex_lock(&st->lock);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_set_power_itg(st, true);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 if (result)\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_unlock;\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_mpu_core_enable_regulator(st);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 result =3D inv_mpu_core_enable_regulator(st);\n"
  "> > +out_unlock:\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 mutex_unlock(&st->lock);\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 mutex_unlock(&st->lock);\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 return result;\n"
  "> > @@ -1062,6 +1104,11 @@ static int inv_mpu_suspend(struct device *dev)\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 mutex_lock(&st->lock);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 result = inv_mpu6050_set_power_itg(st, false);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 if (result)\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 goto out_unlock;\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 mutex_lock(&st->lock);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 result =3D inv_mpu6050_set_power_itg(st, false);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 if (result)\n"
+ "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 goto out_unlock;\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 result = regulator_disable(st->vddio_supply);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 result =3D regulator_disable(st->vddio_supply);\n"
  "> > +out_unlock:\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 mutex_unlock(&st->lock);\n"
- "> > \n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 return result;\n"
- "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 mutex_unlock(&st->lock);\n"
+ "> >=20\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 return result;\n"
+ "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/im=\n"
+ "u/inv_mpu6050/inv_mpu_i2c.c\n"
  "> > index dd758e3d403d..ce227038c61c 100644\n"
  "> > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c\n"
  "> > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c\n"
  "> > @@ -164,7 +164,7 @@ static int inv_mpu_remove(struct i2c_client *client)\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 i2c_mux_del_adapters(st->muxc);\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 }\n"
- "> > \n"
- "> > -\302\240\302\240\302\240\302\240\302\240\302\240 return 0;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 return inv_mpu_core_remove(st);\n"
- "> > \302\240}\n"
- "> > \n"
- "> > \302\240/*\n"
- "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 i2c_mux_del_adapters(st->=\n"
+ "muxc);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 }\n"
+ "> >=20\n"
+ "> > -=A0=A0=A0=A0=A0=A0 return 0;\n"
+ "> > +=A0=A0=A0=A0=A0=A0 return inv_mpu_core_remove(st);\n"
+ "> > =A0}\n"
+ "> >=20\n"
+ "> > =A0/*\n"
+ "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/im=\n"
+ "u/inv_mpu6050/inv_mpu_iio.h\n"
  "> > index e69a59659dbc..0289615a6135 100644\n"
  "> > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h\n"
  "> > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h\n"
  "> > @@ -129,6 +129,7 @@ struct inv_mpu6050_hw {\n"
- "> > \302\240 *\302\240 @chip_period:\302\240\302\240\302\240\302\240\302\240 chip internal period estimation (~1kHz).\n"
- "> > \302\240 *\302\240 @it_timestamp:\302\240\302\240\302\240\302\240 timestamp from previous interrupt.\n"
- "> > \302\240 *\302\240 @data_timestamp:\302\240\302\240 timestamp for next data sample.\n"
- "> > + *\302\240 @vddio_supply\302\240\302\240\302\240\302\240\302\240 voltage regulator for the chip.\n"
- "> > \302\240 */\n"
- "> > \302\240struct inv_mpu6050_state {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 struct mutex lock;\n"
+ "> > =A0 *=A0 @chip_period:=A0=A0=A0=A0=A0 chip internal period estimation (=\n"
+ "~1kHz).\n"
+ "> > =A0 *=A0 @it_timestamp:=A0=A0=A0=A0 timestamp from previous interrupt.\n"
+ "> > =A0 *=A0 @data_timestamp:=A0=A0 timestamp for next data sample.\n"
+ "> > + *=A0 @vddio_supply=A0=A0=A0=A0=A0 voltage regulator for the chip.\n"
+ "> > =A0 */\n"
+ "> > =A0struct inv_mpu6050_state {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 struct mutex lock;\n"
  "> > @@ -149,6 +150,7 @@ struct inv_mpu6050_state {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 s64 chip_period;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 s64 it_timestamp;\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 s64 data_timestamp;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 struct regulator *vddio_supply;\n"
- "> > \302\240};\n"
- "> > \n"
- "> > \302\240/*register and associated bit definition*/\n"
- "> > @@ -321,4 +323,5 @@ int inv_mpu_acpi_create_mux_client(struct i2c_client *client);\n"
- "> > \302\240void inv_mpu_acpi_delete_mux_client(struct i2c_client *client);\n"
- "> > \302\240int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 int (*inv_mpu_bus_setup)(struct iio_dev *), int chip_type);\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 s64 chip_period;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 s64 it_timestamp;\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 s64 data_timestamp;\n"
+ "> > +=A0=A0=A0=A0=A0=A0 struct regulator *vddio_supply;\n"
+ "> > =A0};\n"
+ "> >=20\n"
+ "> > =A0/*register and associated bit definition*/\n"
+ "> > @@ -321,4 +323,5 @@ int inv_mpu_acpi_create_mux_client(struct i2c_clien=\n"
+ "t *client);\n"
+ "> > =A0void inv_mpu_acpi_delete_mux_client(struct i2c_client *client);\n"
+ "> > =A0int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *n=\n"
+ "ame,\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int (*inv_mpu_bus_setup)(=\n"
+ "struct iio_dev *), int chip_type);\n"
  "> > +int inv_mpu_core_remove(struct inv_mpu6050_state *st);\n"
- "> > \302\240extern const struct dev_pm_ops inv_mpu_pmops;\n"
- "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c\n"
+ "> > =A0extern const struct dev_pm_ops inv_mpu_pmops;\n"
+ "> > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/im=\n"
+ "u/inv_mpu6050/inv_mpu_spi.c\n"
  "> > index 227f50afff22..fce935f8f1e4 100644\n"
  "> > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c\n"
  "> > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c\n"
  "> > @@ -70,6 +70,14 @@ static int inv_mpu_probe(struct spi_device *spi)\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 inv_mpu_i2c_disable, chip_type);\n"
- "> > \302\240}\n"
- "> > \n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=\n"
+ "=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 inv_mpu_i2c_disable, chip_type);\n"
+ "> > =A0}\n"
+ "> >=20\n"
  "> > +static int inv_mpu_remove(struct spi_device *spi)\n"
  "> > +{\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 struct iio_dev *indio_dev = spi_get_drvdata(spi);\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 struct inv_mpu6050_state *st = iio_priv(indio_dev);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 struct iio_dev *indio_dev =3D spi_get_drvdata(spi);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 struct inv_mpu6050_state *st =3D iio_priv(indio_dev=\n"
+ ");\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 return inv_mpu_core_remove(st);\n"
+ "> > +=A0=A0=A0=A0=A0=A0 return inv_mpu_core_remove(st);\n"
  "> > +}\n"
  "> > +\n"
- "> > \302\240/*\n"
- "> > \302\240 * device id table is used to identify what device can be\n"
- "> > \302\240 * supported by this driver\n"
+ "> > =A0/*\n"
+ "> > =A0 * device id table is used to identify what device can be\n"
+ "> > =A0 * supported by this driver\n"
  "> > @@ -94,6 +102,7 @@ MODULE_DEVICE_TABLE(acpi, inv_acpi_match);\n"
- "> > \n"
- "> > \302\240static struct spi_driver inv_mpu_driver = {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 .probe\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 =\302\240\302\240\302\240\302\240\302\240\302\240 inv_mpu_probe,\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240 .remove\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 =\302\240\302\240\302\240\302\240\302\240\302\240 inv_mpu_remove,\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 .id_table\302\240\302\240\302\240\302\240\302\240\302\240 =\302\240\302\240\302\240\302\240\302\240\302\240 inv_mpu_id,\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240 .driver = {\n"
- "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .acpi_match_table = ACPI_PTR(inv_acpi_match),\n"
+ "> >=20\n"
+ "> > =A0static struct spi_driver inv_mpu_driver =3D {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 .probe=A0=A0=A0=A0=A0=A0=A0=A0=A0 =3D=A0=A0=A0=A0=\n"
+ "=A0=A0 inv_mpu_probe,\n"
+ "> > +=A0=A0=A0=A0=A0=A0 .remove=A0=A0=A0=A0=A0=A0=A0=A0 =3D=A0=A0=A0=A0=A0=\n"
+ "=A0 inv_mpu_remove,\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 .id_table=A0=A0=A0=A0=A0=A0 =3D=A0=A0=A0=A0=A0=A0=\n"
+ " inv_mpu_id,\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0 .driver =3D {\n"
+ "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .acpi_match_table =3D ACP=\n"
+ "I_PTR(inv_acpi_match),\n"
  "> > --\n"
  "> > 2.17.1\n"
- "> > \n"
- "> >       \n"
+ "> >=20\n"
+ "> >      =20\n"
  "> --\n"
  "> To unsubscribe from this list: send the line \"unsubscribe linux-iio\" in\n"
  "> the body of a message to majordomo@vger.kernel.org\n"
  > More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
-0908025aedb3942fa3723e696f171acc351dcc4c51ea9c282ed4496504f47e3a
+2c498d1aa9c7023d31302afb34e4ba7c4d159c8d01b18c4a101567b3c9e199a9

diff --git a/a/content_digest b/N2/content_digest
index b7bf968..d92c747 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -21,7 +21,10 @@
   knaack.h@gmx.de <knaack.h@gmx.de>
   lars@metafoo.de <lars@metafoo.de>
   pmeerw@pmeerw.net <pmeerw@pmeerw.net>
- " mkelly@xevo.com <mkelly@xevo.com>\0"
+  mkelly@xevo.com <mkelly@xevo.com>
+  fischerdouglasc@gmail.com <fischerdouglasc@gmail.com>
+  bshah@kde.org <bshah@kde.org>
+ " ctatlor97@gmail.com <ctatlor97@gmail.com>\0"
  "\00:1\0"
  "b\0"
  "On Wed, 11 Jul 2018 09:00:07 -0400\n"
@@ -335,4 +338,4 @@
  "> the body of a message to majordomo@vger.kernel.org\n"
  > More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
-0908025aedb3942fa3723e696f171acc351dcc4c51ea9c282ed4496504f47e3a
+5c4aad31a89ac82e4f2b6c4f9871698c9f9a053c4254faf333634fbf1c562e6e

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.