All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20181013102441.5fcdad5e@archlinux>

diff --git a/a/1.txt b/N1/1.txt
index a5ea799..a0e259a 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,10 +1,10 @@
 On Thu, 11 Oct 2018 12:35:18 +0800
 Song Qiang <songqiang1304521@gmail.com> wrote:
 
-> On 2018=E5=B9=B410=E6=9C=8807=E6=97=A5 23:44, Jonathan Cameron wrote:
+> On 2018年10月07日 23:44, Jonathan Cameron wrote:
 > > On Tue,  2 Oct 2018 22:38:12 +0800
 > > Song Qiang <songqiang1304521@gmail.com> wrote:
-> > =20
+> >  
 > >> PNI RM3100 is a high resolution, large signal immunity magnetometer,
 > >> composed of 3 single sensors and a processing chip with a MagI2C
 > >> interface.
@@ -17,7 +17,7 @@ Song Qiang <songqiang1304521@gmail.com> wrote:
 > >>   - Both interrupt and polling measurement is supported, depends on if
 > >>     the 'interrupts' in DT is declared.
 > >>
-> >> Signed-off-by: Song Qiang <songqiang1304521@gmail.com> =20
+> >> Signed-off-by: Song Qiang <songqiang1304521@gmail.com>  
 > > I realise now that I should have read the datasheet properly.
 > > Sorry about that.
 > >
@@ -48,11 +48,11 @@ Song Qiang <songqiang1304521@gmail.com> wrote:
 > > about how you were handing the interrupts.
 > >
 > > Jonathan
-> > =20
->=20
+> >  
+> 
 > Hi Jonathan,
->=20
-> I learned the way of handling single shot from the driver of hmc5843,=20
+> 
+> I learned the way of handling single shot from the driver of hmc5843, 
 > seems like it needs changing, too.
 Yikes, that is indeed much the same and for no apparent reason.
 If I was guessing, I would say that driver started as an input device
@@ -64,23 +64,21 @@ It should have used the single read mode on that device as well.
 Now the challenge is whether anyone has one of these fairly old parts
 to test any changes?
 
-> There was some problems with my computer. Lenovo updates told me to=20
-> update BIOS and it went dead. I didn't write any code the past few days,=
-=20
+> There was some problems with my computer. Lenovo updates told me to 
+> update BIOS and it went dead. I didn't write any code the past few days, 
 > just got it fixed today.
 :(
 
 Jonathan
->=20
+> 
 > yours,
 > Song Qiang
->=20
+> 
 > >> ---
 > >>   MAINTAINERS                            |   7 +
 > >>   drivers/iio/magnetometer/Kconfig       |  29 ++
 > >>   drivers/iio/magnetometer/Makefile      |   4 +
-> >>   drivers/iio/magnetometer/rm3100-core.c | 539 +++++++++++++++++++++++=
-++
+> >>   drivers/iio/magnetometer/rm3100-core.c | 539 +++++++++++++++++++++++++
 > >>   drivers/iio/magnetometer/rm3100-i2c.c  |  58 +++
 > >>   drivers/iio/magnetometer/rm3100-spi.c  |  64 +++
 > >>   drivers/iio/magnetometer/rm3100.h      |  17 +
@@ -94,11 +92,10 @@ Jonathan
 > >> index 967ce8cdd1cc..14eeeb072403 100644
 > >> --- a/MAINTAINERS
 > >> +++ b/MAINTAINERS
-> >> @@ -11393,6 +11393,13 @@ M:	"Rafael J. Wysocki" <rafael.j.wysocki@inte=
-l.com>
+> >> @@ -11393,6 +11393,13 @@ M:	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
 > >>   S:	Maintained
 > >>   F:	drivers/pnp/
-> >>  =20
+> >>   
 > >> +PNI RM3100 IIO DRIVER
 > >> +M:	Song Qiang <songqiang1304521@gmail.com>
 > >> +L:	linux-iio@vger.kernel.org
@@ -109,15 +106,14 @@ l.com>
 > >>   POSIX CLOCKS and TIMERS
 > >>   M:	Thomas Gleixner <tglx@linutronix.de>
 > >>   L:	linux-kernel@vger.kernel.org
-> >> diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetomet=
-er/Kconfig
+> >> diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetometer/Kconfig
 > >> index ed9d776d01af..8a63cbbca4b7 100644
 > >> --- a/drivers/iio/magnetometer/Kconfig
 > >> +++ b/drivers/iio/magnetometer/Kconfig
 > >> @@ -175,4 +175,33 @@ config SENSORS_HMC5843_SPI
 > >>   	  - hmc5843_core (core functions)
 > >>   	  - hmc5843_spi (support for HMC5983)
-> >>  =20
+> >>   
 > >> +config SENSORS_RM3100
 > >> +	tristate
 > >> +	select IIO_BUFFER
@@ -148,22 +144,19 @@ er/Kconfig
 > >> +	  will be called rm3100-spi.
 > >> +
 > >>   endmenu
-> >> diff --git a/drivers/iio/magnetometer/Makefile b/drivers/iio/magnetome=
-ter/Makefile
+> >> diff --git a/drivers/iio/magnetometer/Makefile b/drivers/iio/magnetometer/Makefile
 > >> index 664b2f866472..ba1bc34b82fa 100644
 > >> --- a/drivers/iio/magnetometer/Makefile
 > >> +++ b/drivers/iio/magnetometer/Makefile
-> >> @@ -24,3 +24,7 @@ obj-$(CONFIG_IIO_ST_MAGN_SPI_3AXIS) +=3D st_magn_spi=
-.o
-> >>   obj-$(CONFIG_SENSORS_HMC5843)		+=3D hmc5843_core.o
-> >>   obj-$(CONFIG_SENSORS_HMC5843_I2C)	+=3D hmc5843_i2c.o
-> >>   obj-$(CONFIG_SENSORS_HMC5843_SPI)	+=3D hmc5843_spi.o
-> >> +
-> >> +obj-$(CONFIG_SENSORS_RM3100)		+=3D rm3100-core.o
-> >> +obj-$(CONFIG_SENSORS_RM3100_I2C)	+=3D rm3100-i2c.o
-> >> +obj-$(CONFIG_SENSORS_RM3100_SPI)	+=3D rm3100-spi.o
-> >> diff --git a/drivers/iio/magnetometer/rm3100-core.c b/drivers/iio/magn=
-etometer/rm3100-core.c
+> >> @@ -24,3 +24,7 @@ obj-$(CONFIG_IIO_ST_MAGN_SPI_3AXIS) += st_magn_spi.o
+> >>   obj-$(CONFIG_SENSORS_HMC5843)		+= hmc5843_core.o
+> >>   obj-$(CONFIG_SENSORS_HMC5843_I2C)	+= hmc5843_i2c.o
+> >>   obj-$(CONFIG_SENSORS_HMC5843_SPI)	+= hmc5843_spi.o
+> >> +
+> >> +obj-$(CONFIG_SENSORS_RM3100)		+= rm3100-core.o
+> >> +obj-$(CONFIG_SENSORS_RM3100_I2C)	+= rm3100-i2c.o
+> >> +obj-$(CONFIG_SENSORS_RM3100_SPI)	+= rm3100-spi.o
+> >> diff --git a/drivers/iio/magnetometer/rm3100-core.c b/drivers/iio/magnetometer/rm3100-core.c
 > >> new file mode 100644
 > >> index 000000000000..cacdaee28ae3
 > >> --- /dev/null
@@ -228,9 +221,8 @@ etometer/rm3100-core.c
 > >> +#define RM3100_V_REG_END		RM3100_REG_STATUS
 > >> +
 > >> +/*
-> >> + * This is computed by hand, is the sum of channel storage bits and p=
-adding
-> >> + * bits, which is 4+4+4+12=3D24 in here.
+> >> + * This is computed by hand, is the sum of channel storage bits and padding
+> >> + * bits, which is 4+4+4+12=24 in here.
 > >> + */
 > >> +#define RM3100_SCAN_BYTES		24
 > >> +
@@ -254,39 +246,39 @@ adding
 > >> +	struct mutex lock;
 > >> +};
 > >> +
