All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <52283367.4070603@st.com>

diff --git a/a/1.txt b/N1/1.txt
index d78f244..808a372 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,73 +1,98 @@
-DQo+Pj4gRHVlIHRvIHRoZSBNQUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0
-YW5kaW5nIGFuZCBtYWludGFpbmluZw0KPj4+IHRoZSBMUFMzMzFBUCdzIGNoYW5uZWwgZGVzY3Jp
-cHRvciBpcyBzdWJzdGFudGlhbGx5IGRpZmZpY3VsdC4gVGhpcyBwYXRjaA0KPj4+IGlzIGJhc2Vk
-IG9uIHRoZSB2aWV3IHRoYXQgaXQncyBiZXR0ZXIgdG8gaGF2ZSBlYXN5IHRvIHJlYWQsIG1haW50
-YWluYWJsZQ0KPj4+IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJl
-LiBGb3IgdGhhdCByZWFzb24gd2UncmUNCj4+PiBleHBhbmRpbmcgdGhlIGFycmF5IHNvIGluaXRp
-YWxpc2F0aW9uIGlzIGNvbXBsZXRlZCBpbiBmdWxsLg0KPj4gQWxzbyBmb3IgdGhpcyBvbmUsIHRo
-ZSBjaGFubmVsIG5hbWVzIGFyZSBnZW5lcmFsIGFuZCBjYW4gYmUgc2hhcmVkDQo+PiBiZXR3ZWVu
-IGRpZmZlcmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBh
-IHByb2JsZW0NCj4+IGZvciBtZSwgYnV0IEkgdGhpbmsgaXQncyBub3QgbmVjZXNzYXJ5IGFkZHMg
-YWxsIHRoYXQgY29kZS4uLg0KPiBJJ20gbm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSB0aGlzLiBX
-b3VsZCB5b3UgYmUga2luZCBlbm91Z2ggdG8NCj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3
-YXkgcGxlYXNlPw0KVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2NoYW5u
-ZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYyANCmZvciBvbmUgc2Vuc29yIGJ1dCBjYW4gYmUgc2hh
-cmVkLiBPayBpbiB0aGlzIGRyaXZlciBub3cgaXMgdXNlZCBvbmx5IGZvciANCnRoZSBscHMzMzFh
-cCBidXQgZm9yIGV4YW1wbGUgaW4gYWNjZWxlcm9tZXRlciBkcml2ZXIgaXMgdXNlZCBieSBzZXZl
-cmFsIA0Kc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBuZXcgcHJlc3N1
-cmUgc2Vuc29ycyB1c2UgdGhlIA0Kc2FtZSBjaGFubmVscyBkZWZpbml0aW9uLg0KVGhlIGNoYW5u
-ZWwgZGVmaW5pdGlvbiBpcyBpbnRlbmRlZCB0aGUgc3dpdGNoIGJ5IG1hY3JvIA0KU1RfU0VOU09S
-U19MU01fQ0hBTk5FTFMgdG8gdGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHBy
-b2JsZW0gDQpidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkuDQoNCkRlbmlzDQoNCj4+PiBT
-aWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPg0KPj4+IC0tLQ0K
-Pj4+ICAgIGRyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYyB8IDQ1ICsrKysr
-KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAzNCBp
-bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9kcml2
-ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3Vy
-ZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+PiBpbmRleCBiZWNmYjI1Li43YmE5Mjk5IDEwMDY0NA0K
-Pj4+IC0tLSBhL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+ICsr
-KyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+IEBAIC01OCwx
-NiArNTgsMzkgQEANCj4+PiAgICAjZGVmaW5lIFNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERS
-CQkweDI4DQo+Pj4gICAgI2RlZmluZSBTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIJCTB4MmIN
-Cj4+PiAgICANCj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNz
-X2NoYW5uZWxzW10gPSB7DQo+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NV
-UkUsDQo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19sc3Az
-MzFhcF9jaGFubmVsc1tdID0gew0KPj4+ICsJew0KPj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJF
-LA0KPj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4gKwkJLmFkZHJlc3MgPSBTVF9Q
-UkVTU19MUFMzMzFBUF9PVVRfWExfQUREUiwNCj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NFTlNP
-UlNfU0NBTl9YLA0KPj4+ICsJCS5zY2FuX3R5cGUgPSB7DQo+Pj4gKwkJCS5zaWduID0gJ3UnLA0K
-Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+PiArCQkJLnN0b3JhZ2ViaXRzID0gMjQsDQo+Pj4g
-KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+ICsJCX0sDQo+Pj4gKwkJLmluZm9fbWFza19z
-ZXBhcmF0ZSA9DQo+Pj4gICAgCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJSU9fQ0hB
-Tl9JTkZPX1NDQUxFKSwNCj4+PiAtCQkJU1RfU0VOU09SU19TQ0FOX1gsIDAsIElJT19OT19NT0Qs
-ICd1JywgSUlPX0xFLCAyNCwgMjQsDQo+Pj4gLQkJCVNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9B
-RERSKSwNCj4+PiAtCVNUX1NFTlNPUlNfTFNNX0NIQU5ORUxTKElJT19URU1QLA0KPj4+IC0JCQlC
-SVQoSUlPX0NIQU5fSU5GT19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpIHwNCj4+PiAt
-CQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZGU0VUKSwNCj4+PiAtCQkJLTEsIDAsIElJT19OT19N
-T0QsICdzJywgSUlPX0xFLCAxNiwgMTYsDQo+Pj4gLQkJCVNUX1RFTVBfTFBTMzMxQVBfT1VUX0xf
-QUREUiksDQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gKwl7DQo+Pj4gKwkJ
-LnR5cGUgPSBJSU9fVEVNUCwNCj4+PiArCQkuY2hhbm5lbDIgPSBJSU9fTk9fTU9ELA0KPj4+ICsJ
-CS5hZGRyZXNzID0gU1RfVEVNUF9MUFMzMzFBUF9PVVRfTF9BRERSLA0KPj4+ICsJCS5zY2FuX2lu
-ZGV4ID0gLTEsDQo+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+PiArCQkJLnNpZ24gPSAndScsDQo+
-Pj4gKwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+ICsJCQkuc3RvcmFnZWJpdHMgPSAxNiwNCj4+PiAr
-CQkJLmVuZGlhbm5lc3MgPSBJSU9fTEUsDQo+Pj4gKwkJfSwNCj4+PiArCQkuaW5mb19tYXNrX3Nl
-cGFyYXRlID0NCj4+PiArCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8DQo+Pj4gKwkJCUJJVChJ
-SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX09GRlNFVCks
-DQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gICAgCUlJT19DSEFOX1NPRlRf
-VElNRVNUQU1QKDEpDQo+Pj4gICAgfTsNCj4+PiAgICANCj4+PiBAQCAtNzcsNyArMTAwLDcgQEAg
-c3RhdGljIGNvbnN0IHN0cnVjdCBzdF9zZW5zb3JzIHN0X3ByZXNzX3NlbnNvcnNbXSA9IHsNCj4+
-PiAgICAJCS5zZW5zb3JzX3N1cHBvcnRlZCA9IHsNCj4+PiAgICAJCQlbMF0gPSBMUFMzMzFBUF9Q
-UkVTU19ERVZfTkFNRSwNCj4+PiAgICAJCX0sDQo+Pj4gLQkJLmNoID0gKHN0cnVjdCBpaW9fY2hh
-bl9zcGVjICopc3RfcHJlc3NfY2hhbm5lbHMsDQo+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hh
-bl9zcGVjICopc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4gICAgCQkub2RyID0gew0K
-Pj4+ICAgIAkJCS5hZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4gICAgCQkJ
-Lm1hc2sgPSBTVF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+PiBAQCAtMjE0LDcgKzIzNyw3
-IEBAIGludCBzdF9wcmVzc19jb21tb25fcHJvYmUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikN
-Cj4+PiAgICAJcGRhdGEtPm51bV9kYXRhX2NoYW5uZWxzID0gU1RfUFJFU1NfTlVNQkVSX0RBVEFf
-Q0hBTk5FTFM7DQo+Pj4gICAgCXBkYXRhLT5tdWx0aXJlYWRfYml0ID0gcGRhdGEtPnNlbnNvci0+
-bXVsdGlfcmVhZF9iaXQ7DQo+Pj4gICAgCWluZGlvX2Rldi0+Y2hhbm5lbHMgPSBwZGF0YS0+c2Vu
-c29yLT5jaDsNCj4+PiAtCWluZGlvX2Rldi0+bnVtX2NoYW5uZWxzID0gQVJSQVlfU0laRShzdF9w
-cmVzc19jaGFubmVscyk7DQo+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJ
-WkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+ICAgIA0KPj4+ICAgIAlwZGF0YS0+
-Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2NhbGVfYXZsICopDQo+
-Pj4gICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsNCg==
+
+>>> Due to the MACRO used, the task of reading, understanding and maintaining
+>>> the LPS331AP's channel descriptor is substantially difficult. This patch
+>>> is based on the view that it's better to have easy to read, maintainable
+>>> code than to save a few lines here and there. For that reason we're
+>>> expanding the array so initialisation is completed in full.
+>> Also for this one, the channel names are general and can be shared
+>> between different sensors. For the channel definition it's not a problem
+>> for me, but I think it's not necessary adds all that code...
+> I'm not sure what you mean by this. Would you be kind enough to
+> explain it in a different way please?
+The channel name (in this case st_press_channels) is not only specific 
+for one sensor but can be shared. Ok in this driver now is used only for 
+the lps331ap but for example in accelerometer driver is used by several 
+sensors. It's possible in the future for new pressure sensors use the 
+same channels definition.
+The channel definition is intended the switch by macro 
+ST_SENSORS_LSM_CHANNELS to the full definition, for me is not a problem 
+but I think it's not necessary.
+
+Denis
+
+>>> Signed-off-by: Lee Jones <lee.jones@linaro.org>
+>>> ---
+>>>    drivers/iio/pressure/st_pressure_core.c | 45 +++++++++++++++++++++++++--------
+>>>    1 file changed, 34 insertions(+), 11 deletions(-)
+>>>
+>>> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
+>>> index becfb25..7ba9299 100644
+>>> --- a/drivers/iio/pressure/st_pressure_core.c
+>>> +++ b/drivers/iio/pressure/st_pressure_core.c
+>>> @@ -58,16 +58,39 @@
+>>>    #define ST_PRESS_LPS331AP_OUT_XL_ADDR		0x28
+>>>    #define ST_TEMP_LPS331AP_OUT_L_ADDR		0x2b
+>>>    
+>>> -static const struct iio_chan_spec st_press_channels[] = {
+>>> -	ST_SENSORS_LSM_CHANNELS(IIO_PRESSURE,
+>>> +static const struct iio_chan_spec st_press_lsp331ap_channels[] = {
+>>> +	{
+>>> +		.type = IIO_PRESSURE,
+>>> +		.channel2 = IIO_NO_MOD,
+>>> +		.address = ST_PRESS_LPS331AP_OUT_XL_ADDR,
+>>> +		.scan_index = ST_SENSORS_SCAN_X,
+>>> +		.scan_type = {
+>>> +			.sign = 'u',
+>>> +			.realbits = 24,
+>>> +			.storagebits = 24,
+>>> +			.endianness = IIO_LE,
+>>> +		},
+>>> +		.info_mask_separate =
+>>>    			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
+>>> -			ST_SENSORS_SCAN_X, 0, IIO_NO_MOD, 'u', IIO_LE, 24, 24,
+>>> -			ST_PRESS_LPS331AP_OUT_XL_ADDR),
+>>> -	ST_SENSORS_LSM_CHANNELS(IIO_TEMP,
+>>> -			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) |
+>>> -						BIT(IIO_CHAN_INFO_OFFSET),
+>>> -			-1, 0, IIO_NO_MOD, 's', IIO_LE, 16, 16,
+>>> -			ST_TEMP_LPS331AP_OUT_L_ADDR),
+>>> +		.modified = 0,
+>>> +	},
+>>> +	{
+>>> +		.type = IIO_TEMP,
+>>> +		.channel2 = IIO_NO_MOD,
+>>> +		.address = ST_TEMP_LPS331AP_OUT_L_ADDR,
+>>> +		.scan_index = -1,
+>>> +		.scan_type = {
+>>> +			.sign = 'u',
+>>> +			.realbits = 16,
+>>> +			.storagebits = 16,
+>>> +			.endianness = IIO_LE,
+>>> +		},
+>>> +		.info_mask_separate =
+>>> +			BIT(IIO_CHAN_INFO_RAW) |
+>>> +			BIT(IIO_CHAN_INFO_SCALE) |
+>>> +			BIT(IIO_CHAN_INFO_OFFSET),
+>>> +		.modified = 0,
+>>> +	},
+>>>    	IIO_CHAN_SOFT_TIMESTAMP(1)
+>>>    };
+>>>    
+>>> @@ -77,7 +100,7 @@ static const struct st_sensors st_press_sensors[] = {
+>>>    		.sensors_supported = {
+>>>    			[0] = LPS331AP_PRESS_DEV_NAME,
+>>>    		},
+>>> -		.ch = (struct iio_chan_spec *)st_press_channels,
+>>> +		.ch = (struct iio_chan_spec *)st_press_lsp331ap_channels,
+>>>    		.odr = {
+>>>    			.addr = ST_PRESS_LPS331AP_ODR_ADDR,
+>>>    			.mask = ST_PRESS_LPS331AP_ODR_MASK,
+>>> @@ -214,7 +237,7 @@ int st_press_common_probe(struct iio_dev *indio_dev)
+>>>    	pdata->num_data_channels = ST_PRESS_NUMBER_DATA_CHANNELS;
+>>>    	pdata->multiread_bit = pdata->sensor->multi_read_bit;
+>>>    	indio_dev->channels = pdata->sensor->ch;
+>>> -	indio_dev->num_channels = ARRAY_SIZE(st_press_channels);
+>>> +	indio_dev->num_channels = ARRAY_SIZE(st_press_lsp331ap_channels);
+>>>    
+>>>    	pdata->current_fullscale = (struct st_sensor_fullscale_avl *)
+>>>    						&pdata->sensor->fs.fs_avl[0];
diff --git a/a/content_digest b/N1/content_digest
index 7aa2fd7..53b8caa 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -2,90 +2,109 @@
  "ref\01378287103-21765-7-git-send-email-lee.jones@linaro.org\0"
  "ref\0522794F1.90301@st.com\0"
  "ref\020130905072114.GD8980@lee--X1\0"
- "From\0Denis CIOCCA <denis.ciocca@st.com>\0"
- "Subject\0Re: [PATCH 06/11] iio: pressure-core: st: Expand and rename LPS331AP's channel descriptor\0"
+ "From\0denis.ciocca@st.com (Denis CIOCCA)\0"
+ "Subject\0[PATCH 06/11] iio: pressure-core: st: Expand and rename LPS331AP's channel descriptor\0"
  "Date\0Thu, 5 Sep 2013 09:31:51 +0200\0"
- "To\0Lee Jones <lee.jones@linaro.org>\0"
- "Cc\0linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>"
-  linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>
-  jic23@cam.ac.uk <jic23@cam.ac.uk>
-  arnd@arndb.de <arnd@arndb.de>
-  linus.walleij@linaro.org <linus.walleij@linaro.org>
- " linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
  "\00:1\0"
  "b\0"
- "DQo+Pj4gRHVlIHRvIHRoZSBNQUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0\n"
- "YW5kaW5nIGFuZCBtYWludGFpbmluZw0KPj4+IHRoZSBMUFMzMzFBUCdzIGNoYW5uZWwgZGVzY3Jp\n"
- "cHRvciBpcyBzdWJzdGFudGlhbGx5IGRpZmZpY3VsdC4gVGhpcyBwYXRjaA0KPj4+IGlzIGJhc2Vk\n"
- "IG9uIHRoZSB2aWV3IHRoYXQgaXQncyBiZXR0ZXIgdG8gaGF2ZSBlYXN5IHRvIHJlYWQsIG1haW50\n"
- "YWluYWJsZQ0KPj4+IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJl\n"
- "LiBGb3IgdGhhdCByZWFzb24gd2UncmUNCj4+PiBleHBhbmRpbmcgdGhlIGFycmF5IHNvIGluaXRp\n"
- "YWxpc2F0aW9uIGlzIGNvbXBsZXRlZCBpbiBmdWxsLg0KPj4gQWxzbyBmb3IgdGhpcyBvbmUsIHRo\n"
- "ZSBjaGFubmVsIG5hbWVzIGFyZSBnZW5lcmFsIGFuZCBjYW4gYmUgc2hhcmVkDQo+PiBiZXR3ZWVu\n"
- "IGRpZmZlcmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBh\n"
- "IHByb2JsZW0NCj4+IGZvciBtZSwgYnV0IEkgdGhpbmsgaXQncyBub3QgbmVjZXNzYXJ5IGFkZHMg\n"
- "YWxsIHRoYXQgY29kZS4uLg0KPiBJJ20gbm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSB0aGlzLiBX\n"
- "b3VsZCB5b3UgYmUga2luZCBlbm91Z2ggdG8NCj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3\n"
- "YXkgcGxlYXNlPw0KVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2NoYW5u\n"
- "ZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYyANCmZvciBvbmUgc2Vuc29yIGJ1dCBjYW4gYmUgc2hh\n"
- "cmVkLiBPayBpbiB0aGlzIGRyaXZlciBub3cgaXMgdXNlZCBvbmx5IGZvciANCnRoZSBscHMzMzFh\n"
- "cCBidXQgZm9yIGV4YW1wbGUgaW4gYWNjZWxlcm9tZXRlciBkcml2ZXIgaXMgdXNlZCBieSBzZXZl\n"
- "cmFsIA0Kc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBuZXcgcHJlc3N1\n"
- "cmUgc2Vuc29ycyB1c2UgdGhlIA0Kc2FtZSBjaGFubmVscyBkZWZpbml0aW9uLg0KVGhlIGNoYW5u\n"
- "ZWwgZGVmaW5pdGlvbiBpcyBpbnRlbmRlZCB0aGUgc3dpdGNoIGJ5IG1hY3JvIA0KU1RfU0VOU09S\n"
- "U19MU01fQ0hBTk5FTFMgdG8gdGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHBy\n"
- "b2JsZW0gDQpidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkuDQoNCkRlbmlzDQoNCj4+PiBT\n"
- "aWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPg0KPj4+IC0tLQ0K\n"
- "Pj4+ICAgIGRyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYyB8IDQ1ICsrKysr\n"
- "KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAzNCBp\n"
- "bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9kcml2\n"
- "ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3Vy\n"
- "ZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+PiBpbmRleCBiZWNmYjI1Li43YmE5Mjk5IDEwMDY0NA0K\n"
- "Pj4+IC0tLSBhL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+ICsr\n"
- "KyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+IEBAIC01OCwx\n"
- "NiArNTgsMzkgQEANCj4+PiAgICAjZGVmaW5lIFNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERS\n"
- "CQkweDI4DQo+Pj4gICAgI2RlZmluZSBTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIJCTB4MmIN\n"
- "Cj4+PiAgICANCj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNz\n"
- "X2NoYW5uZWxzW10gPSB7DQo+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NV\n"
- "UkUsDQo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19sc3Az\n"
- "MzFhcF9jaGFubmVsc1tdID0gew0KPj4+ICsJew0KPj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJF\n"
- "LA0KPj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4gKwkJLmFkZHJlc3MgPSBTVF9Q\n"
- "UkVTU19MUFMzMzFBUF9PVVRfWExfQUREUiwNCj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NFTlNP\n"
- "UlNfU0NBTl9YLA0KPj4+ICsJCS5zY2FuX3R5cGUgPSB7DQo+Pj4gKwkJCS5zaWduID0gJ3UnLA0K\n"
- "Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+PiArCQkJLnN0b3JhZ2ViaXRzID0gMjQsDQo+Pj4g\n"
- "KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+ICsJCX0sDQo+Pj4gKwkJLmluZm9fbWFza19z\n"
- "ZXBhcmF0ZSA9DQo+Pj4gICAgCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJSU9fQ0hB\n"
- "Tl9JTkZPX1NDQUxFKSwNCj4+PiAtCQkJU1RfU0VOU09SU19TQ0FOX1gsIDAsIElJT19OT19NT0Qs\n"
- "ICd1JywgSUlPX0xFLCAyNCwgMjQsDQo+Pj4gLQkJCVNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9B\n"
- "RERSKSwNCj4+PiAtCVNUX1NFTlNPUlNfTFNNX0NIQU5ORUxTKElJT19URU1QLA0KPj4+IC0JCQlC\n"
- "SVQoSUlPX0NIQU5fSU5GT19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpIHwNCj4+PiAt\n"
- "CQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZGU0VUKSwNCj4+PiAtCQkJLTEsIDAsIElJT19OT19N\n"
- "T0QsICdzJywgSUlPX0xFLCAxNiwgMTYsDQo+Pj4gLQkJCVNUX1RFTVBfTFBTMzMxQVBfT1VUX0xf\n"
- "QUREUiksDQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gKwl7DQo+Pj4gKwkJ\n"
- "LnR5cGUgPSBJSU9fVEVNUCwNCj4+PiArCQkuY2hhbm5lbDIgPSBJSU9fTk9fTU9ELA0KPj4+ICsJ\n"
- "CS5hZGRyZXNzID0gU1RfVEVNUF9MUFMzMzFBUF9PVVRfTF9BRERSLA0KPj4+ICsJCS5zY2FuX2lu\n"
- "ZGV4ID0gLTEsDQo+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+PiArCQkJLnNpZ24gPSAndScsDQo+\n"
- "Pj4gKwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+ICsJCQkuc3RvcmFnZWJpdHMgPSAxNiwNCj4+PiAr\n"
- "CQkJLmVuZGlhbm5lc3MgPSBJSU9fTEUsDQo+Pj4gKwkJfSwNCj4+PiArCQkuaW5mb19tYXNrX3Nl\n"
- "cGFyYXRlID0NCj4+PiArCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8DQo+Pj4gKwkJCUJJVChJ\n"
- "SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX09GRlNFVCks\n"
- "DQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gICAgCUlJT19DSEFOX1NPRlRf\n"
- "VElNRVNUQU1QKDEpDQo+Pj4gICAgfTsNCj4+PiAgICANCj4+PiBAQCAtNzcsNyArMTAwLDcgQEAg\n"
- "c3RhdGljIGNvbnN0IHN0cnVjdCBzdF9zZW5zb3JzIHN0X3ByZXNzX3NlbnNvcnNbXSA9IHsNCj4+\n"
- "PiAgICAJCS5zZW5zb3JzX3N1cHBvcnRlZCA9IHsNCj4+PiAgICAJCQlbMF0gPSBMUFMzMzFBUF9Q\n"
- "UkVTU19ERVZfTkFNRSwNCj4+PiAgICAJCX0sDQo+Pj4gLQkJLmNoID0gKHN0cnVjdCBpaW9fY2hh\n"
- "bl9zcGVjICopc3RfcHJlc3NfY2hhbm5lbHMsDQo+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hh\n"
- "bl9zcGVjICopc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4gICAgCQkub2RyID0gew0K\n"
- "Pj4+ICAgIAkJCS5hZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4gICAgCQkJ\n"
- "Lm1hc2sgPSBTVF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+PiBAQCAtMjE0LDcgKzIzNyw3\n"
- "IEBAIGludCBzdF9wcmVzc19jb21tb25fcHJvYmUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikN\n"
- "Cj4+PiAgICAJcGRhdGEtPm51bV9kYXRhX2NoYW5uZWxzID0gU1RfUFJFU1NfTlVNQkVSX0RBVEFf\n"
- "Q0hBTk5FTFM7DQo+Pj4gICAgCXBkYXRhLT5tdWx0aXJlYWRfYml0ID0gcGRhdGEtPnNlbnNvci0+\n"
- "bXVsdGlfcmVhZF9iaXQ7DQo+Pj4gICAgCWluZGlvX2Rldi0+Y2hhbm5lbHMgPSBwZGF0YS0+c2Vu\n"
- "c29yLT5jaDsNCj4+PiAtCWluZGlvX2Rldi0+bnVtX2NoYW5uZWxzID0gQVJSQVlfU0laRShzdF9w\n"
- "cmVzc19jaGFubmVscyk7DQo+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJ\n"
- "WkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+ICAgIA0KPj4+ICAgIAlwZGF0YS0+\n"
- "Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2NhbGVfYXZsICopDQo+\n"
- Pj4gICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsNCg==
+ "\n"
+ ">>> Due to the MACRO used, the task of reading, understanding and maintaining\n"
+ ">>> the LPS331AP's channel descriptor is substantially difficult. This patch\n"
+ ">>> is based on the view that it's better to have easy to read, maintainable\n"
+ ">>> code than to save a few lines here and there. For that reason we're\n"
+ ">>> expanding the array so initialisation is completed in full.\n"
+ ">> Also for this one, the channel names are general and can be shared\n"
+ ">> between different sensors. For the channel definition it's not a problem\n"
+ ">> for me, but I think it's not necessary adds all that code...\n"
+ "> I'm not sure what you mean by this. Would you be kind enough to\n"
+ "> explain it in a different way please?\n"
+ "The channel name (in this case st_press_channels) is not only specific \n"
+ "for one sensor but can be shared. Ok in this driver now is used only for \n"
+ "the lps331ap but for example in accelerometer driver is used by several \n"
+ "sensors. It's possible in the future for new pressure sensors use the \n"
+ "same channels definition.\n"
+ "The channel definition is intended the switch by macro \n"
+ "ST_SENSORS_LSM_CHANNELS to the full definition, for me is not a problem \n"
+ "but I think it's not necessary.\n"
+ "\n"
+ "Denis\n"
+ "\n"
+ ">>> Signed-off-by: Lee Jones <lee.jones@linaro.org>\n"
+ ">>> ---\n"
+ ">>>    drivers/iio/pressure/st_pressure_core.c | 45 +++++++++++++++++++++++++--------\n"
+ ">>>    1 file changed, 34 insertions(+), 11 deletions(-)\n"
+ ">>>\n"
+ ">>> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c\n"
+ ">>> index becfb25..7ba9299 100644\n"
+ ">>> --- a/drivers/iio/pressure/st_pressure_core.c\n"
+ ">>> +++ b/drivers/iio/pressure/st_pressure_core.c\n"
+ ">>> @@ -58,16 +58,39 @@\n"
+ ">>>    #define ST_PRESS_LPS331AP_OUT_XL_ADDR\t\t0x28\n"
+ ">>>    #define ST_TEMP_LPS331AP_OUT_L_ADDR\t\t0x2b\n"
+ ">>>    \n"
+ ">>> -static const struct iio_chan_spec st_press_channels[] = {\n"
+ ">>> -\tST_SENSORS_LSM_CHANNELS(IIO_PRESSURE,\n"
+ ">>> +static const struct iio_chan_spec st_press_lsp331ap_channels[] = {\n"
+ ">>> +\t{\n"
+ ">>> +\t\t.type = IIO_PRESSURE,\n"
+ ">>> +\t\t.channel2 = IIO_NO_MOD,\n"
+ ">>> +\t\t.address = ST_PRESS_LPS331AP_OUT_XL_ADDR,\n"
+ ">>> +\t\t.scan_index = ST_SENSORS_SCAN_X,\n"
+ ">>> +\t\t.scan_type = {\n"
+ ">>> +\t\t\t.sign = 'u',\n"
+ ">>> +\t\t\t.realbits = 24,\n"
+ ">>> +\t\t\t.storagebits = 24,\n"
+ ">>> +\t\t\t.endianness = IIO_LE,\n"
+ ">>> +\t\t},\n"
+ ">>> +\t\t.info_mask_separate =\n"
+ ">>>    \t\t\tBIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),\n"
+ ">>> -\t\t\tST_SENSORS_SCAN_X, 0, IIO_NO_MOD, 'u', IIO_LE, 24, 24,\n"
+ ">>> -\t\t\tST_PRESS_LPS331AP_OUT_XL_ADDR),\n"
+ ">>> -\tST_SENSORS_LSM_CHANNELS(IIO_TEMP,\n"
+ ">>> -\t\t\tBIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) |\n"
+ ">>> -\t\t\t\t\t\tBIT(IIO_CHAN_INFO_OFFSET),\n"
+ ">>> -\t\t\t-1, 0, IIO_NO_MOD, 's', IIO_LE, 16, 16,\n"
+ ">>> -\t\t\tST_TEMP_LPS331AP_OUT_L_ADDR),\n"
+ ">>> +\t\t.modified = 0,\n"
+ ">>> +\t},\n"
+ ">>> +\t{\n"
+ ">>> +\t\t.type = IIO_TEMP,\n"
+ ">>> +\t\t.channel2 = IIO_NO_MOD,\n"
+ ">>> +\t\t.address = ST_TEMP_LPS331AP_OUT_L_ADDR,\n"
+ ">>> +\t\t.scan_index = -1,\n"
+ ">>> +\t\t.scan_type = {\n"
+ ">>> +\t\t\t.sign = 'u',\n"
+ ">>> +\t\t\t.realbits = 16,\n"
+ ">>> +\t\t\t.storagebits = 16,\n"
+ ">>> +\t\t\t.endianness = IIO_LE,\n"
+ ">>> +\t\t},\n"
+ ">>> +\t\t.info_mask_separate =\n"
+ ">>> +\t\t\tBIT(IIO_CHAN_INFO_RAW) |\n"
+ ">>> +\t\t\tBIT(IIO_CHAN_INFO_SCALE) |\n"
+ ">>> +\t\t\tBIT(IIO_CHAN_INFO_OFFSET),\n"
+ ">>> +\t\t.modified = 0,\n"
+ ">>> +\t},\n"
+ ">>>    \tIIO_CHAN_SOFT_TIMESTAMP(1)\n"
+ ">>>    };\n"
+ ">>>    \n"
+ ">>> @@ -77,7 +100,7 @@ static const struct st_sensors st_press_sensors[] = {\n"
+ ">>>    \t\t.sensors_supported = {\n"
+ ">>>    \t\t\t[0] = LPS331AP_PRESS_DEV_NAME,\n"
+ ">>>    \t\t},\n"
+ ">>> -\t\t.ch = (struct iio_chan_spec *)st_press_channels,\n"
+ ">>> +\t\t.ch = (struct iio_chan_spec *)st_press_lsp331ap_channels,\n"
+ ">>>    \t\t.odr = {\n"
+ ">>>    \t\t\t.addr = ST_PRESS_LPS331AP_ODR_ADDR,\n"
+ ">>>    \t\t\t.mask = ST_PRESS_LPS331AP_ODR_MASK,\n"
+ ">>> @@ -214,7 +237,7 @@ int st_press_common_probe(struct iio_dev *indio_dev)\n"
+ ">>>    \tpdata->num_data_channels = ST_PRESS_NUMBER_DATA_CHANNELS;\n"
+ ">>>    \tpdata->multiread_bit = pdata->sensor->multi_read_bit;\n"
+ ">>>    \tindio_dev->channels = pdata->sensor->ch;\n"
+ ">>> -\tindio_dev->num_channels = ARRAY_SIZE(st_press_channels);\n"
+ ">>> +\tindio_dev->num_channels = ARRAY_SIZE(st_press_lsp331ap_channels);\n"
+ ">>>    \n"
+ ">>>    \tpdata->current_fullscale = (struct st_sensor_fullscale_avl *)\n"
+ ">>>    \t\t\t\t\t\t&pdata->sensor->fs.fs_avl[0];"
 
-ae0e1812cd9de4b36c0945a530626900451dab5f326d0951e62a1f206109b2de
+9cb695ca63196ecb297711bb47ff8b84d8593e75eb40694f8910817b599f4f7a

diff --git a/a/1.txt b/N2/1.txt
index d78f244..0f9bcd1 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,73 +1,99 @@
-DQo+Pj4gRHVlIHRvIHRoZSBNQUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0
-YW5kaW5nIGFuZCBtYWludGFpbmluZw0KPj4+IHRoZSBMUFMzMzFBUCdzIGNoYW5uZWwgZGVzY3Jp
-cHRvciBpcyBzdWJzdGFudGlhbGx5IGRpZmZpY3VsdC4gVGhpcyBwYXRjaA0KPj4+IGlzIGJhc2Vk
-IG9uIHRoZSB2aWV3IHRoYXQgaXQncyBiZXR0ZXIgdG8gaGF2ZSBlYXN5IHRvIHJlYWQsIG1haW50
-YWluYWJsZQ0KPj4+IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJl
-LiBGb3IgdGhhdCByZWFzb24gd2UncmUNCj4+PiBleHBhbmRpbmcgdGhlIGFycmF5IHNvIGluaXRp
-YWxpc2F0aW9uIGlzIGNvbXBsZXRlZCBpbiBmdWxsLg0KPj4gQWxzbyBmb3IgdGhpcyBvbmUsIHRo
-ZSBjaGFubmVsIG5hbWVzIGFyZSBnZW5lcmFsIGFuZCBjYW4gYmUgc2hhcmVkDQo+PiBiZXR3ZWVu
-IGRpZmZlcmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBh
-IHByb2JsZW0NCj4+IGZvciBtZSwgYnV0IEkgdGhpbmsgaXQncyBub3QgbmVjZXNzYXJ5IGFkZHMg
-YWxsIHRoYXQgY29kZS4uLg0KPiBJJ20gbm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSB0aGlzLiBX
-b3VsZCB5b3UgYmUga2luZCBlbm91Z2ggdG8NCj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3
-YXkgcGxlYXNlPw0KVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2NoYW5u
-ZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYyANCmZvciBvbmUgc2Vuc29yIGJ1dCBjYW4gYmUgc2hh
-cmVkLiBPayBpbiB0aGlzIGRyaXZlciBub3cgaXMgdXNlZCBvbmx5IGZvciANCnRoZSBscHMzMzFh
-cCBidXQgZm9yIGV4YW1wbGUgaW4gYWNjZWxlcm9tZXRlciBkcml2ZXIgaXMgdXNlZCBieSBzZXZl
-cmFsIA0Kc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBuZXcgcHJlc3N1
-cmUgc2Vuc29ycyB1c2UgdGhlIA0Kc2FtZSBjaGFubmVscyBkZWZpbml0aW9uLg0KVGhlIGNoYW5u
-ZWwgZGVmaW5pdGlvbiBpcyBpbnRlbmRlZCB0aGUgc3dpdGNoIGJ5IG1hY3JvIA0KU1RfU0VOU09S
-U19MU01fQ0hBTk5FTFMgdG8gdGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHBy
-b2JsZW0gDQpidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkuDQoNCkRlbmlzDQoNCj4+PiBT
-aWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPg0KPj4+IC0tLQ0K
-Pj4+ICAgIGRyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYyB8IDQ1ICsrKysr
-KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAzNCBp
-bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9kcml2
-ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3Vy
-ZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+PiBpbmRleCBiZWNmYjI1Li43YmE5Mjk5IDEwMDY0NA0K
-Pj4+IC0tLSBhL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+ICsr
-KyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+IEBAIC01OCwx
-NiArNTgsMzkgQEANCj4+PiAgICAjZGVmaW5lIFNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERS
-CQkweDI4DQo+Pj4gICAgI2RlZmluZSBTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIJCTB4MmIN
-Cj4+PiAgICANCj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNz
-X2NoYW5uZWxzW10gPSB7DQo+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NV
-UkUsDQo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19sc3Az
-MzFhcF9jaGFubmVsc1tdID0gew0KPj4+ICsJew0KPj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJF
-LA0KPj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4gKwkJLmFkZHJlc3MgPSBTVF9Q
-UkVTU19MUFMzMzFBUF9PVVRfWExfQUREUiwNCj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NFTlNP
-UlNfU0NBTl9YLA0KPj4+ICsJCS5zY2FuX3R5cGUgPSB7DQo+Pj4gKwkJCS5zaWduID0gJ3UnLA0K
-Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+PiArCQkJLnN0b3JhZ2ViaXRzID0gMjQsDQo+Pj4g
-KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+ICsJCX0sDQo+Pj4gKwkJLmluZm9fbWFza19z
-ZXBhcmF0ZSA9DQo+Pj4gICAgCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJSU9fQ0hB
-Tl9JTkZPX1NDQUxFKSwNCj4+PiAtCQkJU1RfU0VOU09SU19TQ0FOX1gsIDAsIElJT19OT19NT0Qs
-ICd1JywgSUlPX0xFLCAyNCwgMjQsDQo+Pj4gLQkJCVNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9B
-RERSKSwNCj4+PiAtCVNUX1NFTlNPUlNfTFNNX0NIQU5ORUxTKElJT19URU1QLA0KPj4+IC0JCQlC
-SVQoSUlPX0NIQU5fSU5GT19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpIHwNCj4+PiAt
-CQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZGU0VUKSwNCj4+PiAtCQkJLTEsIDAsIElJT19OT19N
-T0QsICdzJywgSUlPX0xFLCAxNiwgMTYsDQo+Pj4gLQkJCVNUX1RFTVBfTFBTMzMxQVBfT1VUX0xf
-QUREUiksDQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gKwl7DQo+Pj4gKwkJ
-LnR5cGUgPSBJSU9fVEVNUCwNCj4+PiArCQkuY2hhbm5lbDIgPSBJSU9fTk9fTU9ELA0KPj4+ICsJ
-CS5hZGRyZXNzID0gU1RfVEVNUF9MUFMzMzFBUF9PVVRfTF9BRERSLA0KPj4+ICsJCS5zY2FuX2lu
-ZGV4ID0gLTEsDQo+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+PiArCQkJLnNpZ24gPSAndScsDQo+
-Pj4gKwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+ICsJCQkuc3RvcmFnZWJpdHMgPSAxNiwNCj4+PiAr
-CQkJLmVuZGlhbm5lc3MgPSBJSU9fTEUsDQo+Pj4gKwkJfSwNCj4+PiArCQkuaW5mb19tYXNrX3Nl
-cGFyYXRlID0NCj4+PiArCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8DQo+Pj4gKwkJCUJJVChJ
-SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX09GRlNFVCks
-DQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gICAgCUlJT19DSEFOX1NPRlRf
-VElNRVNUQU1QKDEpDQo+Pj4gICAgfTsNCj4+PiAgICANCj4+PiBAQCAtNzcsNyArMTAwLDcgQEAg
-c3RhdGljIGNvbnN0IHN0cnVjdCBzdF9zZW5zb3JzIHN0X3ByZXNzX3NlbnNvcnNbXSA9IHsNCj4+
-PiAgICAJCS5zZW5zb3JzX3N1cHBvcnRlZCA9IHsNCj4+PiAgICAJCQlbMF0gPSBMUFMzMzFBUF9Q
-UkVTU19ERVZfTkFNRSwNCj4+PiAgICAJCX0sDQo+Pj4gLQkJLmNoID0gKHN0cnVjdCBpaW9fY2hh
-bl9zcGVjICopc3RfcHJlc3NfY2hhbm5lbHMsDQo+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hh
-bl9zcGVjICopc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4gICAgCQkub2RyID0gew0K
-Pj4+ICAgIAkJCS5hZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4gICAgCQkJ
-Lm1hc2sgPSBTVF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+PiBAQCAtMjE0LDcgKzIzNyw3
-IEBAIGludCBzdF9wcmVzc19jb21tb25fcHJvYmUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikN
-Cj4+PiAgICAJcGRhdGEtPm51bV9kYXRhX2NoYW5uZWxzID0gU1RfUFJFU1NfTlVNQkVSX0RBVEFf
-Q0hBTk5FTFM7DQo+Pj4gICAgCXBkYXRhLT5tdWx0aXJlYWRfYml0ID0gcGRhdGEtPnNlbnNvci0+
-bXVsdGlfcmVhZF9iaXQ7DQo+Pj4gICAgCWluZGlvX2Rldi0+Y2hhbm5lbHMgPSBwZGF0YS0+c2Vu
-c29yLT5jaDsNCj4+PiAtCWluZGlvX2Rldi0+bnVtX2NoYW5uZWxzID0gQVJSQVlfU0laRShzdF9w
-cmVzc19jaGFubmVscyk7DQo+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJ
-WkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+ICAgIA0KPj4+ICAgIAlwZGF0YS0+
-Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2NhbGVfYXZsICopDQo+
-Pj4gICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsNCg==
+
+>>> Due to the MACRO used, the task of reading, understanding and maintaining
+>>> the LPS331AP's channel descriptor is substantially difficult. This patch
+>>> is based on the view that it's better to have easy to read, maintainable
+>>> code than to save a few lines here and there. For that reason we're
+>>> expanding the array so initialisation is completed in full.
+>> Also for this one, the channel names are general and can be shared
+>> between different sensors. For the channel definition it's not a problem
+>> for me, but I think it's not necessary adds all that code...
+> I'm not sure what you mean by this. Would you be kind enough to
+> explain it in a different way please?
+The channel name (in this case st_press_channels) is not only specific 
+for one sensor but can be shared. Ok in this driver now is used only for 
+the lps331ap but for example in accelerometer driver is used by several 
+sensors. It's possible in the future for new pressure sensors use the 
+same channels definition.
+The channel definition is intended the switch by macro 
+ST_SENSORS_LSM_CHANNELS to the full definition, for me is not a problem 
+but I think it's not necessary.
+
+Denis
+
+>>> Signed-off-by: Lee Jones <lee.jones@linaro.org>
+>>> ---
+>>>    drivers/iio/pressure/st_pressure_core.c | 45 +++++++++++++++++++++++++--------
+>>>    1 file changed, 34 insertions(+), 11 deletions(-)
+>>>
+>>> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
+>>> index becfb25..7ba9299 100644
+>>> --- a/drivers/iio/pressure/st_pressure_core.c
+>>> +++ b/drivers/iio/pressure/st_pressure_core.c
+>>> @@ -58,16 +58,39 @@
+>>>    #define ST_PRESS_LPS331AP_OUT_XL_ADDR		0x28
+>>>    #define ST_TEMP_LPS331AP_OUT_L_ADDR		0x2b
+>>>    
+>>> -static const struct iio_chan_spec st_press_channels[] = {
+>>> -	ST_SENSORS_LSM_CHANNELS(IIO_PRESSURE,
+>>> +static const struct iio_chan_spec st_press_lsp331ap_channels[] = {
+>>> +	{
+>>> +		.type = IIO_PRESSURE,
+>>> +		.channel2 = IIO_NO_MOD,
+>>> +		.address = ST_PRESS_LPS331AP_OUT_XL_ADDR,
+>>> +		.scan_index = ST_SENSORS_SCAN_X,
+>>> +		.scan_type = {
+>>> +			.sign = 'u',
+>>> +			.realbits = 24,
+>>> +			.storagebits = 24,
+>>> +			.endianness = IIO_LE,
+>>> +		},
+>>> +		.info_mask_separate =
+>>>    			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
+>>> -			ST_SENSORS_SCAN_X, 0, IIO_NO_MOD, 'u', IIO_LE, 24, 24,
+>>> -			ST_PRESS_LPS331AP_OUT_XL_ADDR),
+>>> -	ST_SENSORS_LSM_CHANNELS(IIO_TEMP,
+>>> -			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) |
+>>> -						BIT(IIO_CHAN_INFO_OFFSET),
+>>> -			-1, 0, IIO_NO_MOD, 's', IIO_LE, 16, 16,
+>>> -			ST_TEMP_LPS331AP_OUT_L_ADDR),
+>>> +		.modified = 0,
+>>> +	},
+>>> +	{
+>>> +		.type = IIO_TEMP,
+>>> +		.channel2 = IIO_NO_MOD,
+>>> +		.address = ST_TEMP_LPS331AP_OUT_L_ADDR,
+>>> +		.scan_index = -1,
+>>> +		.scan_type = {
+>>> +			.sign = 'u',
+>>> +			.realbits = 16,
+>>> +			.storagebits = 16,
+>>> +			.endianness = IIO_LE,
+>>> +		},
+>>> +		.info_mask_separate =
+>>> +			BIT(IIO_CHAN_INFO_RAW) |
+>>> +			BIT(IIO_CHAN_INFO_SCALE) |
+>>> +			BIT(IIO_CHAN_INFO_OFFSET),
+>>> +		.modified = 0,
+>>> +	},
+>>>    	IIO_CHAN_SOFT_TIMESTAMP(1)
+>>>    };
+>>>    
+>>> @@ -77,7 +100,7 @@ static const struct st_sensors st_press_sensors[] = {
+>>>    		.sensors_supported = {
+>>>    			[0] = LPS331AP_PRESS_DEV_NAME,
+>>>    		},
+>>> -		.ch = (struct iio_chan_spec *)st_press_channels,
+>>> +		.ch = (struct iio_chan_spec *)st_press_lsp331ap_channels,
+>>>    		.odr = {
+>>>    			.addr = ST_PRESS_LPS331AP_ODR_ADDR,
+>>>    			.mask = ST_PRESS_LPS331AP_ODR_MASK,
+>>> @@ -214,7 +237,7 @@ int st_press_common_probe(struct iio_dev *indio_dev)
+>>>    	pdata->num_data_channels = ST_PRESS_NUMBER_DATA_CHANNELS;
+>>>    	pdata->multiread_bit = pdata->sensor->multi_read_bit;
+>>>    	indio_dev->channels = pdata->sensor->ch;
+>>> -	indio_dev->num_channels = ARRAY_SIZE(st_press_channels);
+>>> +	indio_dev->num_channels = ARRAY_SIZE(st_press_lsp331ap_channels);
+>>>    
+>>>    	pdata->current_fullscale = (struct st_sensor_fullscale_avl *)
+>>>    						&pdata->sensor->fs.fs_avl[0];
+ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥
diff --git a/a/content_digest b/N2/content_digest
index 7aa2fd7..c3e435d 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -14,78 +14,104 @@
  " linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
- "DQo+Pj4gRHVlIHRvIHRoZSBNQUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0\n"
- "YW5kaW5nIGFuZCBtYWludGFpbmluZw0KPj4+IHRoZSBMUFMzMzFBUCdzIGNoYW5uZWwgZGVzY3Jp\n"
- "cHRvciBpcyBzdWJzdGFudGlhbGx5IGRpZmZpY3VsdC4gVGhpcyBwYXRjaA0KPj4+IGlzIGJhc2Vk\n"
- "IG9uIHRoZSB2aWV3IHRoYXQgaXQncyBiZXR0ZXIgdG8gaGF2ZSBlYXN5IHRvIHJlYWQsIG1haW50\n"
- "YWluYWJsZQ0KPj4+IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJl\n"
- "LiBGb3IgdGhhdCByZWFzb24gd2UncmUNCj4+PiBleHBhbmRpbmcgdGhlIGFycmF5IHNvIGluaXRp\n"
- "YWxpc2F0aW9uIGlzIGNvbXBsZXRlZCBpbiBmdWxsLg0KPj4gQWxzbyBmb3IgdGhpcyBvbmUsIHRo\n"
- "ZSBjaGFubmVsIG5hbWVzIGFyZSBnZW5lcmFsIGFuZCBjYW4gYmUgc2hhcmVkDQo+PiBiZXR3ZWVu\n"
- "IGRpZmZlcmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBh\n"
- "IHByb2JsZW0NCj4+IGZvciBtZSwgYnV0IEkgdGhpbmsgaXQncyBub3QgbmVjZXNzYXJ5IGFkZHMg\n"
- "YWxsIHRoYXQgY29kZS4uLg0KPiBJJ20gbm90IHN1cmUgd2hhdCB5b3UgbWVhbiBieSB0aGlzLiBX\n"
- "b3VsZCB5b3UgYmUga2luZCBlbm91Z2ggdG8NCj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3\n"
- "YXkgcGxlYXNlPw0KVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2NoYW5u\n"
- "ZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYyANCmZvciBvbmUgc2Vuc29yIGJ1dCBjYW4gYmUgc2hh\n"
- "cmVkLiBPayBpbiB0aGlzIGRyaXZlciBub3cgaXMgdXNlZCBvbmx5IGZvciANCnRoZSBscHMzMzFh\n"
- "cCBidXQgZm9yIGV4YW1wbGUgaW4gYWNjZWxlcm9tZXRlciBkcml2ZXIgaXMgdXNlZCBieSBzZXZl\n"
- "cmFsIA0Kc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBuZXcgcHJlc3N1\n"
- "cmUgc2Vuc29ycyB1c2UgdGhlIA0Kc2FtZSBjaGFubmVscyBkZWZpbml0aW9uLg0KVGhlIGNoYW5u\n"
- "ZWwgZGVmaW5pdGlvbiBpcyBpbnRlbmRlZCB0aGUgc3dpdGNoIGJ5IG1hY3JvIA0KU1RfU0VOU09S\n"
- "U19MU01fQ0hBTk5FTFMgdG8gdGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHBy\n"
- "b2JsZW0gDQpidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkuDQoNCkRlbmlzDQoNCj4+PiBT\n"
- "aWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPg0KPj4+IC0tLQ0K\n"
- "Pj4+ICAgIGRyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYyB8IDQ1ICsrKysr\n"
- "KysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAzNCBp\n"
- "bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9kcml2\n"
- "ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3Vy\n"
- "ZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+PiBpbmRleCBiZWNmYjI1Li43YmE5Mjk5IDEwMDY0NA0K\n"
- "Pj4+IC0tLSBhL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+ICsr\n"
- "KyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+IEBAIC01OCwx\n"
- "NiArNTgsMzkgQEANCj4+PiAgICAjZGVmaW5lIFNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERS\n"
- "CQkweDI4DQo+Pj4gICAgI2RlZmluZSBTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIJCTB4MmIN\n"
- "Cj4+PiAgICANCj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNz\n"
- "X2NoYW5uZWxzW10gPSB7DQo+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NV\n"
- "UkUsDQo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19sc3Az\n"
- "MzFhcF9jaGFubmVsc1tdID0gew0KPj4+ICsJew0KPj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJF\n"
- "LA0KPj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4gKwkJLmFkZHJlc3MgPSBTVF9Q\n"
- "UkVTU19MUFMzMzFBUF9PVVRfWExfQUREUiwNCj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NFTlNP\n"
- "UlNfU0NBTl9YLA0KPj4+ICsJCS5zY2FuX3R5cGUgPSB7DQo+Pj4gKwkJCS5zaWduID0gJ3UnLA0K\n"
- "Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+PiArCQkJLnN0b3JhZ2ViaXRzID0gMjQsDQo+Pj4g\n"
- "KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+ICsJCX0sDQo+Pj4gKwkJLmluZm9fbWFza19z\n"
- "ZXBhcmF0ZSA9DQo+Pj4gICAgCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJSU9fQ0hB\n"
- "Tl9JTkZPX1NDQUxFKSwNCj4+PiAtCQkJU1RfU0VOU09SU19TQ0FOX1gsIDAsIElJT19OT19NT0Qs\n"
- "ICd1JywgSUlPX0xFLCAyNCwgMjQsDQo+Pj4gLQkJCVNUX1BSRVNTX0xQUzMzMUFQX09VVF9YTF9B\n"
- "RERSKSwNCj4+PiAtCVNUX1NFTlNPUlNfTFNNX0NIQU5ORUxTKElJT19URU1QLA0KPj4+IC0JCQlC\n"
- "SVQoSUlPX0NIQU5fSU5GT19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpIHwNCj4+PiAt\n"
- "CQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZGU0VUKSwNCj4+PiAtCQkJLTEsIDAsIElJT19OT19N\n"
- "T0QsICdzJywgSUlPX0xFLCAxNiwgMTYsDQo+Pj4gLQkJCVNUX1RFTVBfTFBTMzMxQVBfT1VUX0xf\n"
- "QUREUiksDQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gKwl7DQo+Pj4gKwkJ\n"
- "LnR5cGUgPSBJSU9fVEVNUCwNCj4+PiArCQkuY2hhbm5lbDIgPSBJSU9fTk9fTU9ELA0KPj4+ICsJ\n"
- "CS5hZGRyZXNzID0gU1RfVEVNUF9MUFMzMzFBUF9PVVRfTF9BRERSLA0KPj4+ICsJCS5zY2FuX2lu\n"
- "ZGV4ID0gLTEsDQo+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+PiArCQkJLnNpZ24gPSAndScsDQo+\n"
- "Pj4gKwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+ICsJCQkuc3RvcmFnZWJpdHMgPSAxNiwNCj4+PiAr\n"
- "CQkJLmVuZGlhbm5lc3MgPSBJSU9fTEUsDQo+Pj4gKwkJfSwNCj4+PiArCQkuaW5mb19tYXNrX3Nl\n"
- "cGFyYXRlID0NCj4+PiArCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8DQo+Pj4gKwkJCUJJVChJ\n"
- "SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX09GRlNFVCks\n"
- "DQo+Pj4gKwkJLm1vZGlmaWVkID0gMCwNCj4+PiArCX0sDQo+Pj4gICAgCUlJT19DSEFOX1NPRlRf\n"
- "VElNRVNUQU1QKDEpDQo+Pj4gICAgfTsNCj4+PiAgICANCj4+PiBAQCAtNzcsNyArMTAwLDcgQEAg\n"
- "c3RhdGljIGNvbnN0IHN0cnVjdCBzdF9zZW5zb3JzIHN0X3ByZXNzX3NlbnNvcnNbXSA9IHsNCj4+\n"
- "PiAgICAJCS5zZW5zb3JzX3N1cHBvcnRlZCA9IHsNCj4+PiAgICAJCQlbMF0gPSBMUFMzMzFBUF9Q\n"
- "UkVTU19ERVZfTkFNRSwNCj4+PiAgICAJCX0sDQo+Pj4gLQkJLmNoID0gKHN0cnVjdCBpaW9fY2hh\n"
- "bl9zcGVjICopc3RfcHJlc3NfY2hhbm5lbHMsDQo+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hh\n"
- "bl9zcGVjICopc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4gICAgCQkub2RyID0gew0K\n"
- "Pj4+ICAgIAkJCS5hZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4gICAgCQkJ\n"
- "Lm1hc2sgPSBTVF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+PiBAQCAtMjE0LDcgKzIzNyw3\n"
- "IEBAIGludCBzdF9wcmVzc19jb21tb25fcHJvYmUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikN\n"
- "Cj4+PiAgICAJcGRhdGEtPm51bV9kYXRhX2NoYW5uZWxzID0gU1RfUFJFU1NfTlVNQkVSX0RBVEFf\n"
- "Q0hBTk5FTFM7DQo+Pj4gICAgCXBkYXRhLT5tdWx0aXJlYWRfYml0ID0gcGRhdGEtPnNlbnNvci0+\n"
- "bXVsdGlfcmVhZF9iaXQ7DQo+Pj4gICAgCWluZGlvX2Rldi0+Y2hhbm5lbHMgPSBwZGF0YS0+c2Vu\n"
- "c29yLT5jaDsNCj4+PiAtCWluZGlvX2Rldi0+bnVtX2NoYW5uZWxzID0gQVJSQVlfU0laRShzdF9w\n"
- "cmVzc19jaGFubmVscyk7DQo+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJ\n"
- "WkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+ICAgIA0KPj4+ICAgIAlwZGF0YS0+\n"
- "Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2NhbGVfYXZsICopDQo+\n"
- Pj4gICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsNCg==
+ "\n"
+ ">>> Due to the MACRO used, the task of reading, understanding and maintaining\n"
+ ">>> the LPS331AP's channel descriptor is substantially difficult. This patch\n"
+ ">>> is based on the view that it's better to have easy to read, maintainable\n"
+ ">>> code than to save a few lines here and there. For that reason we're\n"
+ ">>> expanding the array so initialisation is completed in full.\n"
+ ">> Also for this one, the channel names are general and can be shared\n"
+ ">> between different sensors. For the channel definition it's not a problem\n"
+ ">> for me, but I think it's not necessary adds all that code...\n"
+ "> I'm not sure what you mean by this. Would you be kind enough to\n"
+ "> explain it in a different way please?\n"
+ "The channel name (in this case st_press_channels) is not only specific \n"
+ "for one sensor but can be shared. Ok in this driver now is used only for \n"
+ "the lps331ap but for example in accelerometer driver is used by several \n"
+ "sensors. It's possible in the future for new pressure sensors use the \n"
+ "same channels definition.\n"
+ "The channel definition is intended the switch by macro \n"
+ "ST_SENSORS_LSM_CHANNELS to the full definition, for me is not a problem \n"
+ "but I think it's not necessary.\n"
+ "\n"
+ "Denis\n"
+ "\n"
+ ">>> Signed-off-by: Lee Jones <lee.jones@linaro.org>\n"
+ ">>> ---\n"
+ ">>>    drivers/iio/pressure/st_pressure_core.c | 45 +++++++++++++++++++++++++--------\n"
+ ">>>    1 file changed, 34 insertions(+), 11 deletions(-)\n"
+ ">>>\n"
+ ">>> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c\n"
+ ">>> index becfb25..7ba9299 100644\n"
+ ">>> --- a/drivers/iio/pressure/st_pressure_core.c\n"
+ ">>> +++ b/drivers/iio/pressure/st_pressure_core.c\n"
+ ">>> @@ -58,16 +58,39 @@\n"
+ ">>>    #define ST_PRESS_LPS331AP_OUT_XL_ADDR\t\t0x28\n"
+ ">>>    #define ST_TEMP_LPS331AP_OUT_L_ADDR\t\t0x2b\n"
+ ">>>    \n"
+ ">>> -static const struct iio_chan_spec st_press_channels[] = {\n"
+ ">>> -\tST_SENSORS_LSM_CHANNELS(IIO_PRESSURE,\n"
+ ">>> +static const struct iio_chan_spec st_press_lsp331ap_channels[] = {\n"
+ ">>> +\t{\n"
+ ">>> +\t\t.type = IIO_PRESSURE,\n"
+ ">>> +\t\t.channel2 = IIO_NO_MOD,\n"
+ ">>> +\t\t.address = ST_PRESS_LPS331AP_OUT_XL_ADDR,\n"
+ ">>> +\t\t.scan_index = ST_SENSORS_SCAN_X,\n"
+ ">>> +\t\t.scan_type = {\n"
+ ">>> +\t\t\t.sign = 'u',\n"
+ ">>> +\t\t\t.realbits = 24,\n"
+ ">>> +\t\t\t.storagebits = 24,\n"
+ ">>> +\t\t\t.endianness = IIO_LE,\n"
+ ">>> +\t\t},\n"
+ ">>> +\t\t.info_mask_separate =\n"
+ ">>>    \t\t\tBIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),\n"
+ ">>> -\t\t\tST_SENSORS_SCAN_X, 0, IIO_NO_MOD, 'u', IIO_LE, 24, 24,\n"
+ ">>> -\t\t\tST_PRESS_LPS331AP_OUT_XL_ADDR),\n"
+ ">>> -\tST_SENSORS_LSM_CHANNELS(IIO_TEMP,\n"
+ ">>> -\t\t\tBIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) |\n"
+ ">>> -\t\t\t\t\t\tBIT(IIO_CHAN_INFO_OFFSET),\n"
+ ">>> -\t\t\t-1, 0, IIO_NO_MOD, 's', IIO_LE, 16, 16,\n"
+ ">>> -\t\t\tST_TEMP_LPS331AP_OUT_L_ADDR),\n"
+ ">>> +\t\t.modified = 0,\n"
+ ">>> +\t},\n"
+ ">>> +\t{\n"
+ ">>> +\t\t.type = IIO_TEMP,\n"
+ ">>> +\t\t.channel2 = IIO_NO_MOD,\n"
+ ">>> +\t\t.address = ST_TEMP_LPS331AP_OUT_L_ADDR,\n"
+ ">>> +\t\t.scan_index = -1,\n"
+ ">>> +\t\t.scan_type = {\n"
+ ">>> +\t\t\t.sign = 'u',\n"
+ ">>> +\t\t\t.realbits = 16,\n"
+ ">>> +\t\t\t.storagebits = 16,\n"
+ ">>> +\t\t\t.endianness = IIO_LE,\n"
+ ">>> +\t\t},\n"
+ ">>> +\t\t.info_mask_separate =\n"
+ ">>> +\t\t\tBIT(IIO_CHAN_INFO_RAW) |\n"
+ ">>> +\t\t\tBIT(IIO_CHAN_INFO_SCALE) |\n"
+ ">>> +\t\t\tBIT(IIO_CHAN_INFO_OFFSET),\n"
+ ">>> +\t\t.modified = 0,\n"
+ ">>> +\t},\n"
+ ">>>    \tIIO_CHAN_SOFT_TIMESTAMP(1)\n"
+ ">>>    };\n"
+ ">>>    \n"
+ ">>> @@ -77,7 +100,7 @@ static const struct st_sensors st_press_sensors[] = {\n"
+ ">>>    \t\t.sensors_supported = {\n"
+ ">>>    \t\t\t[0] = LPS331AP_PRESS_DEV_NAME,\n"
+ ">>>    \t\t},\n"
+ ">>> -\t\t.ch = (struct iio_chan_spec *)st_press_channels,\n"
+ ">>> +\t\t.ch = (struct iio_chan_spec *)st_press_lsp331ap_channels,\n"
+ ">>>    \t\t.odr = {\n"
+ ">>>    \t\t\t.addr = ST_PRESS_LPS331AP_ODR_ADDR,\n"
+ ">>>    \t\t\t.mask = ST_PRESS_LPS331AP_ODR_MASK,\n"
+ ">>> @@ -214,7 +237,7 @@ int st_press_common_probe(struct iio_dev *indio_dev)\n"
+ ">>>    \tpdata->num_data_channels = ST_PRESS_NUMBER_DATA_CHANNELS;\n"
+ ">>>    \tpdata->multiread_bit = pdata->sensor->multi_read_bit;\n"
+ ">>>    \tindio_dev->channels = pdata->sensor->ch;\n"
+ ">>> -\tindio_dev->num_channels = ARRAY_SIZE(st_press_channels);\n"
+ ">>> +\tindio_dev->num_channels = ARRAY_SIZE(st_press_lsp331ap_channels);\n"
+ ">>>    \n"
+ ">>>    \tpdata->current_fullscale = (struct st_sensor_fullscale_avl *)\n"
+ ">>>    \t\t\t\t\t\t&pdata->sensor->fs.fs_avl[0];\n"
+ "\303\277\303\264\303\250\302\272{.n\303\207+\302\211\302\267\302\237\302\256\302\211\302\255\302\206+%\302\212\303\213\303\277\302\261\303\251\303\235\302\266\027\302\245\302\212w\303\277\302\272{.n\303\207+\302\211\302\267\302\245\302\212{\302\261\303\276G\302\253\302\235\303\251\303\277\302\212{ay\302\272\035\303\212\302\207\303\232\302\231\303\253,j\a\302\255\302\242f\302\243\302\242\302\267h\302\232\302\217\303\257\302\201\303\252\303\277\302\221\303\252\303\247z_\303\250\302\256\003(\302\255\303\251\302\232\302\216\302\212\303\235\302\242j\"\302\235\303\272\032\302\266\033m\302\247\303\277\303\277\302\276\a\302\253\303\276G\302\253\302\235\303\251\303\277\302\242\302\270?\302\231\302\250\303\250\302\255\303\232&\302\243\303\270\302\247~\302\217\303\241\302\266iO\302\225\303\246\302\254z\302\267\302\232v\303\230^\024\004\032\302\266\033m\302\247\303\277\303\277\303\203\f\303\277\302\266\303\254\303\277\302\242\302\270?\302\226I\302\245"
 
-ae0e1812cd9de4b36c0945a530626900451dab5f326d0951e62a1f206109b2de
+d652ffe8858f907214e9e677d8bfb35d9f051585e09ae460f7e45e7a9678840d

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.