-> >> +static const struct regmap_range rm3100_readable_ranges[] =3D {
+> >> +static const struct regmap_range rm3100_readable_ranges[] = {
 > >> +	regmap_reg_range(RM3100_W_REG_START, RM3100_W_REG_END),
 > >> +};
 > >> +
-> >> +const struct regmap_access_table rm3100_readable_table =3D {
-> >> +	.yes_ranges =3D rm3100_readable_ranges,
-> >> +	.n_yes_ranges =3D ARRAY_SIZE(rm3100_readable_ranges),
+> >> +const struct regmap_access_table rm3100_readable_table = {
+> >> +	.yes_ranges = rm3100_readable_ranges,
+> >> +	.n_yes_ranges = ARRAY_SIZE(rm3100_readable_ranges),
 > >> +};
 > >> +EXPORT_SYMBOL_GPL(rm3100_readable_table);
 > >> +
-> >> +static const struct regmap_range rm3100_writable_ranges[] =3D {
+> >> +static const struct regmap_range rm3100_writable_ranges[] = {
 > >> +	regmap_reg_range(RM3100_R_REG_START, RM3100_R_REG_END),
 > >> +};
 > >> +
-> >> +const struct regmap_access_table rm3100_writable_table =3D {
-> >> +	.yes_ranges =3D rm3100_writable_ranges,
-> >> +	.n_yes_ranges =3D ARRAY_SIZE(rm3100_writable_ranges),
+> >> +const struct regmap_access_table rm3100_writable_table = {
+> >> +	.yes_ranges = rm3100_writable_ranges,
+> >> +	.n_yes_ranges = ARRAY_SIZE(rm3100_writable_ranges),
 > >> +};
 > >> +EXPORT_SYMBOL_GPL(rm3100_writable_table);
 > >> +
-> >> +static const struct regmap_range rm3100_volatile_ranges[] =3D {
+> >> +static const struct regmap_range rm3100_volatile_ranges[] = {
 > >> +	regmap_reg_range(RM3100_V_REG_START, RM3100_V_REG_END),
 > >> +};
 > >> +
-> >> +const struct regmap_access_table rm3100_volatile_table =3D {
-> >> +	.yes_ranges =3D rm3100_volatile_ranges,
-> >> +	.n_yes_ranges =3D ARRAY_SIZE(rm3100_volatile_ranges),
+> >> +const struct regmap_access_table rm3100_volatile_table = {
+> >> +	.yes_ranges = rm3100_volatile_ranges,
+> >> +	.n_yes_ranges = ARRAY_SIZE(rm3100_volatile_ranges),
 > >> +};
 > >> +EXPORT_SYMBOL_GPL(rm3100_volatile_table);
 > >> +
 > >> +static irqreturn_t rm3100_irq_handler(int irq, void *d)
 > >> +{
-> >> +	struct rm3100_data *data =3D d;
+> >> +	struct rm3100_data *data = d;
 > >> +
 > >> +	complete(&data->measuring_done);
 > >> +
@@ -295,9 +287,9 @@ adding
 > >> +
 > >> +static int rm3100_wait_measurement(struct rm3100_data *data)
 > >> +{
-> >> +	struct regmap *regmap =3D data->regmap;
+> >> +	struct regmap *regmap = data->regmap;
 > >> +	unsigned int val;
-> >> +	int tries =3D 20;
+> >> +	int tries = 20;
 > >> +	int ret;
 > >> +
 > >> +	/*
@@ -313,13 +305,13 @@ adding
 > >> +	if (data->use_interrupt)
 > >> +		reinit_completion(&data->measuring_done);
 > >> +
-> >> +	ret =3D regmap_read(regmap, RM3100_REG_STATUS, &val);
+> >> +	ret = regmap_read(regmap, RM3100_REG_STATUS, &val);
 > >> +	if (ret < 0)
 > >> +		return ret;
 > >> +
-> >> +	if ((val & RM3100_STATUS_DRDY) !=3D RM3100_STATUS_DRDY) {
+> >> +	if ((val & RM3100_STATUS_DRDY) != RM3100_STATUS_DRDY) {
 > >> +		if (data->use_interrupt) {
-> >> +			ret =3D wait_for_completion_timeout(&data->measuring_done,
+> >> +			ret = wait_for_completion_timeout(&data->measuring_done,
 > >> +				msecs_to_jiffies(data->conversion_time));
 > >> +			if (ret < 0)
 > >> +				return -ETIMEDOUT;
@@ -327,7 +319,7 @@ adding
 > >> +			do {
 > >> +				usleep_range(1000, 5000);
 > >> +
-> >> +				ret =3D regmap_read(regmap, RM3100_REG_STATUS,
+> >> +				ret = regmap_read(regmap, RM3100_REG_STATUS,
 > >> +						  &val);
 > >> +				if (ret < 0)
 > >> +					return ret;
@@ -342,28 +334,25 @@ adding
 > >> +	return 0;
 > >> +}
 > >> +
-> >> +static int rm3100_read_mag(struct rm3100_data *data, int idx, int *va=
-l)
+> >> +static int rm3100_read_mag(struct rm3100_data *data, int idx, int *val)
 > >> +{
-> >> +	struct regmap *regmap =3D data->regmap;
+> >> +	struct regmap *regmap = data->regmap;
 > >> +	u8 buffer[3];
 > >> +	int ret;
 > >> +
 > >> +	mutex_lock(&data->lock);
-> >> +	ret =3D rm3100_wait_measurement(data);
+> >> +	ret = rm3100_wait_measurement(data);
 > >> +	if (ret < 0) {
 > >> +		mutex_unlock(&data->lock);
 > >> +		return ret;
 > >> +	}
 > >> +
-> >> +	ret =3D regmap_bulk_read(regmap, RM3100_REG_MX2 + 3 * idx, buffer, 3=
-);
+> >> +	ret = regmap_bulk_read(regmap, RM3100_REG_MX2 + 3 * idx, buffer, 3);
 > >> +	mutex_unlock(&data->lock);
 > >> +	if (ret < 0)
 > >> +		return ret;
 > >> +
-> >> +	*val =3D sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer=
-[2],
+> >> +	*val = sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],
 > >> +			     23);
 > >> +
 > >> +	return IIO_VAL_INT;
@@ -371,43 +360,42 @@ l)
 > >> +
 > >> +#define RM3100_CHANNEL(axis, idx)					\
 > >> +	{								\
-> >> +		.type =3D IIO_MAGN,					\
-> >> +		.modified =3D 1,						\
-> >> +		.channel2 =3D IIO_MOD_##axis,				\
-> >> +		.info_mask_separate =3D BIT(IIO_CHAN_INFO_RAW),		\
-> >> +		.info_mask_shared_by_type =3D BIT(IIO_CHAN_INFO_SCALE) |	\
+> >> +		.type = IIO_MAGN,					\
+> >> +		.modified = 1,						\
+> >> +		.channel2 = IIO_MOD_##axis,				\
+> >> +		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),		\
+> >> +		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) |	\
 > >> +			BIT(IIO_CHAN_INFO_SAMP_FREQ),			\
-> >> +		.scan_index =3D idx,					\
-> >> +		.scan_type =3D {						\
-> >> +			.sign =3D 's',					\
-> >> +			.realbits =3D 24,					\
-> >> +			.storagebits =3D 32,				\
-> >> +			.shift =3D 8,					\
-> >> +			.endianness =3D IIO_BE,				\
+> >> +		.scan_index = idx,					\
+> >> +		.scan_type = {						\
+> >> +			.sign = 's',					\
+> >> +			.realbits = 24,					\
+> >> +			.storagebits = 32,				\
+> >> +			.shift = 8,					\
+> >> +			.endianness = IIO_BE,				\
 > >> +		},							\
 > >> +	}
 > >> +
-> >> +static const struct iio_chan_spec rm3100_channels[] =3D {
+> >> +static const struct iio_chan_spec rm3100_channels[] = {
 > >> +	RM3100_CHANNEL(X, 0),
 > >> +	RM3100_CHANNEL(Y, 1),
 > >> +	RM3100_CHANNEL(Z, 2),
 > >> +	IIO_CHAN_SOFT_TIMESTAMP(3),
 > >> +};
 > >> +
-> >> +static const unsigned long rm3100_scan_masks[] =3D {BIT(0) | BIT(1) |=
- BIT(2), 0};
+> >> +static const unsigned long rm3100_scan_masks[] = {BIT(0) | BIT(1) | BIT(2), 0};
 > >> +
 > >> +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL(
 > >> +	"600 300 150 75 37 18 9 4.5 2.3 1.2 0.6 0.3 0.015 0.075"
 > >> +);
 > >> +
-> >> +static struct attribute *rm3100_attributes[] =3D {
+> >> +static struct attribute *rm3100_attributes[] = {
 > >> +	&iio_const_attr_sampling_frequency_available.dev_attr.attr,
 > >> +	NULL,
 > >> +};
 > >> +
-> >> +static const struct attribute_group rm3100_attribute_group =3D {
-> >> +	.attrs =3D rm3100_attributes,
+> >> +static const struct attribute_group rm3100_attribute_group = {
+> >> +	.attrs = rm3100_attributes,
 > >> +};
 > >> +
 > >> +#define RM3100_SAMP_NUM			14
@@ -417,26 +405,25 @@ l)
 > >> + * Time between reading: rm3100_sam_rates[][2]ms.
 > >> + * The first one is actually 1.7ms.
 > >> + */
-> >> +static const int rm3100_samp_rates[RM3100_SAMP_NUM][3] =3D {
+> >> +static const int rm3100_samp_rates[RM3100_SAMP_NUM][3] = {
 > >> +	{600, 0, 2}, {300, 0, 3}, {150, 0, 7}, {75, 0, 13}, {37, 0, 27},
 > >> +	{18, 0, 55}, {9, 0, 110}, {4, 500000, 220}, {2, 300000, 440},
 > >> +	{1, 200000, 800}, {0, 600000, 1600}, {0, 300000, 3300},
 > >> +	{0, 15000, 6700},  {0, 75000, 13000}
 > >> +};
 > >> +
-> >> +static int rm3100_get_samp_freq(struct rm3100_data *data, int *val, i=
-nt *val2)
+> >> +static int rm3100_get_samp_freq(struct rm3100_data *data, int *val, int *val2)
 > >> +{
 > >> +	int ret;
 > >> +	unsigned int tmp;
 > >> +
 > >> +	mutex_lock(&data->lock);
-> >> +	ret =3D regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);
+> >> +	ret = regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);
 > >> +	mutex_unlock(&data->lock);
 > >> +	if (ret < 0)
 > >> +		return ret;
-> >> +	*val =3D rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][0];
-> >> +	*val2 =3D rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][1];
+> >> +	*val = rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][0];
+> >> +	*val2 = rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][1];
 > >> +
 > >> +	return IIO_VAL_INT_PLUS_MICRO;
 > >> +}
@@ -446,81 +433,79 @@ nt *val2)
 > >> +	int ret;
 > >> +	u8 i;
 > >> +
-> >> +	for (i =3D 0; i < 3; i++) {
-> >> +		ret =3D regmap_write(data->regmap, RM3100_REG_CC_X + 2 * i, val);
+> >> +	for (i = 0; i < 3; i++) {
+> >> +		ret = regmap_write(data->regmap, RM3100_REG_CC_X + 2 * i, val);
 > >> +		if (ret < 0)
 > >> +			return ret;
 > >> +	}
 > >> +
 > >> +	switch (val) {
 > >> +	case 50:
-> >> +		data->cycle_count_index =3D 0;
+> >> +		data->cycle_count_index = 0;
 > >> +		break;
 > >> +	case 100:
-> >> +		data->cycle_count_index =3D 1;
+> >> +		data->cycle_count_index = 1;
 > >> +		break;
 > >> +	/*
 > >> +	 * This function will never be called by users' code, so here we
 > >> +	 * assume that it will never get a wrong parameter.
 > >> +	 */
 > >> +	default:
-> >> +		data->cycle_count_index =3D 2;
+> >> +		data->cycle_count_index = 2;
 > >> +	}
 > >> +
 > >> +	return 0;
 > >> +}
 > >> +
-> >> +static int rm3100_set_samp_freq(struct rm3100_data *data, int val, in=
-t val2)
+> >> +static int rm3100_set_samp_freq(struct rm3100_data *data, int val, int val2)
 > >> +{
-> >> +	struct regmap *regmap =3D data->regmap;
+> >> +	struct regmap *regmap = data->regmap;
 > >> +	unsigned int cycle_count;
 > >> +	int ret;
 > >> +	int i;
 > >> +
 > >> +	mutex_lock(&data->lock);
 > >> +	/* All cycle count registers use the same value. */
-> >> +	ret =3D regmap_read(regmap, RM3100_REG_CC_X, &cycle_count);
+> >> +	ret = regmap_read(regmap, RM3100_REG_CC_X, &cycle_count);
 > >> +	if (ret < 0)
 > >> +		goto unlock_return;
 > >> +
-> >> +	for (i =3D 0; i < RM3100_SAMP_NUM; i++) {
-> >> +		if (val =3D=3D rm3100_samp_rates[i][0] &&
-> >> +		    val2 =3D=3D rm3100_samp_rates[i][1])
+> >> +	for (i = 0; i < RM3100_SAMP_NUM; i++) {
+> >> +		if (val == rm3100_samp_rates[i][0] &&
+> >> +		    val2 == rm3100_samp_rates[i][1])
 > >> +			break;
 > >> +	}
-> >> +	if (i =3D=3D RM3100_SAMP_NUM) {
-> >> +		ret =3D -EINVAL;
+> >> +	if (i == RM3100_SAMP_NUM) {
+> >> +		ret = -EINVAL;
 > >> +		goto unlock_return;
 > >> +	}
 > >> +
-> >> +	ret =3D regmap_write(regmap, RM3100_REG_TMRC, i + RM3100_TMRC_OFFSET=
-);
+> >> +	ret = regmap_write(regmap, RM3100_REG_TMRC, i + RM3100_TMRC_OFFSET);
 > >> +	if (ret < 0)
 > >> +		goto unlock_return;
 > >> +
 > >> +	/* Checking if cycle count registers need changing. */
-> >> +	if (val =3D=3D 600 && cycle_count =3D=3D 200) {
-> >> +		ret =3D rm3100_set_cycle_count(data, 100);
+> >> +	if (val == 600 && cycle_count == 200) {
+> >> +		ret = rm3100_set_cycle_count(data, 100);
 > >> +		if (ret < 0)
 > >> +			goto unlock_return;
-> >> +	} else if (val !=3D 600 && cycle_count =3D=3D 100) {
-> >> +		ret =3D rm3100_set_cycle_count(data, 200);
+> >> +	} else if (val != 600 && cycle_count == 100) {
+> >> +		ret = rm3100_set_cycle_count(data, 200);
 > >> +		if (ret < 0)
 > >> +			goto unlock_return;
 > >> +	}
 > >> +
 > >> +	/* Writing TMRC registers requires CMM reset. */
-> >> +	ret =3D regmap_write(regmap, RM3100_REG_CMM, 0);
+> >> +	ret = regmap_write(regmap, RM3100_REG_CMM, 0);
 > >> +	if (ret < 0)
 > >> +		goto unlock_return;
-> >> +	ret =3D regmap_write(regmap, RM3100_REG_CMM,
+> >> +	ret = regmap_write(regmap, RM3100_REG_CMM,
 > >> +		RM3100_CMM_X | RM3100_CMM_Y | RM3100_CMM_Z | RM3100_CMM_START);
 > >> +	if (ret < 0)
 > >> +		goto unlock_return;
 > >> +	mutex_unlock(&data->lock);
 > >> +
-> >> +	data->conversion_time =3D rm3100_samp_rates[i][2] + 3000;
+> >> +	data->conversion_time = rm3100_samp_rates[i][2] + 3000;
 > >> +	return 0;
 > >> +
 > >> +unlock_return:
@@ -529,33 +514,32 @@ t val2)
 > >> +}
 > >> +
 > >> +/*
-> >> + * The scale of this sensor depends on the cycle count value, these t=
-hree
+> >> + * The scale of this sensor depends on the cycle count value, these three
 > >> + * values are corresponding to the cycle count value 50, 100, 200.
-> >> + * scale =3D output / gain * 10^4.
+> >> + * scale = output / gain * 10^4.
 > >> + */
-> >> +const static int rm3100_scale[] =3D {500, 263, 133};
+> >> +const static int rm3100_scale[] = {500, 263, 133};
 > >> +
 > >> +static int rm3100_read_raw(struct iio_dev *indio_dev,
 > >> +			   const struct iio_chan_spec *chan,
 > >> +			   int *val, int *val2, long mask)
 > >> +{
-> >> +	struct rm3100_data *data =3D iio_priv(indio_dev);
+> >> +	struct rm3100_data *data = iio_priv(indio_dev);
 > >> +	int ret;
 > >> +
 > >> +	switch (mask) {
 > >> +	case IIO_CHAN_INFO_RAW:
-> >> +		ret =3D iio_device_claim_direct_mode(indio_dev);
+> >> +		ret = iio_device_claim_direct_mode(indio_dev);
 > >> +		if (ret < 0)
 > >> +			return ret;
 > >> +
-> >> +		ret =3D rm3100_read_mag(data, chan->scan_index, val);
+> >> +		ret = rm3100_read_mag(data, chan->scan_index, val);
 > >> +		iio_device_release_direct_mode(indio_dev);
 > >> +
 > >> +		return ret;
 > >> +	case IIO_CHAN_INFO_SCALE:
-> >> +		*val =3D 0;
-> >> +		*val2 =3D rm3100_scale[data->cycle_count_index];
+> >> +		*val = 0;
+> >> +		*val2 = rm3100_scale[data->cycle_count_index];
 > >> +
 > >> +		return IIO_VAL_INT_PLUS_MICRO;
 > >> +	case IIO_CHAN_INFO_SAMP_FREQ:
@@ -569,7 +553,7 @@ hree
 > >> +			    struct iio_chan_spec const *chan,
 > >> +			    int val, int val2, long mask)
 > >> +{
-> >> +	struct rm3100_data *data =3D iio_priv(indio_dev);
+> >> +	struct rm3100_data *data = iio_priv(indio_dev);
 > >> +
 > >> +	switch (mask) {
 > >> +	case IIO_CHAN_INFO_SAMP_FREQ:
@@ -580,35 +564,35 @@ hree
 > >> +
 > >> +}
 > >> +
-> >> +static const struct iio_info rm3100_info =3D {
-> >> +	.attrs =3D &rm3100_attribute_group,
-> >> +	.read_raw =3D rm3100_read_raw,
-> >> +	.write_raw =3D rm3100_write_raw,
+> >> +static const struct iio_info rm3100_info = {
+> >> +	.attrs = &rm3100_attribute_group,
+> >> +	.read_raw = rm3100_read_raw,
+> >> +	.write_raw = rm3100_write_raw,
 > >> +};
 > >> +
 > >> +static irqreturn_t rm3100_trigger_handler(int irq, void *p)
 > >> +{
-> >> +	struct iio_poll_func *pf =3D p;
-> >> +	struct iio_dev *indio_dev =3D pf->indio_dev;
-> >> +	struct rm3100_data *data =3D iio_priv(indio_dev);
-> >> +	struct regmap *regmap =3D data->regmap;
+> >> +	struct iio_poll_func *pf = p;
+> >> +	struct iio_dev *indio_dev = pf->indio_dev;
+> >> +	struct rm3100_data *data = iio_priv(indio_dev);
+> >> +	struct regmap *regmap = data->regmap;
 > >> +	int ret;
 > >> +	int i;
 > >> +
 > >> +	mutex_lock(&data->lock);
-> >> +	ret =3D rm3100_wait_measurement(data);
+> >> +	ret = rm3100_wait_measurement(data);
 > >> +	if (ret < 0) {
 > >> +		mutex_unlock(&data->lock);
 > >> +		goto done;
 > >> +	}
 > >> +
-> >> +	ret =3D regmap_bulk_read(regmap, RM3100_REG_MX2, data->buffer, 9);
+> >> +	ret = regmap_bulk_read(regmap, RM3100_REG_MX2, data->buffer, 9);
 > >> +	mutex_unlock(&data->lock);
 > >> +	if (ret < 0)
 > >> +		goto done;
 > >> +
 > >> +	/* Convert XXXYYYZZZxxx to XXXxYYYxZZZx. x for paddings. */
-> >> +	for (i =3D 0; i < 2; i++)
+> >> +	for (i = 0; i < 2; i++)
 > >> +		memcpy(data->buffer + (2 - i) * 4, data->buffer + (2 - i) * 3,
 > >> +		       3);
 > >> +
@@ -626,7 +610,7 @@ hree
 > >> +}
 > >> +
 > >> +static void rm3100_remove(void *pdata)
-> >> +{ =20
+> >> +{  
 > > Given this is no longer the opposite of probe, but rather just an
 > > action to undo one particular element of probe (be it the only
 > > one that needs undoing - yeah a subtle distinction ;)...
@@ -637,46 +621,45 @@ hree
 > > to be rm3100_start as well so that it's easy to see how these
 > > are paired?
 > >
-> > =20
-> >> +	struct rm3100_data *data =3D pdata;
-> >> +	struct device *dev =3D regmap_get_device(data->regmap);
+> >  
+> >> +	struct rm3100_data *data = pdata;
+> >> +	struct device *dev = regmap_get_device(data->regmap);
 > >> +	int ret;
 > >> +
-> >> +	ret =3D regmap_write(data->regmap, RM3100_REG_CMM, 0x00);
+> >> +	ret = regmap_write(data->regmap, RM3100_REG_CMM, 0x00);
 > >> +	if (ret < 0)
 > >> +		dev_err(dev, "failed to stop the device.\n");
 > >> +}
 > >> +
-> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, in=
-t irq)
+> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)
 > >> +{
 > >> +	struct iio_dev *indio_dev;
 > >> +	struct rm3100_data *data;
 > >> +	unsigned int tmp;
 > >> +	int ret;
 > >> +
-> >> +	indio_dev =3D devm_iio_device_alloc(dev, sizeof(*data));
+> >> +	indio_dev = devm_iio_device_alloc(dev, sizeof(*data));
 > >> +	if (!indio_dev)
 > >> +		return -ENOMEM;
 > >> +
-> >> +	data =3D iio_priv(indio_dev);
-> >> +	data->regmap =3D regmap;
+> >> +	data = iio_priv(indio_dev);
+> >> +	data->regmap = regmap;
 > >> +
 > >> +	mutex_init(&data->lock);
 > >> +
-> >> +	indio_dev->dev.parent =3D dev;
-> >> +	indio_dev->name =3D "rm3100";
-> >> +	indio_dev->info =3D &rm3100_info;
-> >> +	indio_dev->channels =3D rm3100_channels;
-> >> +	indio_dev->num_channels =3D ARRAY_SIZE(rm3100_channels);
-> >> +	indio_dev->modes =3D INDIO_DIRECT_MODE;
-> >> +	indio_dev->available_scan_masks =3D rm3100_scan_masks;
+> >> +	indio_dev->dev.parent = dev;
+> >> +	indio_dev->name = "rm3100";
+> >> +	indio_dev->info = &rm3100_info;
+> >> +	indio_dev->channels = rm3100_channels;
+> >> +	indio_dev->num_channels = ARRAY_SIZE(rm3100_channels);
+> >> +	indio_dev->modes = INDIO_DIRECT_MODE;
+> >> +	indio_dev->available_scan_masks = rm3100_scan_masks;
 > >> +
 > >> +	if (!irq)
-> >> +		data->use_interrupt =3D false;
+> >> +		data->use_interrupt = false;
 > >> +	else {
-> >> +		data->use_interrupt =3D true;
-> >> +		ret =3D devm_request_irq(dev,
+> >> +		data->use_interrupt = true;
+> >> +		ret = devm_request_irq(dev,
 > >> +				       irq,
 > >> +				       rm3100_irq_handler,
 > >> +				       IRQF_TRIGGER_RISING,
@@ -689,34 +672,34 @@ t irq)
 > >> +		init_completion(&data->measuring_done);
 > >> +	}
 > >> +
-> >> +	ret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, NULL,
+> >> +	ret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL,
 > >> +					      rm3100_trigger_handler, NULL);
 > >> +	if (ret < 0)
 > >> +		return ret;
 > >> +
-> >> +	ret =3D regmap_read(regmap, RM3100_REG_TMRC, &tmp);
+> >> +	ret = regmap_read(regmap, RM3100_REG_TMRC, &tmp);
 > >> +	if (ret < 0)
 > >> +		return ret;
 > >> +	/* Initializing max wait time, 3sec more wait time for conversion. */
-> >> +	data->conversion_time =3D
+> >> +	data->conversion_time =
 > >> +		rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][2] + 3000;
 > >> +
 > >> +	/* Cycle count values may not be what we want. */
-> >> +	ret =3D regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);
+> >> +	ret = regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);
 > >> +	if (ret < 0)
 > >> +		return ret;
-> >> +	if ((tmp - RM3100_TMRC_OFFSET) =3D=3D 0)
+> >> +	if ((tmp - RM3100_TMRC_OFFSET) == 0)
 > >> +		rm3100_set_cycle_count(data, 100);
 > >> +	else
 > >> +		rm3100_set_cycle_count(data, 200);
 > >> +
 > >> +	/* Starting all channels' conversion. */
-> >> +	ret =3D regmap_write(regmap, RM3100_REG_CMM,
+> >> +	ret = regmap_write(regmap, RM3100_REG_CMM,
 > >> +		RM3100_CMM_X | RM3100_CMM_Y | RM3100_CMM_Z | RM3100_CMM_START);
 > >> +	if (ret < 0)
 > >> +		return ret;
 > >> +
-> >> +	ret =3D devm_add_action(dev, rm3100_remove, data);
+> >> +	ret = devm_add_action(dev, rm3100_remove, data);
 > >> +	if (ret < 0) {
 > >> +		rm3100_remove(data);
 > >> +		return ret;
@@ -729,8 +712,7 @@ t irq)
 > >> +MODULE_AUTHOR("Song Qiang <songqiang1304521@gmail.com>");
 > >> +MODULE_DESCRIPTION("PNI RM3100 3-axis magnetometer i2c driver");
 > >> +MODULE_LICENSE("GPL v2");
-> >> diff --git a/drivers/iio/magnetometer/rm3100-i2c.c b/drivers/iio/magne=
-tometer/rm3100-i2c.c
+> >> diff --git a/drivers/iio/magnetometer/rm3100-i2c.c b/drivers/iio/magnetometer/rm3100-i2c.c
 > >> new file mode 100644
 > >> index 000000000000..8f02e0366886
 > >> --- /dev/null
@@ -750,15 +732,15 @@ tometer/rm3100-i2c.c
 > >> +
 > >> +#include "rm3100.h"
 > >> +
-> >> +static const struct regmap_config rm3100_regmap_config =3D {
-> >> +	.reg_bits =3D 8,
-> >> +	.val_bits =3D 8,
+> >> +static const struct regmap_config rm3100_regmap_config = {
+> >> +	.reg_bits = 8,
+> >> +	.val_bits = 8,
 > >> +
-> >> +	.rd_table =3D &rm3100_readable_table,
-> >> +	.wr_table =3D &rm3100_writable_table,
-> >> +	.volatile_table =3D &rm3100_volatile_table,
+> >> +	.rd_table = &rm3100_readable_table,
+> >> +	.wr_table = &rm3100_writable_table,
+> >> +	.volatile_table = &rm3100_volatile_table,
 > >> +
-> >> +	.cache_type =3D REGCACHE_RBTREE,
+> >> +	.cache_type = REGCACHE_RBTREE,
 > >> +};
 > >> +
 > >> +static int rm3100_probe(struct i2c_client *client)
@@ -769,33 +751,32 @@ tometer/rm3100-i2c.c
 > >> +		I2C_FUNC_SMBUS_READ_I2C_BLOCK | I2C_FUNC_SMBUS_BYTE_DATA))
 > >> +		return -EOPNOTSUPP;
 > >> +
-> >> +	regmap =3D  devm_regmap_init_i2c(client, &rm3100_regmap_config);
+> >> +	regmap =  devm_regmap_init_i2c(client, &rm3100_regmap_config);
 > >> +	if (IS_ERR(regmap))
 > >> +		return PTR_ERR(regmap);
 > >> +
 > >> +	return rm3100_common_probe(&client->dev, regmap, client->irq);
 > >> +}
 > >> +
-> >> +static const struct of_device_id rm3100_dt_match[] =3D {
-> >> +	{ .compatible =3D "pni,rm3100", },
+> >> +static const struct of_device_id rm3100_dt_match[] = {
+> >> +	{ .compatible = "pni,rm3100", },
 > >> +	{ }
 > >> +};
 > >> +MODULE_DEVICE_TABLE(of, rm3100_dt_match);
 > >> +
-> >> +static struct i2c_driver rm3100_driver =3D {
-> >> +	.driver =3D {
-> >> +		.name =3D "rm3100-i2c",
-> >> +		.of_match_table =3D rm3100_dt_match,
+> >> +static struct i2c_driver rm3100_driver = {
+> >> +	.driver = {
+> >> +		.name = "rm3100-i2c",
+> >> +		.of_match_table = rm3100_dt_match,
 > >> +	},
-> >> +	.probe_new =3D rm3100_probe,
+> >> +	.probe_new = rm3100_probe,
 > >> +};
 > >> +module_i2c_driver(rm3100_driver);
 > >> +
 > >> +MODULE_AUTHOR("Song Qiang <songqiang1304521@gmail.com>");
 > >> +MODULE_DESCRIPTION("PNI RM3100 3-axis magnetometer i2c driver");
 > >> +MODULE_LICENSE("GPL v2");
-> >> diff --git a/drivers/iio/magnetometer/rm3100-spi.c b/drivers/iio/magne=
-tometer/rm3100-spi.c
+> >> diff --git a/drivers/iio/magnetometer/rm3100-spi.c b/drivers/iio/magnetometer/rm3100-spi.c
 > >> new file mode 100644
 > >> index 000000000000..65d5eb9e4f5e
 > >> --- /dev/null
@@ -813,17 +794,17 @@ tometer/rm3100-spi.c
 > >> +
 > >> +#include "rm3100.h"
 > >> +
-> >> +static const struct regmap_config rm3100_regmap_config =3D {
-> >> +	.reg_bits =3D 8,
-> >> +	.val_bits =3D 8,
+> >> +static const struct regmap_config rm3100_regmap_config = {
+> >> +	.reg_bits = 8,
+> >> +	.val_bits = 8,
 > >> +
-> >> +	.rd_table =3D &rm3100_readable_table,
-> >> +	.wr_table =3D &rm3100_writable_table,
-> >> +	.volatile_table =3D &rm3100_volatile_table,
+> >> +	.rd_table = &rm3100_readable_table,
+> >> +	.wr_table = &rm3100_writable_table,
+> >> +	.volatile_table = &rm3100_volatile_table,
 > >> +
-> >> +	.read_flag_mask =3D 0x80,
+> >> +	.read_flag_mask = 0x80,
 > >> +
-> >> +	.cache_type =3D REGCACHE_RBTREE,
+> >> +	.cache_type = REGCACHE_RBTREE,
 > >> +};
 > >> +
 > >> +static int rm3100_probe(struct spi_device *spi)
@@ -832,41 +813,40 @@ tometer/rm3100-spi.c
 > >> +	int ret;
 > >> +
 > >> +	/* Actually this device supports both mode 0 and mode 3. */
-> >> +	spi->mode =3D SPI_MODE_0;
+> >> +	spi->mode = SPI_MODE_0;
 > >> +	/* Data rates cannot exceed 1Mbits. */
-> >> +	spi->max_speed_hz =3D 1000000;
-> >> +	spi->bits_per_word =3D 8;
-> >> +	ret =3D spi_setup(spi);
+> >> +	spi->max_speed_hz = 1000000;
+> >> +	spi->bits_per_word = 8;
+> >> +	ret = spi_setup(spi);
 > >> +	if (ret)
 > >> +		return ret;
 > >> +
-> >> +	regmap =3D devm_regmap_init_spi(spi, &rm3100_regmap_config);
+> >> +	regmap = devm_regmap_init_spi(spi, &rm3100_regmap_config);
 > >> +	if (IS_ERR(regmap))
 > >> +		return PTR_ERR(regmap);
 > >> +
 > >> +	return rm3100_common_probe(&spi->dev, regmap, spi->irq);
 > >> +}
 > >> +
-> >> +static const struct of_device_id rm3100_dt_match[] =3D {
-> >> +	{ .compatible =3D "pni,rm3100", },
+> >> +static const struct of_device_id rm3100_dt_match[] = {
+> >> +	{ .compatible = "pni,rm3100", },
 > >> +	{ }
 > >> +};
 > >> +MODULE_DEVICE_TABLE(of, rm3100_dt_match);
 > >> +
-> >> +static struct spi_driver rm3100_driver =3D {
-> >> +	.driver =3D {
-> >> +		.name =3D "rm3100-spi",
-> >> +		.of_match_table =3D rm3100_dt_match,
+> >> +static struct spi_driver rm3100_driver = {
+> >> +	.driver = {
+> >> +		.name = "rm3100-spi",
+> >> +		.of_match_table = rm3100_dt_match,
 > >> +	},
-> >> +	.probe =3D rm3100_probe,
+> >> +	.probe = rm3100_probe,
 > >> +};
 > >> +module_spi_driver(rm3100_driver);
 > >> +
 > >> +MODULE_AUTHOR("Song Qiang <songqiang1304521@gmail.com>");
 > >> +MODULE_DESCRIPTION("PNI RM3100 3-axis magnetometer spi driver");
 > >> +MODULE_LICENSE("GPL v2");
-> >> diff --git a/drivers/iio/magnetometer/rm3100.h b/drivers/iio/magnetome=
-ter/rm3100.h
+> >> diff --git a/drivers/iio/magnetometer/rm3100.h b/drivers/iio/magnetometer/rm3100.h
 > >> new file mode 100644
 > >> index 000000000000..c3508218bc77
 > >> --- /dev/null
@@ -886,8 +866,7 @@ ter/rm3100.h
 > >> +extern const struct regmap_access_table rm3100_writable_table;
 > >> +extern const struct regmap_access_table rm3100_volatile_table;
 > >> +
-> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, in=
-t irq);
+> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq);
 > >> +
-> >> +#endif /* RM3100_CORE_H */ =20
->=20
+> >> +#endif /* RM3100_CORE_H */  
+>
diff --git a/a/content_digest b/N1/content_digest
index 1d45891..5ffa175 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -21,10 +21,10 @@
  "On Thu, 11 Oct 2018 12:35:18 +0800\n"
  "Song Qiang <songqiang1304521@gmail.com> wrote:\n"
  "\n"
- "> On 2018=E5=B9=B410=E6=9C=8807=E6=97=A5 23:44, Jonathan Cameron wrote:\n"
+ "> On 2018\345\271\26410\346\234\21007\346\227\245 23:44, Jonathan Cameron wrote:\n"
  "> > On Tue,  2 Oct 2018 22:38:12 +0800\n"
  "> > Song Qiang <songqiang1304521@gmail.com> wrote:\n"
- "> > =20\n"
+ "> >  \n"
  "> >> PNI RM3100 is a high resolution, large signal immunity magnetometer,\n"
  "> >> composed of 3 single sensors and a processing chip with a MagI2C\n"
  "> >> interface.\n"
@@ -37,7 +37,7 @@
  "> >>   - Both interrupt and polling measurement is supported, depends on if\n"
  "> >>     the 'interrupts' in DT is declared.\n"
  "> >>\n"
- "> >> Signed-off-by: Song Qiang <songqiang1304521@gmail.com> =20\n"
+ "> >> Signed-off-by: Song Qiang <songqiang1304521@gmail.com>  \n"
  "> > I realise now that I should have read the datasheet properly.\n"
  "> > Sorry about that.\n"
  "> >\n"
@@ -68,11 +68,11 @@
  "> > about how you were handing the interrupts.\n"
  "> >\n"
  "> > Jonathan\n"
- "> > =20\n"
- ">=20\n"
+ "> >  \n"
+ "> \n"
  "> Hi Jonathan,\n"
- ">=20\n"
- "> I learned the way of handling single shot from the driver of hmc5843,=20\n"
+ "> \n"
+ "> I learned the way of handling single shot from the driver of hmc5843, \n"
  "> seems like it needs changing, too.\n"
  "Yikes, that is indeed much the same and for no apparent reason.\n"
  "If I was guessing, I would say that driver started as an input device\n"
@@ -84,23 +84,21 @@
  "Now the challenge is whether anyone has one of these fairly old parts\n"
  "to test any changes?\n"
  "\n"
- "> There was some problems with my computer. Lenovo updates told me to=20\n"
- "> update BIOS and it went dead. I didn't write any code the past few days,=\n"
- "=20\n"
+ "> There was some problems with my computer. Lenovo updates told me to \n"
+ "> update BIOS and it went dead. I didn't write any code the past few days, \n"
  "> just got it fixed today.\n"
  ":(\n"
  "\n"
  "Jonathan\n"
- ">=20\n"
+ "> \n"
  "> yours,\n"
  "> Song Qiang\n"
- ">=20\n"
+ "> \n"
  "> >> ---\n"
  "> >>   MAINTAINERS                            |   7 +\n"
  "> >>   drivers/iio/magnetometer/Kconfig       |  29 ++\n"
  "> >>   drivers/iio/magnetometer/Makefile      |   4 +\n"
- "> >>   drivers/iio/magnetometer/rm3100-core.c | 539 +++++++++++++++++++++++=\n"
- "++\n"
+ "> >>   drivers/iio/magnetometer/rm3100-core.c | 539 +++++++++++++++++++++++++\n"
  "> >>   drivers/iio/magnetometer/rm3100-i2c.c  |  58 +++\n"
  "> >>   drivers/iio/magnetometer/rm3100-spi.c  |  64 +++\n"
  "> >>   drivers/iio/magnetometer/rm3100.h      |  17 +\n"
@@ -114,11 +112,10 @@
  "> >> index 967ce8cdd1cc..14eeeb072403 100644\n"
  "> >> --- a/MAINTAINERS\n"
  "> >> +++ b/MAINTAINERS\n"
- "> >> @@ -11393,6 +11393,13 @@ M:\t\"Rafael J. Wysocki\" <rafael.j.wysocki@inte=\n"
- "l.com>\n"
+ "> >> @@ -11393,6 +11393,13 @@ M:\t\"Rafael J. Wysocki\" <rafael.j.wysocki@intel.com>\n"
  "> >>   S:\tMaintained\n"
  "> >>   F:\tdrivers/pnp/\n"
- "> >>  =20\n"
+ "> >>   \n"
  "> >> +PNI RM3100 IIO DRIVER\n"
  "> >> +M:\tSong Qiang <songqiang1304521@gmail.com>\n"
  "> >> +L:\tlinux-iio@vger.kernel.org\n"
@@ -129,15 +126,14 @@
  "> >>   POSIX CLOCKS and TIMERS\n"
  "> >>   M:\tThomas Gleixner <tglx@linutronix.de>\n"
  "> >>   L:\tlinux-kernel@vger.kernel.org\n"
- "> >> diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetomet=\n"
- "er/Kconfig\n"
+ "> >> diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetometer/Kconfig\n"
  "> >> index ed9d776d01af..8a63cbbca4b7 100644\n"
  "> >> --- a/drivers/iio/magnetometer/Kconfig\n"
  "> >> +++ b/drivers/iio/magnetometer/Kconfig\n"
  "> >> @@ -175,4 +175,33 @@ config SENSORS_HMC5843_SPI\n"
  "> >>   \t  - hmc5843_core (core functions)\n"
  "> >>   \t  - hmc5843_spi (support for HMC5983)\n"
- "> >>  =20\n"
+ "> >>   \n"
  "> >> +config SENSORS_RM3100\n"
  "> >> +\ttristate\n"
  "> >> +\tselect IIO_BUFFER\n"
@@ -168,22 +164,19 @@
  "> >> +\t  will be called rm3100-spi.\n"
  "> >> +\n"
  "> >>   endmenu\n"
- "> >> diff --git a/drivers/iio/magnetometer/Makefile b/drivers/iio/magnetome=\n"
- "ter/Makefile\n"
+ "> >> diff --git a/drivers/iio/magnetometer/Makefile b/drivers/iio/magnetometer/Makefile\n"
  "> >> index 664b2f866472..ba1bc34b82fa 100644\n"
  "> >> --- a/drivers/iio/magnetometer/Makefile\n"
  "> >> +++ b/drivers/iio/magnetometer/Makefile\n"
- "> >> @@ -24,3 +24,7 @@ obj-$(CONFIG_IIO_ST_MAGN_SPI_3AXIS) +=3D st_magn_spi=\n"
- ".o\n"
- "> >>   obj-$(CONFIG_SENSORS_HMC5843)\t\t+=3D hmc5843_core.o\n"
- "> >>   obj-$(CONFIG_SENSORS_HMC5843_I2C)\t+=3D hmc5843_i2c.o\n"
- "> >>   obj-$(CONFIG_SENSORS_HMC5843_SPI)\t+=3D hmc5843_spi.o\n"
- "> >> +\n"
- "> >> +obj-$(CONFIG_SENSORS_RM3100)\t\t+=3D rm3100-core.o\n"
- "> >> +obj-$(CONFIG_SENSORS_RM3100_I2C)\t+=3D rm3100-i2c.o\n"
- "> >> +obj-$(CONFIG_SENSORS_RM3100_SPI)\t+=3D rm3100-spi.o\n"
- "> >> diff --git a/drivers/iio/magnetometer/rm3100-core.c b/drivers/iio/magn=\n"
- "etometer/rm3100-core.c\n"
+ "> >> @@ -24,3 +24,7 @@ obj-$(CONFIG_IIO_ST_MAGN_SPI_3AXIS) += st_magn_spi.o\n"
+ "> >>   obj-$(CONFIG_SENSORS_HMC5843)\t\t+= hmc5843_core.o\n"
+ "> >>   obj-$(CONFIG_SENSORS_HMC5843_I2C)\t+= hmc5843_i2c.o\n"
+ "> >>   obj-$(CONFIG_SENSORS_HMC5843_SPI)\t+= hmc5843_spi.o\n"
+ "> >> +\n"
+ "> >> +obj-$(CONFIG_SENSORS_RM3100)\t\t+= rm3100-core.o\n"
+ "> >> +obj-$(CONFIG_SENSORS_RM3100_I2C)\t+= rm3100-i2c.o\n"
+ "> >> +obj-$(CONFIG_SENSORS_RM3100_SPI)\t+= rm3100-spi.o\n"
+ "> >> diff --git a/drivers/iio/magnetometer/rm3100-core.c b/drivers/iio/magnetometer/rm3100-core.c\n"
  "> >> new file mode 100644\n"
  "> >> index 000000000000..cacdaee28ae3\n"
  "> >> --- /dev/null\n"
@@ -248,9 +241,8 @@
  "> >> +#define RM3100_V_REG_END\t\tRM3100_REG_STATUS\n"
  "> >> +\n"
  "> >> +/*\n"
- "> >> + * This is computed by hand, is the sum of channel storage bits and p=\n"
- "adding\n"
- "> >> + * bits, which is 4+4+4+12=3D24 in here.\n"
+ "> >> + * This is computed by hand, is the sum of channel storage bits and padding\n"
+ "> >> + * bits, which is 4+4+4+12=24 in here.\n"
  "> >> + */\n"
  "> >> +#define RM3100_SCAN_BYTES\t\t24\n"
  "> >> +\n"
@@ -274,39 +266,39 @@
  "> >> +\tstruct mutex lock;\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +static const struct regmap_range rm3100_readable_ranges[] =3D {\n"
+ "> >> +static const struct regmap_range rm3100_readable_ranges[] = {\n"
  "> >> +\tregmap_reg_range(RM3100_W_REG_START, RM3100_W_REG_END),\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +const struct regmap_access_table rm3100_readable_table =3D {\n"
- "> >> +\t.yes_ranges =3D rm3100_readable_ranges,\n"
- "> >> +\t.n_yes_ranges =3D ARRAY_SIZE(rm3100_readable_ranges),\n"
+ "> >> +const struct regmap_access_table rm3100_readable_table = {\n"
+ "> >> +\t.yes_ranges = rm3100_readable_ranges,\n"
+ "> >> +\t.n_yes_ranges = ARRAY_SIZE(rm3100_readable_ranges),\n"
  "> >> +};\n"
  "> >> +EXPORT_SYMBOL_GPL(rm3100_readable_table);\n"
  "> >> +\n"
- "> >> +static const struct regmap_range rm3100_writable_ranges[] =3D {\n"
+ "> >> +static const struct regmap_range rm3100_writable_ranges[] = {\n"
  "> >> +\tregmap_reg_range(RM3100_R_REG_START, RM3100_R_REG_END),\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +const struct regmap_access_table rm3100_writable_table =3D {\n"
- "> >> +\t.yes_ranges =3D rm3100_writable_ranges,\n"
- "> >> +\t.n_yes_ranges =3D ARRAY_SIZE(rm3100_writable_ranges),\n"
+ "> >> +const struct regmap_access_table rm3100_writable_table = {\n"
+ "> >> +\t.yes_ranges = rm3100_writable_ranges,\n"
+ "> >> +\t.n_yes_ranges = ARRAY_SIZE(rm3100_writable_ranges),\n"
  "> >> +};\n"
  "> >> +EXPORT_SYMBOL_GPL(rm3100_writable_table);\n"
  "> >> +\n"
- "> >> +static const struct regmap_range rm3100_volatile_ranges[] =3D {\n"
+ "> >> +static const struct regmap_range rm3100_volatile_ranges[] = {\n"
  "> >> +\tregmap_reg_range(RM3100_V_REG_START, RM3100_V_REG_END),\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +const struct regmap_access_table rm3100_volatile_table =3D {\n"
- "> >> +\t.yes_ranges =3D rm3100_volatile_ranges,\n"
- "> >> +\t.n_yes_ranges =3D ARRAY_SIZE(rm3100_volatile_ranges),\n"
+ "> >> +const struct regmap_access_table rm3100_volatile_table = {\n"
+ "> >> +\t.yes_ranges = rm3100_volatile_ranges,\n"
+ "> >> +\t.n_yes_ranges = ARRAY_SIZE(rm3100_volatile_ranges),\n"
  "> >> +};\n"
  "> >> +EXPORT_SYMBOL_GPL(rm3100_volatile_table);\n"
  "> >> +\n"
  "> >> +static irqreturn_t rm3100_irq_handler(int irq, void *d)\n"
  "> >> +{\n"
- "> >> +\tstruct rm3100_data *data =3D d;\n"
+ "> >> +\tstruct rm3100_data *data = d;\n"
  "> >> +\n"
  "> >> +\tcomplete(&data->measuring_done);\n"
  "> >> +\n"
@@ -315,9 +307,9 @@
  "> >> +\n"
  "> >> +static int rm3100_wait_measurement(struct rm3100_data *data)\n"
  "> >> +{\n"
- "> >> +\tstruct regmap *regmap =3D data->regmap;\n"
+ "> >> +\tstruct regmap *regmap = data->regmap;\n"
  "> >> +\tunsigned int val;\n"
- "> >> +\tint tries =3D 20;\n"
+ "> >> +\tint tries = 20;\n"
  "> >> +\tint ret;\n"
  "> >> +\n"
  "> >> +\t/*\n"
@@ -333,13 +325,13 @@
  "> >> +\tif (data->use_interrupt)\n"
  "> >> +\t\treinit_completion(&data->measuring_done);\n"
  "> >> +\n"
- "> >> +\tret =3D regmap_read(regmap, RM3100_REG_STATUS, &val);\n"
+ "> >> +\tret = regmap_read(regmap, RM3100_REG_STATUS, &val);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\n"
- "> >> +\tif ((val & RM3100_STATUS_DRDY) !=3D RM3100_STATUS_DRDY) {\n"
+ "> >> +\tif ((val & RM3100_STATUS_DRDY) != RM3100_STATUS_DRDY) {\n"
  "> >> +\t\tif (data->use_interrupt) {\n"
- "> >> +\t\t\tret =3D wait_for_completion_timeout(&data->measuring_done,\n"
+ "> >> +\t\t\tret = wait_for_completion_timeout(&data->measuring_done,\n"
  "> >> +\t\t\t\tmsecs_to_jiffies(data->conversion_time));\n"
  "> >> +\t\t\tif (ret < 0)\n"
  "> >> +\t\t\t\treturn -ETIMEDOUT;\n"
@@ -347,7 +339,7 @@
  "> >> +\t\t\tdo {\n"
  "> >> +\t\t\t\tusleep_range(1000, 5000);\n"
  "> >> +\n"
- "> >> +\t\t\t\tret =3D regmap_read(regmap, RM3100_REG_STATUS,\n"
+ "> >> +\t\t\t\tret = regmap_read(regmap, RM3100_REG_STATUS,\n"
  "> >> +\t\t\t\t\t\t  &val);\n"
  "> >> +\t\t\t\tif (ret < 0)\n"
  "> >> +\t\t\t\t\treturn ret;\n"
@@ -362,28 +354,25 @@
  "> >> +\treturn 0;\n"
  "> >> +}\n"
  "> >> +\n"
- "> >> +static int rm3100_read_mag(struct rm3100_data *data, int idx, int *va=\n"
- "l)\n"
+ "> >> +static int rm3100_read_mag(struct rm3100_data *data, int idx, int *val)\n"
  "> >> +{\n"
- "> >> +\tstruct regmap *regmap =3D data->regmap;\n"
+ "> >> +\tstruct regmap *regmap = data->regmap;\n"
  "> >> +\tu8 buffer[3];\n"
  "> >> +\tint ret;\n"
  "> >> +\n"
  "> >> +\tmutex_lock(&data->lock);\n"
- "> >> +\tret =3D rm3100_wait_measurement(data);\n"
+ "> >> +\tret = rm3100_wait_measurement(data);\n"
  "> >> +\tif (ret < 0) {\n"
  "> >> +\t\tmutex_unlock(&data->lock);\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\t}\n"
  "> >> +\n"
- "> >> +\tret =3D regmap_bulk_read(regmap, RM3100_REG_MX2 + 3 * idx, buffer, 3=\n"
- ");\n"
+ "> >> +\tret = regmap_bulk_read(regmap, RM3100_REG_MX2 + 3 * idx, buffer, 3);\n"
  "> >> +\tmutex_unlock(&data->lock);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\n"
- "> >> +\t*val =3D sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer=\n"
- "[2],\n"
+ "> >> +\t*val = sign_extend32((buffer[0] << 16) | (buffer[1] << 8) | buffer[2],\n"
  "> >> +\t\t\t     23);\n"
  "> >> +\n"
  "> >> +\treturn IIO_VAL_INT;\n"
@@ -391,43 +380,42 @@
  "> >> +\n"
  "> >> +#define RM3100_CHANNEL(axis, idx)\t\t\t\t\t\\\n"
  "> >> +\t{\t\t\t\t\t\t\t\t\\\n"
- "> >> +\t\t.type =3D IIO_MAGN,\t\t\t\t\t\\\n"
- "> >> +\t\t.modified =3D 1,\t\t\t\t\t\t\\\n"
- "> >> +\t\t.channel2 =3D IIO_MOD_##axis,\t\t\t\t\\\n"
- "> >> +\t\t.info_mask_separate =3D BIT(IIO_CHAN_INFO_RAW),\t\t\\\n"
- "> >> +\t\t.info_mask_shared_by_type =3D BIT(IIO_CHAN_INFO_SCALE) |\t\\\n"
+ "> >> +\t\t.type = IIO_MAGN,\t\t\t\t\t\\\n"
+ "> >> +\t\t.modified = 1,\t\t\t\t\t\t\\\n"
+ "> >> +\t\t.channel2 = IIO_MOD_##axis,\t\t\t\t\\\n"
+ "> >> +\t\t.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),\t\t\\\n"
+ "> >> +\t\t.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) |\t\\\n"
  "> >> +\t\t\tBIT(IIO_CHAN_INFO_SAMP_FREQ),\t\t\t\\\n"
- "> >> +\t\t.scan_index =3D idx,\t\t\t\t\t\\\n"
- "> >> +\t\t.scan_type =3D {\t\t\t\t\t\t\\\n"
- "> >> +\t\t\t.sign =3D 's',\t\t\t\t\t\\\n"
- "> >> +\t\t\t.realbits =3D 24,\t\t\t\t\t\\\n"
- "> >> +\t\t\t.storagebits =3D 32,\t\t\t\t\\\n"
- "> >> +\t\t\t.shift =3D 8,\t\t\t\t\t\\\n"
- "> >> +\t\t\t.endianness =3D IIO_BE,\t\t\t\t\\\n"
+ "> >> +\t\t.scan_index = idx,\t\t\t\t\t\\\n"
+ "> >> +\t\t.scan_type = {\t\t\t\t\t\t\\\n"
+ "> >> +\t\t\t.sign = 's',\t\t\t\t\t\\\n"
+ "> >> +\t\t\t.realbits = 24,\t\t\t\t\t\\\n"
+ "> >> +\t\t\t.storagebits = 32,\t\t\t\t\\\n"
+ "> >> +\t\t\t.shift = 8,\t\t\t\t\t\\\n"
+ "> >> +\t\t\t.endianness = IIO_BE,\t\t\t\t\\\n"
  "> >> +\t\t},\t\t\t\t\t\t\t\\\n"
  "> >> +\t}\n"
  "> >> +\n"
- "> >> +static const struct iio_chan_spec rm3100_channels[] =3D {\n"
+ "> >> +static const struct iio_chan_spec rm3100_channels[] = {\n"
  "> >> +\tRM3100_CHANNEL(X, 0),\n"
  "> >> +\tRM3100_CHANNEL(Y, 1),\n"
  "> >> +\tRM3100_CHANNEL(Z, 2),\n"
  "> >> +\tIIO_CHAN_SOFT_TIMESTAMP(3),\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +static const unsigned long rm3100_scan_masks[] =3D {BIT(0) | BIT(1) |=\n"
- " BIT(2), 0};\n"
+ "> >> +static const unsigned long rm3100_scan_masks[] = {BIT(0) | BIT(1) | BIT(2), 0};\n"
  "> >> +\n"
  "> >> +static IIO_CONST_ATTR_SAMP_FREQ_AVAIL(\n"
  "> >> +\t\"600 300 150 75 37 18 9 4.5 2.3 1.2 0.6 0.3 0.015 0.075\"\n"
  "> >> +);\n"
  "> >> +\n"
- "> >> +static struct attribute *rm3100_attributes[] =3D {\n"
+ "> >> +static struct attribute *rm3100_attributes[] = {\n"
  "> >> +\t&iio_const_attr_sampling_frequency_available.dev_attr.attr,\n"
  "> >> +\tNULL,\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +static const struct attribute_group rm3100_attribute_group =3D {\n"
- "> >> +\t.attrs =3D rm3100_attributes,\n"
+ "> >> +static const struct attribute_group rm3100_attribute_group = {\n"
+ "> >> +\t.attrs = rm3100_attributes,\n"
  "> >> +};\n"
  "> >> +\n"
  "> >> +#define RM3100_SAMP_NUM\t\t\t14\n"
@@ -437,26 +425,25 @@
  "> >> + * Time between reading: rm3100_sam_rates[][2]ms.\n"
  "> >> + * The first one is actually 1.7ms.\n"
  "> >> + */\n"
- "> >> +static const int rm3100_samp_rates[RM3100_SAMP_NUM][3] =3D {\n"
+ "> >> +static const int rm3100_samp_rates[RM3100_SAMP_NUM][3] = {\n"
  "> >> +\t{600, 0, 2}, {300, 0, 3}, {150, 0, 7}, {75, 0, 13}, {37, 0, 27},\n"
  "> >> +\t{18, 0, 55}, {9, 0, 110}, {4, 500000, 220}, {2, 300000, 440},\n"
  "> >> +\t{1, 200000, 800}, {0, 600000, 1600}, {0, 300000, 3300},\n"
  "> >> +\t{0, 15000, 6700},  {0, 75000, 13000}\n"
  "> >> +};\n"
  "> >> +\n"
- "> >> +static int rm3100_get_samp_freq(struct rm3100_data *data, int *val, i=\n"
- "nt *val2)\n"
+ "> >> +static int rm3100_get_samp_freq(struct rm3100_data *data, int *val, int *val2)\n"
  "> >> +{\n"
  "> >> +\tint ret;\n"
  "> >> +\tunsigned int tmp;\n"
  "> >> +\n"
  "> >> +\tmutex_lock(&data->lock);\n"
- "> >> +\tret =3D regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);\n"
+ "> >> +\tret = regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);\n"
  "> >> +\tmutex_unlock(&data->lock);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
- "> >> +\t*val =3D rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][0];\n"
- "> >> +\t*val2 =3D rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][1];\n"
+ "> >> +\t*val = rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][0];\n"
+ "> >> +\t*val2 = rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][1];\n"
  "> >> +\n"
  "> >> +\treturn IIO_VAL_INT_PLUS_MICRO;\n"
  "> >> +}\n"
@@ -466,81 +453,79 @@
  "> >> +\tint ret;\n"
  "> >> +\tu8 i;\n"
  "> >> +\n"
- "> >> +\tfor (i =3D 0; i < 3; i++) {\n"
- "> >> +\t\tret =3D regmap_write(data->regmap, RM3100_REG_CC_X + 2 * i, val);\n"
+ "> >> +\tfor (i = 0; i < 3; i++) {\n"
+ "> >> +\t\tret = regmap_write(data->regmap, RM3100_REG_CC_X + 2 * i, val);\n"
  "> >> +\t\tif (ret < 0)\n"
  "> >> +\t\t\treturn ret;\n"
  "> >> +\t}\n"
  "> >> +\n"
  "> >> +\tswitch (val) {\n"
  "> >> +\tcase 50:\n"
- "> >> +\t\tdata->cycle_count_index =3D 0;\n"
+ "> >> +\t\tdata->cycle_count_index = 0;\n"
  "> >> +\t\tbreak;\n"
  "> >> +\tcase 100:\n"
- "> >> +\t\tdata->cycle_count_index =3D 1;\n"
+ "> >> +\t\tdata->cycle_count_index = 1;\n"
  "> >> +\t\tbreak;\n"
  "> >> +\t/*\n"
  "> >> +\t * This function will never be called by users' code, so here we\n"
  "> >> +\t * assume that it will never get a wrong parameter.\n"
  "> >> +\t */\n"
  "> >> +\tdefault:\n"
- "> >> +\t\tdata->cycle_count_index =3D 2;\n"
+ "> >> +\t\tdata->cycle_count_index = 2;\n"
  "> >> +\t}\n"
  "> >> +\n"
  "> >> +\treturn 0;\n"
  "> >> +}\n"
  "> >> +\n"
- "> >> +static int rm3100_set_samp_freq(struct rm3100_data *data, int val, in=\n"
- "t val2)\n"
+ "> >> +static int rm3100_set_samp_freq(struct rm3100_data *data, int val, int val2)\n"
  "> >> +{\n"
- "> >> +\tstruct regmap *regmap =3D data->regmap;\n"
+ "> >> +\tstruct regmap *regmap = data->regmap;\n"
  "> >> +\tunsigned int cycle_count;\n"
  "> >> +\tint ret;\n"
  "> >> +\tint i;\n"
  "> >> +\n"
  "> >> +\tmutex_lock(&data->lock);\n"
  "> >> +\t/* All cycle count registers use the same value. */\n"
- "> >> +\tret =3D regmap_read(regmap, RM3100_REG_CC_X, &cycle_count);\n"
+ "> >> +\tret = regmap_read(regmap, RM3100_REG_CC_X, &cycle_count);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\tgoto unlock_return;\n"
  "> >> +\n"
- "> >> +\tfor (i =3D 0; i < RM3100_SAMP_NUM; i++) {\n"
- "> >> +\t\tif (val =3D=3D rm3100_samp_rates[i][0] &&\n"
- "> >> +\t\t    val2 =3D=3D rm3100_samp_rates[i][1])\n"
+ "> >> +\tfor (i = 0; i < RM3100_SAMP_NUM; i++) {\n"
+ "> >> +\t\tif (val == rm3100_samp_rates[i][0] &&\n"
+ "> >> +\t\t    val2 == rm3100_samp_rates[i][1])\n"
  "> >> +\t\t\tbreak;\n"
  "> >> +\t}\n"
- "> >> +\tif (i =3D=3D RM3100_SAMP_NUM) {\n"
- "> >> +\t\tret =3D -EINVAL;\n"
+ "> >> +\tif (i == RM3100_SAMP_NUM) {\n"
+ "> >> +\t\tret = -EINVAL;\n"
  "> >> +\t\tgoto unlock_return;\n"
  "> >> +\t}\n"
  "> >> +\n"
- "> >> +\tret =3D regmap_write(regmap, RM3100_REG_TMRC, i + RM3100_TMRC_OFFSET=\n"
- ");\n"
+ "> >> +\tret = regmap_write(regmap, RM3100_REG_TMRC, i + RM3100_TMRC_OFFSET);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\tgoto unlock_return;\n"
  "> >> +\n"
  "> >> +\t/* Checking if cycle count registers need changing. */\n"
- "> >> +\tif (val =3D=3D 600 && cycle_count =3D=3D 200) {\n"
- "> >> +\t\tret =3D rm3100_set_cycle_count(data, 100);\n"
+ "> >> +\tif (val == 600 && cycle_count == 200) {\n"
+ "> >> +\t\tret = rm3100_set_cycle_count(data, 100);\n"
  "> >> +\t\tif (ret < 0)\n"
  "> >> +\t\t\tgoto unlock_return;\n"
- "> >> +\t} else if (val !=3D 600 && cycle_count =3D=3D 100) {\n"
- "> >> +\t\tret =3D rm3100_set_cycle_count(data, 200);\n"
+ "> >> +\t} else if (val != 600 && cycle_count == 100) {\n"
+ "> >> +\t\tret = rm3100_set_cycle_count(data, 200);\n"
  "> >> +\t\tif (ret < 0)\n"
  "> >> +\t\t\tgoto unlock_return;\n"
  "> >> +\t}\n"
  "> >> +\n"
  "> >> +\t/* Writing TMRC registers requires CMM reset. */\n"
- "> >> +\tret =3D regmap_write(regmap, RM3100_REG_CMM, 0);\n"
+ "> >> +\tret = regmap_write(regmap, RM3100_REG_CMM, 0);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\tgoto unlock_return;\n"
- "> >> +\tret =3D regmap_write(regmap, RM3100_REG_CMM,\n"
+ "> >> +\tret = regmap_write(regmap, RM3100_REG_CMM,\n"
  "> >> +\t\tRM3100_CMM_X | RM3100_CMM_Y | RM3100_CMM_Z | RM3100_CMM_START);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\tgoto unlock_return;\n"
  "> >> +\tmutex_unlock(&data->lock);\n"
  "> >> +\n"
- "> >> +\tdata->conversion_time =3D rm3100_samp_rates[i][2] + 3000;\n"
+ "> >> +\tdata->conversion_time = rm3100_samp_rates[i][2] + 3000;\n"
  "> >> +\treturn 0;\n"
  "> >> +\n"
  "> >> +unlock_return:\n"
@@ -549,33 +534,32 @@
  "> >> +}\n"
  "> >> +\n"
  "> >> +/*\n"
- "> >> + * The scale of this sensor depends on the cycle count value, these t=\n"
- "hree\n"
+ "> >> + * The scale of this sensor depends on the cycle count value, these three\n"
  "> >> + * values are corresponding to the cycle count value 50, 100, 200.\n"
- "> >> + * scale =3D output / gain * 10^4.\n"
+ "> >> + * scale = output / gain * 10^4.\n"
  "> >> + */\n"
- "> >> +const static int rm3100_scale[] =3D {500, 263, 133};\n"
+ "> >> +const static int rm3100_scale[] = {500, 263, 133};\n"
  "> >> +\n"
  "> >> +static int rm3100_read_raw(struct iio_dev *indio_dev,\n"
  "> >> +\t\t\t   const struct iio_chan_spec *chan,\n"
  "> >> +\t\t\t   int *val, int *val2, long mask)\n"
  "> >> +{\n"
- "> >> +\tstruct rm3100_data *data =3D iio_priv(indio_dev);\n"
+ "> >> +\tstruct rm3100_data *data = iio_priv(indio_dev);\n"
  "> >> +\tint ret;\n"
  "> >> +\n"
  "> >> +\tswitch (mask) {\n"
  "> >> +\tcase IIO_CHAN_INFO_RAW:\n"
- "> >> +\t\tret =3D iio_device_claim_direct_mode(indio_dev);\n"
+ "> >> +\t\tret = iio_device_claim_direct_mode(indio_dev);\n"
  "> >> +\t\tif (ret < 0)\n"
  "> >> +\t\t\treturn ret;\n"
  "> >> +\n"
- "> >> +\t\tret =3D rm3100_read_mag(data, chan->scan_index, val);\n"
+ "> >> +\t\tret = rm3100_read_mag(data, chan->scan_index, val);\n"
  "> >> +\t\tiio_device_release_direct_mode(indio_dev);\n"
  "> >> +\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\tcase IIO_CHAN_INFO_SCALE:\n"
- "> >> +\t\t*val =3D 0;\n"
- "> >> +\t\t*val2 =3D rm3100_scale[data->cycle_count_index];\n"
+ "> >> +\t\t*val = 0;\n"
+ "> >> +\t\t*val2 = rm3100_scale[data->cycle_count_index];\n"
  "> >> +\n"
  "> >> +\t\treturn IIO_VAL_INT_PLUS_MICRO;\n"
  "> >> +\tcase IIO_CHAN_INFO_SAMP_FREQ:\n"
@@ -589,7 +573,7 @@
  "> >> +\t\t\t    struct iio_chan_spec const *chan,\n"
  "> >> +\t\t\t    int val, int val2, long mask)\n"
  "> >> +{\n"
- "> >> +\tstruct rm3100_data *data =3D iio_priv(indio_dev);\n"
+ "> >> +\tstruct rm3100_data *data = iio_priv(indio_dev);\n"
  "> >> +\n"
  "> >> +\tswitch (mask) {\n"
  "> >> +\tcase IIO_CHAN_INFO_SAMP_FREQ:\n"
@@ -600,35 +584,35 @@
  "> >> +\n"
  "> >> +}\n"
  "> >> +\n"
- "> >> +static const struct iio_info rm3100_info =3D {\n"
- "> >> +\t.attrs =3D &rm3100_attribute_group,\n"
- "> >> +\t.read_raw =3D rm3100_read_raw,\n"
- "> >> +\t.write_raw =3D rm3100_write_raw,\n"
+ "> >> +static const struct iio_info rm3100_info = {\n"
+ "> >> +\t.attrs = &rm3100_attribute_group,\n"
+ "> >> +\t.read_raw = rm3100_read_raw,\n"
+ "> >> +\t.write_raw = rm3100_write_raw,\n"
  "> >> +};\n"
  "> >> +\n"
  "> >> +static irqreturn_t rm3100_trigger_handler(int irq, void *p)\n"
  "> >> +{\n"
- "> >> +\tstruct iio_poll_func *pf =3D p;\n"
- "> >> +\tstruct iio_dev *indio_dev =3D pf->indio_dev;\n"
- "> >> +\tstruct rm3100_data *data =3D iio_priv(indio_dev);\n"
- "> >> +\tstruct regmap *regmap =3D data->regmap;\n"
+ "> >> +\tstruct iio_poll_func *pf = p;\n"
+ "> >> +\tstruct iio_dev *indio_dev = pf->indio_dev;\n"
+ "> >> +\tstruct rm3100_data *data = iio_priv(indio_dev);\n"
+ "> >> +\tstruct regmap *regmap = data->regmap;\n"
  "> >> +\tint ret;\n"
  "> >> +\tint i;\n"
  "> >> +\n"
  "> >> +\tmutex_lock(&data->lock);\n"
- "> >> +\tret =3D rm3100_wait_measurement(data);\n"
+ "> >> +\tret = rm3100_wait_measurement(data);\n"
  "> >> +\tif (ret < 0) {\n"
  "> >> +\t\tmutex_unlock(&data->lock);\n"
  "> >> +\t\tgoto done;\n"
  "> >> +\t}\n"
  "> >> +\n"
- "> >> +\tret =3D regmap_bulk_read(regmap, RM3100_REG_MX2, data->buffer, 9);\n"
+ "> >> +\tret = regmap_bulk_read(regmap, RM3100_REG_MX2, data->buffer, 9);\n"
  "> >> +\tmutex_unlock(&data->lock);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\tgoto done;\n"
  "> >> +\n"
  "> >> +\t/* Convert XXXYYYZZZxxx to XXXxYYYxZZZx. x for paddings. */\n"
- "> >> +\tfor (i =3D 0; i < 2; i++)\n"
+ "> >> +\tfor (i = 0; i < 2; i++)\n"
  "> >> +\t\tmemcpy(data->buffer + (2 - i) * 4, data->buffer + (2 - i) * 3,\n"
  "> >> +\t\t       3);\n"
  "> >> +\n"
@@ -646,7 +630,7 @@
  "> >> +}\n"
  "> >> +\n"
  "> >> +static void rm3100_remove(void *pdata)\n"
- "> >> +{ =20\n"
+ "> >> +{  \n"
  "> > Given this is no longer the opposite of probe, but rather just an\n"
  "> > action to undo one particular element of probe (be it the only\n"
  "> > one that needs undoing - yeah a subtle distinction ;)...\n"
@@ -657,46 +641,45 @@
  "> > to be rm3100_start as well so that it's easy to see how these\n"
  "> > are paired?\n"
  "> >\n"
- "> > =20\n"
- "> >> +\tstruct rm3100_data *data =3D pdata;\n"
- "> >> +\tstruct device *dev =3D regmap_get_device(data->regmap);\n"
+ "> >  \n"
+ "> >> +\tstruct rm3100_data *data = pdata;\n"
+ "> >> +\tstruct device *dev = regmap_get_device(data->regmap);\n"
  "> >> +\tint ret;\n"
  "> >> +\n"
- "> >> +\tret =3D regmap_write(data->regmap, RM3100_REG_CMM, 0x00);\n"
+ "> >> +\tret = regmap_write(data->regmap, RM3100_REG_CMM, 0x00);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\tdev_err(dev, \"failed to stop the device.\\n\");\n"
  "> >> +}\n"
  "> >> +\n"
- "> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, in=\n"
- "t irq)\n"
+ "> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)\n"
  "> >> +{\n"
  "> >> +\tstruct iio_dev *indio_dev;\n"
  "> >> +\tstruct rm3100_data *data;\n"
  "> >> +\tunsigned int tmp;\n"
  "> >> +\tint ret;\n"
  "> >> +\n"
- "> >> +\tindio_dev =3D devm_iio_device_alloc(dev, sizeof(*data));\n"
+ "> >> +\tindio_dev = devm_iio_device_alloc(dev, sizeof(*data));\n"
  "> >> +\tif (!indio_dev)\n"
  "> >> +\t\treturn -ENOMEM;\n"
  "> >> +\n"
- "> >> +\tdata =3D iio_priv(indio_dev);\n"
- "> >> +\tdata->regmap =3D regmap;\n"
+ "> >> +\tdata = iio_priv(indio_dev);\n"
+ "> >> +\tdata->regmap = regmap;\n"
  "> >> +\n"
  "> >> +\tmutex_init(&data->lock);\n"
  "> >> +\n"
- "> >> +\tindio_dev->dev.parent =3D dev;\n"
- "> >> +\tindio_dev->name =3D \"rm3100\";\n"
- "> >> +\tindio_dev->info =3D &rm3100_info;\n"
- "> >> +\tindio_dev->channels =3D rm3100_channels;\n"
- "> >> +\tindio_dev->num_channels =3D ARRAY_SIZE(rm3100_channels);\n"
- "> >> +\tindio_dev->modes =3D INDIO_DIRECT_MODE;\n"
- "> >> +\tindio_dev->available_scan_masks =3D rm3100_scan_masks;\n"
+ "> >> +\tindio_dev->dev.parent = dev;\n"
+ "> >> +\tindio_dev->name = \"rm3100\";\n"
+ "> >> +\tindio_dev->info = &rm3100_info;\n"
+ "> >> +\tindio_dev->channels = rm3100_channels;\n"
+ "> >> +\tindio_dev->num_channels = ARRAY_SIZE(rm3100_channels);\n"
+ "> >> +\tindio_dev->modes = INDIO_DIRECT_MODE;\n"
+ "> >> +\tindio_dev->available_scan_masks = rm3100_scan_masks;\n"
  "> >> +\n"
  "> >> +\tif (!irq)\n"
- "> >> +\t\tdata->use_interrupt =3D false;\n"
+ "> >> +\t\tdata->use_interrupt = false;\n"
  "> >> +\telse {\n"
- "> >> +\t\tdata->use_interrupt =3D true;\n"
- "> >> +\t\tret =3D devm_request_irq(dev,\n"
+ "> >> +\t\tdata->use_interrupt = true;\n"
+ "> >> +\t\tret = devm_request_irq(dev,\n"
  "> >> +\t\t\t\t       irq,\n"
  "> >> +\t\t\t\t       rm3100_irq_handler,\n"
  "> >> +\t\t\t\t       IRQF_TRIGGER_RISING,\n"
@@ -709,34 +692,34 @@
  "> >> +\t\tinit_completion(&data->measuring_done);\n"
  "> >> +\t}\n"
  "> >> +\n"
- "> >> +\tret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, NULL,\n"
+ "> >> +\tret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL,\n"
  "> >> +\t\t\t\t\t      rm3100_trigger_handler, NULL);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\n"
- "> >> +\tret =3D regmap_read(regmap, RM3100_REG_TMRC, &tmp);\n"
+ "> >> +\tret = regmap_read(regmap, RM3100_REG_TMRC, &tmp);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\t/* Initializing max wait time, 3sec more wait time for conversion. */\n"
- "> >> +\tdata->conversion_time =3D\n"
+ "> >> +\tdata->conversion_time =\n"
  "> >> +\t\trm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][2] + 3000;\n"
  "> >> +\n"
  "> >> +\t/* Cycle count values may not be what we want. */\n"
- "> >> +\tret =3D regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);\n"
+ "> >> +\tret = regmap_read(data->regmap, RM3100_REG_TMRC, &tmp);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
- "> >> +\tif ((tmp - RM3100_TMRC_OFFSET) =3D=3D 0)\n"
+ "> >> +\tif ((tmp - RM3100_TMRC_OFFSET) == 0)\n"
  "> >> +\t\trm3100_set_cycle_count(data, 100);\n"
  "> >> +\telse\n"
  "> >> +\t\trm3100_set_cycle_count(data, 200);\n"
  "> >> +\n"
  "> >> +\t/* Starting all channels' conversion. */\n"
- "> >> +\tret =3D regmap_write(regmap, RM3100_REG_CMM,\n"
+ "> >> +\tret = regmap_write(regmap, RM3100_REG_CMM,\n"
  "> >> +\t\tRM3100_CMM_X | RM3100_CMM_Y | RM3100_CMM_Z | RM3100_CMM_START);\n"
  "> >> +\tif (ret < 0)\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\n"
- "> >> +\tret =3D devm_add_action(dev, rm3100_remove, data);\n"
+ "> >> +\tret = devm_add_action(dev, rm3100_remove, data);\n"
  "> >> +\tif (ret < 0) {\n"
  "> >> +\t\trm3100_remove(data);\n"
  "> >> +\t\treturn ret;\n"
@@ -749,8 +732,7 @@
  "> >> +MODULE_AUTHOR(\"Song Qiang <songqiang1304521@gmail.com>\");\n"
  "> >> +MODULE_DESCRIPTION(\"PNI RM3100 3-axis magnetometer i2c driver\");\n"
  "> >> +MODULE_LICENSE(\"GPL v2\");\n"
- "> >> diff --git a/drivers/iio/magnetometer/rm3100-i2c.c b/drivers/iio/magne=\n"
- "tometer/rm3100-i2c.c\n"
+ "> >> diff --git a/drivers/iio/magnetometer/rm3100-i2c.c b/drivers/iio/magnetometer/rm3100-i2c.c\n"
  "> >> new file mode 100644\n"
  "> >> index 000000000000..8f02e0366886\n"
  "> >> --- /dev/null\n"
@@ -770,15 +752,15 @@
  "> >> +\n"
  "> >> +#include \"rm3100.h\"\n"
  "> >> +\n"
- "> >> +static const struct regmap_config rm3100_regmap_config =3D {\n"
- "> >> +\t.reg_bits =3D 8,\n"
- "> >> +\t.val_bits =3D 8,\n"
+ "> >> +static const struct regmap_config rm3100_regmap_config = {\n"
+ "> >> +\t.reg_bits = 8,\n"
+ "> >> +\t.val_bits = 8,\n"
  "> >> +\n"
- "> >> +\t.rd_table =3D &rm3100_readable_table,\n"
- "> >> +\t.wr_table =3D &rm3100_writable_table,\n"
- "> >> +\t.volatile_table =3D &rm3100_volatile_table,\n"
+ "> >> +\t.rd_table = &rm3100_readable_table,\n"
+ "> >> +\t.wr_table = &rm3100_writable_table,\n"
+ "> >> +\t.volatile_table = &rm3100_volatile_table,\n"
  "> >> +\n"
- "> >> +\t.cache_type =3D REGCACHE_RBTREE,\n"
+ "> >> +\t.cache_type = REGCACHE_RBTREE,\n"
  "> >> +};\n"
  "> >> +\n"
  "> >> +static int rm3100_probe(struct i2c_client *client)\n"
@@ -789,33 +771,32 @@
  "> >> +\t\tI2C_FUNC_SMBUS_READ_I2C_BLOCK | I2C_FUNC_SMBUS_BYTE_DATA))\n"
  "> >> +\t\treturn -EOPNOTSUPP;\n"
  "> >> +\n"
- "> >> +\tregmap =3D  devm_regmap_init_i2c(client, &rm3100_regmap_config);\n"
+ "> >> +\tregmap =  devm_regmap_init_i2c(client, &rm3100_regmap_config);\n"
  "> >> +\tif (IS_ERR(regmap))\n"
  "> >> +\t\treturn PTR_ERR(regmap);\n"
  "> >> +\n"
  "> >> +\treturn rm3100_common_probe(&client->dev, regmap, client->irq);\n"
  "> >> +}\n"
  "> >> +\n"
- "> >> +static const struct of_device_id rm3100_dt_match[] =3D {\n"
- "> >> +\t{ .compatible =3D \"pni,rm3100\", },\n"
+ "> >> +static const struct of_device_id rm3100_dt_match[] = {\n"
+ "> >> +\t{ .compatible = \"pni,rm3100\", },\n"
  "> >> +\t{ }\n"
  "> >> +};\n"
  "> >> +MODULE_DEVICE_TABLE(of, rm3100_dt_match);\n"
  "> >> +\n"
- "> >> +static struct i2c_driver rm3100_driver =3D {\n"
- "> >> +\t.driver =3D {\n"
- "> >> +\t\t.name =3D \"rm3100-i2c\",\n"
- "> >> +\t\t.of_match_table =3D rm3100_dt_match,\n"
+ "> >> +static struct i2c_driver rm3100_driver = {\n"
+ "> >> +\t.driver = {\n"
+ "> >> +\t\t.name = \"rm3100-i2c\",\n"
+ "> >> +\t\t.of_match_table = rm3100_dt_match,\n"
  "> >> +\t},\n"
- "> >> +\t.probe_new =3D rm3100_probe,\n"
+ "> >> +\t.probe_new = rm3100_probe,\n"
  "> >> +};\n"
  "> >> +module_i2c_driver(rm3100_driver);\n"
  "> >> +\n"
  "> >> +MODULE_AUTHOR(\"Song Qiang <songqiang1304521@gmail.com>\");\n"
  "> >> +MODULE_DESCRIPTION(\"PNI RM3100 3-axis magnetometer i2c driver\");\n"
  "> >> +MODULE_LICENSE(\"GPL v2\");\n"
- "> >> diff --git a/drivers/iio/magnetometer/rm3100-spi.c b/drivers/iio/magne=\n"
- "tometer/rm3100-spi.c\n"
+ "> >> diff --git a/drivers/iio/magnetometer/rm3100-spi.c b/drivers/iio/magnetometer/rm3100-spi.c\n"
  "> >> new file mode 100644\n"
  "> >> index 000000000000..65d5eb9e4f5e\n"
  "> >> --- /dev/null\n"
@@ -833,17 +814,17 @@
  "> >> +\n"
  "> >> +#include \"rm3100.h\"\n"
  "> >> +\n"
- "> >> +static const struct regmap_config rm3100_regmap_config =3D {\n"
- "> >> +\t.reg_bits =3D 8,\n"
- "> >> +\t.val_bits =3D 8,\n"
+ "> >> +static const struct regmap_config rm3100_regmap_config = {\n"
+ "> >> +\t.reg_bits = 8,\n"
+ "> >> +\t.val_bits = 8,\n"
  "> >> +\n"
- "> >> +\t.rd_table =3D &rm3100_readable_table,\n"
- "> >> +\t.wr_table =3D &rm3100_writable_table,\n"
- "> >> +\t.volatile_table =3D &rm3100_volatile_table,\n"
+ "> >> +\t.rd_table = &rm3100_readable_table,\n"
+ "> >> +\t.wr_table = &rm3100_writable_table,\n"
+ "> >> +\t.volatile_table = &rm3100_volatile_table,\n"
  "> >> +\n"
- "> >> +\t.read_flag_mask =3D 0x80,\n"
+ "> >> +\t.read_flag_mask = 0x80,\n"
  "> >> +\n"
- "> >> +\t.cache_type =3D REGCACHE_RBTREE,\n"
+ "> >> +\t.cache_type = REGCACHE_RBTREE,\n"
  "> >> +};\n"
  "> >> +\n"
  "> >> +static int rm3100_probe(struct spi_device *spi)\n"
@@ -852,41 +833,40 @@
  "> >> +\tint ret;\n"
  "> >> +\n"
  "> >> +\t/* Actually this device supports both mode 0 and mode 3. */\n"
- "> >> +\tspi->mode =3D SPI_MODE_0;\n"
+ "> >> +\tspi->mode = SPI_MODE_0;\n"
  "> >> +\t/* Data rates cannot exceed 1Mbits. */\n"
- "> >> +\tspi->max_speed_hz =3D 1000000;\n"
- "> >> +\tspi->bits_per_word =3D 8;\n"
- "> >> +\tret =3D spi_setup(spi);\n"
+ "> >> +\tspi->max_speed_hz = 1000000;\n"
+ "> >> +\tspi->bits_per_word = 8;\n"
+ "> >> +\tret = spi_setup(spi);\n"
  "> >> +\tif (ret)\n"
  "> >> +\t\treturn ret;\n"
  "> >> +\n"
- "> >> +\tregmap =3D devm_regmap_init_spi(spi, &rm3100_regmap_config);\n"
+ "> >> +\tregmap = devm_regmap_init_spi(spi, &rm3100_regmap_config);\n"
  "> >> +\tif (IS_ERR(regmap))\n"
  "> >> +\t\treturn PTR_ERR(regmap);\n"
  "> >> +\n"
  "> >> +\treturn rm3100_common_probe(&spi->dev, regmap, spi->irq);\n"
  "> >> +}\n"
  "> >> +\n"
- "> >> +static const struct of_device_id rm3100_dt_match[] =3D {\n"
- "> >> +\t{ .compatible =3D \"pni,rm3100\", },\n"
+ "> >> +static const struct of_device_id rm3100_dt_match[] = {\n"
+ "> >> +\t{ .compatible = \"pni,rm3100\", },\n"
  "> >> +\t{ }\n"
  "> >> +};\n"
  "> >> +MODULE_DEVICE_TABLE(of, rm3100_dt_match);\n"
  "> >> +\n"
- "> >> +static struct spi_driver rm3100_driver =3D {\n"
- "> >> +\t.driver =3D {\n"
- "> >> +\t\t.name =3D \"rm3100-spi\",\n"
- "> >> +\t\t.of_match_table =3D rm3100_dt_match,\n"
+ "> >> +static struct spi_driver rm3100_driver = {\n"
+ "> >> +\t.driver = {\n"
+ "> >> +\t\t.name = \"rm3100-spi\",\n"
+ "> >> +\t\t.of_match_table = rm3100_dt_match,\n"
  "> >> +\t},\n"
- "> >> +\t.probe =3D rm3100_probe,\n"
+ "> >> +\t.probe = rm3100_probe,\n"
  "> >> +};\n"
  "> >> +module_spi_driver(rm3100_driver);\n"
  "> >> +\n"
  "> >> +MODULE_AUTHOR(\"Song Qiang <songqiang1304521@gmail.com>\");\n"
  "> >> +MODULE_DESCRIPTION(\"PNI RM3100 3-axis magnetometer spi driver\");\n"
  "> >> +MODULE_LICENSE(\"GPL v2\");\n"
- "> >> diff --git a/drivers/iio/magnetometer/rm3100.h b/drivers/iio/magnetome=\n"
- "ter/rm3100.h\n"
+ "> >> diff --git a/drivers/iio/magnetometer/rm3100.h b/drivers/iio/magnetometer/rm3100.h\n"
  "> >> new file mode 100644\n"
  "> >> index 000000000000..c3508218bc77\n"
  "> >> --- /dev/null\n"
@@ -906,10 +886,9 @@
  "> >> +extern const struct regmap_access_table rm3100_writable_table;\n"
  "> >> +extern const struct regmap_access_table rm3100_volatile_table;\n"
  "> >> +\n"
- "> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, in=\n"
- "t irq);\n"
+ "> >> +int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq);\n"
  "> >> +\n"
- "> >> +#endif /* RM3100_CORE_H */ =20\n"
- >=20
+ "> >> +#endif /* RM3100_CORE_H */  \n"
+ >
 
-c38b99cb2851be7a46fa3e9baa10711e1bfa8a5f96bb59d2020a48bc426e577c
+25b156d5ce5153f6d72fa4f5e97bb2105674874d4fd3f8a777b97ed448f7a62f

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.