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

diff --git a/a/1.txt b/N1/1.txt
index 8ff9389..afbd55f 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,98 +1,118 @@
-TGVlLCBJIGdvdCB5b3VyIHBvaW50LiBGb3IgbWUgaXMgb2suLi4NCg0KRGVuaXMNCj4gT24gVGh1
-LCAwNSBTZXAgMjAxMywgRGVuaXMgQ0lPQ0NBIHdyb3RlOg0KPg0KPj4+Pj4gRHVlIHRvIHRoZSBN
-QUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0YW5kaW5nIGFuZCBtYWludGFp
-bmluZw0KPj4+Pj4gdGhlIExQUzMzMUFQJ3MgY2hhbm5lbCBkZXNjcmlwdG9yIGlzIHN1YnN0YW50
-aWFsbHkgZGlmZmljdWx0LiBUaGlzIHBhdGNoDQo+Pj4+PiBpcyBiYXNlZCBvbiB0aGUgdmlldyB0
-aGF0IGl0J3MgYmV0dGVyIHRvIGhhdmUgZWFzeSB0byByZWFkLCBtYWludGFpbmFibGUNCj4+Pj4+
-IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJlLiBGb3IgdGhhdCBy
-ZWFzb24gd2UncmUNCj4+Pj4+IGV4cGFuZGluZyB0aGUgYXJyYXkgc28gaW5pdGlhbGlzYXRpb24g
-aXMgY29tcGxldGVkIGluIGZ1bGwuDQo+Pj4+IEFsc28gZm9yIHRoaXMgb25lLCB0aGUgY2hhbm5l
-bCBuYW1lcyBhcmUgZ2VuZXJhbCBhbmQgY2FuIGJlIHNoYXJlZA0KPj4+PiBiZXR3ZWVuIGRpZmZl
-cmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBhIHByb2Js
-ZW0NCj4+Pj4gZm9yIG1lLCBidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkgYWRkcyBhbGwg
-dGhhdCBjb2RlLi4uDQo+Pj4gSSdtIG5vdCBzdXJlIHdoYXQgeW91IG1lYW4gYnkgdGhpcy4gV291
-bGQgeW91IGJlIGtpbmQgZW5vdWdoIHRvDQo+Pj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3
-YXkgcGxlYXNlPw0KPj4gVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2No
-YW5uZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYw0KPj4gZm9yIG9uZSBzZW5zb3IgYnV0IGNhbiBi
-ZSBzaGFyZWQuIE9rIGluIHRoaXMgZHJpdmVyIG5vdyBpcyB1c2VkIG9ubHkgZm9yDQo+PiB0aGUg
-bHBzMzMxYXAgYnV0IGZvciBleGFtcGxlIGluIGFjY2VsZXJvbWV0ZXIgZHJpdmVyIGlzIHVzZWQg
-Ynkgc2V2ZXJhbA0KPj4gc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBu
-ZXcgcHJlc3N1cmUgc2Vuc29ycyB1c2UgdGhlDQo+PiBzYW1lIGNoYW5uZWxzIGRlZmluaXRpb24u
-DQo+IEFoIHllcyBJIHNlZSB3aGF0IHlvdSBtZWFuLiBXZWxsIGFzIHlvdSBzYXksIGZvciB0aGUg
-bW9tZW50LCBhcw0KPiB0aGV5J3JlIHNlcGFyYXRlZCwgdGhpcyBuYW1pbmcgY29udmVudGlvbiBz
-ZWVtcyB0aGUgbW9zdA0KPiBhcHByb3ByaWF0ZS4gSWYgd2UgYWRkIGFueW1vcmUgZGV2aWNlcyB3
-aGljaCBzaGFyZSB0aGUgZGVmaW5pdGlvbiwgd2UNCj4gY2FuIHBpY2sgdGhlIGJlc3QgbmFtaW5n
-IGNvbnZlbnRpb24gZm9yIHRoZSBzaXR1YXRpb24gSSB0aGluay4gRm9yDQo+IGluc3RhbmNlLCBJ
-IGxpa2UgdGhhdCB5b3UndmUgc3BsaXQgdGhlIGNoYW5uZWxzIHVwIGludG8gdGhlIG51bWJlciBv
-Zg0KPiBiaXRzIHRoZXkgc3VwcG9ydCBpbiB0aGUgZ3lybyBhbmQgYWNjZWwgY2FzZXMsIHNvIHNv
-bWV0aGluZyBvZiB0aGF0DQo+IG5hdHVyZSBjb3VsZCBiZSB1dGlsaXNlZCBpZiBvdGhlciBkZXZp
-Y2Ugc3VwcG9ydCBpcyBhZGRlZC4NCj4NCj4+IFRoZSBjaGFubmVsIGRlZmluaXRpb24gaXMgaW50
-ZW5kZWQgdGhlIHN3aXRjaCBieSBtYWNybw0KPj4gU1RfU0VOU09SU19MU01fQ0hBTk5FTFMgdG8g
-dGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHByb2JsZW0NCj4+IGJ1dCBJIHRo
-aW5rIGl0J3Mgbm90IG5lY2Vzc2FyeS4NCj4gSWYgeW91IGFyZSBmYW1pbGlhciB3aXRoIHRoZSBt
-YWNybyBJIGd1ZXNzIHlvdSBjb3VsZCBnZXQgdXNlZCB0bw0KPiB3b3JraW5nIHdpdGggaXQsIGJ1
-dCBjb21pbmcgZnJvbSBpbiBhcyBhIGZpcnN0IHRpbWUgcmVhZGVyLCBhZGRpbmcgYQ0KPiBuZXcg
-ZGV2aWNlIHdhcyBwcmV0dHkgZGlmZmljdWx0LiBJIGhhZCB0byBsb29rIHVwIHRoZSBtYWNybyBp
-biB0aGUNCj4gaGVhZGVyIGZpbGUsIHRoZW4gaGF2ZSB0aGUgb3JpZ2luYWwgc3RydWN0IG9wZW4g
-dG9vIGFuZCBjcm9zcw0KPiByZWZlcmVuY2UgaW4gMyBkaWZmZXJlbnQgcGxhY2VzLiBJdCdzIG1h
-ZGUgZXZlbiBtb3JlIGRpZmZpY3VsdCBieSB0aGUNCj4gbWFjcm8gYmVpbmcgaW4gYSBkaWZmZXJl
-bnQgb3JkZXIgdG8gdGhlIG9yaWdpbmFsIHN0cnVjdC4NCj4NCj4gTm93IEkndmUgaGFkIHRpbWUg
-dG8gd29yayB3aXRoIGl0LCBJIGNvdWxkIHByb2JhYmx5IHdvcmsgd2l0aCBpdCBhcw0KPiB3ZWxs
-LiBJIHdhcyBqdXN0IHRoaW5raW5nIGFib3V0IGhlbHBpbmcgb3V0IGFueSBuZXcgcGVyc29uIHRo
-YXQgY29tZXMNCj4gYWxvbmcgYW5kIHRyaWVzIHRvIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBzZW5z
-b3IuDQo+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8u
-b3JnPg0KPj4+Pj4gLS0tDQo+Pj4+PiAgICAgZHJpdmVycy9paW8vcHJlc3N1cmUvc3RfcHJlc3N1
-cmVfY29yZS5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQo+Pj4+PiAg
-ICAgMSBmaWxlIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KPj4+
-Pj4NCj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9j
-b3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+IGlu
-ZGV4IGJlY2ZiMjUuLjdiYTkyOTkgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9kcml2ZXJzL2lpby9wcmVz
-c3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+ICsrKyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJl
-L3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+Pj4gQEAgLTU4LDE2ICs1OCwzOSBAQA0KPj4+Pj4gICAg
-ICNkZWZpbmUgU1RfUFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIJCTB4MjgNCj4+Pj4+ICAgICAj
-ZGVmaW5lIFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUgkJMHgyYg0KPj4+Pj4gICAgIA0KPj4+
-Pj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19jaGFubmVsc1td
-ID0gew0KPj4+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NVUkUsDQo+Pj4+
-PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNzX2xzcDMzMWFwX2No
-YW5uZWxzW10gPSB7DQo+Pj4+PiArCXsNCj4+Pj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJFLA0K
-Pj4+Pj4gKwkJLmNoYW5uZWwyID0gSUlPX05PX01PRCwNCj4+Pj4+ICsJCS5hZGRyZXNzID0gU1Rf
-UFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIsDQo+Pj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NF
-TlNPUlNfU0NBTl9YLA0KPj4+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+Pj4+ICsJCQkuc2lnbiA9
-ICd1JywNCj4+Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+Pj4+ICsJCQkuc3RvcmFnZWJpdHMg
-PSAyNCwNCj4+Pj4+ICsJCQkuZW5kaWFubmVzcyA9IElJT19MRSwNCj4+Pj4+ICsJCX0sDQo+Pj4+
-PiArCQkuaW5mb19tYXNrX3NlcGFyYXRlID0NCj4+Pj4+ICAgICAJCQlCSVQoSUlPX0NIQU5fSU5G
-T19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpLA0KPj4+Pj4gLQkJCVNUX1NFTlNPUlNf
-U0NBTl9YLCAwLCBJSU9fTk9fTU9ELCAndScsIElJT19MRSwgMjQsIDI0LA0KPj4+Pj4gLQkJCVNU
-X1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERSKSwNCj4+Pj4+IC0JU1RfU0VOU09SU19MU01fQ0hB
-Tk5FTFMoSUlPX1RFTVAsDQo+Pj4+PiAtCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJ
-SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiAtCQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZG
-U0VUKSwNCj4+Pj4+IC0JCQktMSwgMCwgSUlPX05PX01PRCwgJ3MnLCBJSU9fTEUsIDE2LCAxNiwN
-Cj4+Pj4+IC0JCQlTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIpLA0KPj4+Pj4gKwkJLm1vZGlm
-aWVkID0gMCwNCj4+Pj4+ICsJfSwNCj4+Pj4+ICsJew0KPj4+Pj4gKwkJLnR5cGUgPSBJSU9fVEVN
-UCwNCj4+Pj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4+PiArCQkuYWRkcmVzcyA9
-IFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUiwNCj4+Pj4+ICsJCS5zY2FuX2luZGV4ID0gLTEs
-DQo+Pj4+PiArCQkuc2Nhbl90eXBlID0gew0KPj4+Pj4gKwkJCS5zaWduID0gJ3UnLA0KPj4+Pj4g
-KwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+Pj4gKwkJCS5zdG9yYWdlYml0cyA9IDE2LA0KPj4+Pj4g
-KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+Pj4gKwkJfSwNCj4+Pj4+ICsJCS5pbmZvX21h
-c2tfc2VwYXJhdGUgPQ0KPj4+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX1JBVykgfA0KPj4+Pj4g
-KwkJCUJJVChJSU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiArCQkJQklUKElJT19DSEFOX0lO
-Rk9fT0ZGU0VUKSwNCj4+Pj4+ICsJCS5tb2RpZmllZCA9IDAsDQo+Pj4+PiArCX0sDQo+Pj4+PiAg
-ICAgCUlJT19DSEFOX1NPRlRfVElNRVNUQU1QKDEpDQo+Pj4+PiAgICAgfTsNCj4+Pj4+ICAgICAN
-Cj4+Pj4+IEBAIC03Nyw3ICsxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0X3NlbnNvcnMg
-c3RfcHJlc3Nfc2Vuc29yc1tdID0gew0KPj4+Pj4gICAgIAkJLnNlbnNvcnNfc3VwcG9ydGVkID0g
-ew0KPj4+Pj4gICAgIAkJCVswXSA9IExQUzMzMUFQX1BSRVNTX0RFVl9OQU1FLA0KPj4+Pj4gICAg
-IAkJfSwNCj4+Pj4+IC0JCS5jaCA9IChzdHJ1Y3QgaWlvX2NoYW5fc3BlYyAqKXN0X3ByZXNzX2No
-YW5uZWxzLA0KPj4+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hhbl9zcGVjICopc3RfcHJlc3Nf
-bHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4+PiAgICAgCQkub2RyID0gew0KPj4+Pj4gICAgIAkJCS5h
-ZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4+PiAgICAgCQkJLm1hc2sgPSBT
-VF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+Pj4+IEBAIC0yMTQsNyArMjM3LDcgQEAgaW50
-IHN0X3ByZXNzX2NvbW1vbl9wcm9iZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPj4+Pj4g
-ICAgIAlwZGF0YS0+bnVtX2RhdGFfY2hhbm5lbHMgPSBTVF9QUkVTU19OVU1CRVJfREFUQV9DSEFO
-TkVMUzsNCj4+Pj4+ICAgICAJcGRhdGEtPm11bHRpcmVhZF9iaXQgPSBwZGF0YS0+c2Vuc29yLT5t
-dWx0aV9yZWFkX2JpdDsNCj4+Pj4+ICAgICAJaW5kaW9fZGV2LT5jaGFubmVscyA9IHBkYXRhLT5z
-ZW5zb3ItPmNoOw0KPj4+Pj4gLQlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJWkUo
-c3RfcHJlc3NfY2hhbm5lbHMpOw0KPj4+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFS
-UkFZX1NJWkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+Pj4gICAgIA0KPj4+Pj4g
-ICAgIAlwZGF0YS0+Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2Nh
-bGVfYXZsICopDQo+Pj4+PiAgICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsN
-Cg==
+Lee, I got your point. For me is ok...
+
+Denis
+> On Thu, 05 Sep 2013, Denis CIOCCA wrote:
+>
+>>>>> 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.
+> Ah yes I see what you mean. Well as you say, for the moment, as
+> they're separated, this naming convention seems the most
+> appropriate. If we add anymore devices which share the definition, we
+> can pick the best naming convention for the situation I think. For
+> instance, I like that you've split the channels up into the number of
+> bits they support in the gyro and accel cases, so something of that
+> nature could be utilised if other device support is added.
+>
+>> 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.
+> If you are familiar with the macro I guess you could get used to
+> working with it, but coming from in as a first time reader, adding a
+> new device was pretty difficult. I had to look up the macro in the
+> header file, then have the original struct open too and cross
+> reference in 3 different places. It's made even more difficult by the
+> macro being in a different order to the original struct.
+>
+> Now I've had time to work with it, I could probably work with it as
+> well. I was just thinking about helping out any new person that comes
+> along and tries to add support for a new sensor.
+>
+>>>>> 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 950e1b3..95f6af8 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -4,115 +4,129 @@
  "ref\020130905072114.GD8980@lee--X1\0"
  "ref\052283367.4070603@st.com\0"
  "ref\020130905075953.GF8980@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 10:35:35 +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"
- "TGVlLCBJIGdvdCB5b3VyIHBvaW50LiBGb3IgbWUgaXMgb2suLi4NCg0KRGVuaXMNCj4gT24gVGh1\n"
- "LCAwNSBTZXAgMjAxMywgRGVuaXMgQ0lPQ0NBIHdyb3RlOg0KPg0KPj4+Pj4gRHVlIHRvIHRoZSBN\n"
- "QUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0YW5kaW5nIGFuZCBtYWludGFp\n"
- "bmluZw0KPj4+Pj4gdGhlIExQUzMzMUFQJ3MgY2hhbm5lbCBkZXNjcmlwdG9yIGlzIHN1YnN0YW50\n"
- "aWFsbHkgZGlmZmljdWx0LiBUaGlzIHBhdGNoDQo+Pj4+PiBpcyBiYXNlZCBvbiB0aGUgdmlldyB0\n"
- "aGF0IGl0J3MgYmV0dGVyIHRvIGhhdmUgZWFzeSB0byByZWFkLCBtYWludGFpbmFibGUNCj4+Pj4+\n"
- "IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJlLiBGb3IgdGhhdCBy\n"
- "ZWFzb24gd2UncmUNCj4+Pj4+IGV4cGFuZGluZyB0aGUgYXJyYXkgc28gaW5pdGlhbGlzYXRpb24g\n"
- "aXMgY29tcGxldGVkIGluIGZ1bGwuDQo+Pj4+IEFsc28gZm9yIHRoaXMgb25lLCB0aGUgY2hhbm5l\n"
- "bCBuYW1lcyBhcmUgZ2VuZXJhbCBhbmQgY2FuIGJlIHNoYXJlZA0KPj4+PiBiZXR3ZWVuIGRpZmZl\n"
- "cmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBhIHByb2Js\n"
- "ZW0NCj4+Pj4gZm9yIG1lLCBidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkgYWRkcyBhbGwg\n"
- "dGhhdCBjb2RlLi4uDQo+Pj4gSSdtIG5vdCBzdXJlIHdoYXQgeW91IG1lYW4gYnkgdGhpcy4gV291\n"
- "bGQgeW91IGJlIGtpbmQgZW5vdWdoIHRvDQo+Pj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3\n"
- "YXkgcGxlYXNlPw0KPj4gVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2No\n"
- "YW5uZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYw0KPj4gZm9yIG9uZSBzZW5zb3IgYnV0IGNhbiBi\n"
- "ZSBzaGFyZWQuIE9rIGluIHRoaXMgZHJpdmVyIG5vdyBpcyB1c2VkIG9ubHkgZm9yDQo+PiB0aGUg\n"
- "bHBzMzMxYXAgYnV0IGZvciBleGFtcGxlIGluIGFjY2VsZXJvbWV0ZXIgZHJpdmVyIGlzIHVzZWQg\n"
- "Ynkgc2V2ZXJhbA0KPj4gc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBu\n"
- "ZXcgcHJlc3N1cmUgc2Vuc29ycyB1c2UgdGhlDQo+PiBzYW1lIGNoYW5uZWxzIGRlZmluaXRpb24u\n"
- "DQo+IEFoIHllcyBJIHNlZSB3aGF0IHlvdSBtZWFuLiBXZWxsIGFzIHlvdSBzYXksIGZvciB0aGUg\n"
- "bW9tZW50LCBhcw0KPiB0aGV5J3JlIHNlcGFyYXRlZCwgdGhpcyBuYW1pbmcgY29udmVudGlvbiBz\n"
- "ZWVtcyB0aGUgbW9zdA0KPiBhcHByb3ByaWF0ZS4gSWYgd2UgYWRkIGFueW1vcmUgZGV2aWNlcyB3\n"
- "aGljaCBzaGFyZSB0aGUgZGVmaW5pdGlvbiwgd2UNCj4gY2FuIHBpY2sgdGhlIGJlc3QgbmFtaW5n\n"
- "IGNvbnZlbnRpb24gZm9yIHRoZSBzaXR1YXRpb24gSSB0aGluay4gRm9yDQo+IGluc3RhbmNlLCBJ\n"
- "IGxpa2UgdGhhdCB5b3UndmUgc3BsaXQgdGhlIGNoYW5uZWxzIHVwIGludG8gdGhlIG51bWJlciBv\n"
- "Zg0KPiBiaXRzIHRoZXkgc3VwcG9ydCBpbiB0aGUgZ3lybyBhbmQgYWNjZWwgY2FzZXMsIHNvIHNv\n"
- "bWV0aGluZyBvZiB0aGF0DQo+IG5hdHVyZSBjb3VsZCBiZSB1dGlsaXNlZCBpZiBvdGhlciBkZXZp\n"
- "Y2Ugc3VwcG9ydCBpcyBhZGRlZC4NCj4NCj4+IFRoZSBjaGFubmVsIGRlZmluaXRpb24gaXMgaW50\n"
- "ZW5kZWQgdGhlIHN3aXRjaCBieSBtYWNybw0KPj4gU1RfU0VOU09SU19MU01fQ0hBTk5FTFMgdG8g\n"
- "dGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHByb2JsZW0NCj4+IGJ1dCBJIHRo\n"
- "aW5rIGl0J3Mgbm90IG5lY2Vzc2FyeS4NCj4gSWYgeW91IGFyZSBmYW1pbGlhciB3aXRoIHRoZSBt\n"
- "YWNybyBJIGd1ZXNzIHlvdSBjb3VsZCBnZXQgdXNlZCB0bw0KPiB3b3JraW5nIHdpdGggaXQsIGJ1\n"
- "dCBjb21pbmcgZnJvbSBpbiBhcyBhIGZpcnN0IHRpbWUgcmVhZGVyLCBhZGRpbmcgYQ0KPiBuZXcg\n"
- "ZGV2aWNlIHdhcyBwcmV0dHkgZGlmZmljdWx0LiBJIGhhZCB0byBsb29rIHVwIHRoZSBtYWNybyBp\n"
- "biB0aGUNCj4gaGVhZGVyIGZpbGUsIHRoZW4gaGF2ZSB0aGUgb3JpZ2luYWwgc3RydWN0IG9wZW4g\n"
- "dG9vIGFuZCBjcm9zcw0KPiByZWZlcmVuY2UgaW4gMyBkaWZmZXJlbnQgcGxhY2VzLiBJdCdzIG1h\n"
- "ZGUgZXZlbiBtb3JlIGRpZmZpY3VsdCBieSB0aGUNCj4gbWFjcm8gYmVpbmcgaW4gYSBkaWZmZXJl\n"
- "bnQgb3JkZXIgdG8gdGhlIG9yaWdpbmFsIHN0cnVjdC4NCj4NCj4gTm93IEkndmUgaGFkIHRpbWUg\n"
- "dG8gd29yayB3aXRoIGl0LCBJIGNvdWxkIHByb2JhYmx5IHdvcmsgd2l0aCBpdCBhcw0KPiB3ZWxs\n"
- "LiBJIHdhcyBqdXN0IHRoaW5raW5nIGFib3V0IGhlbHBpbmcgb3V0IGFueSBuZXcgcGVyc29uIHRo\n"
- "YXQgY29tZXMNCj4gYWxvbmcgYW5kIHRyaWVzIHRvIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBzZW5z\n"
- "b3IuDQo+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8u\n"
- "b3JnPg0KPj4+Pj4gLS0tDQo+Pj4+PiAgICAgZHJpdmVycy9paW8vcHJlc3N1cmUvc3RfcHJlc3N1\n"
- "cmVfY29yZS5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQo+Pj4+PiAg\n"
- "ICAgMSBmaWxlIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KPj4+\n"
- "Pj4NCj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9j\n"
- "b3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+IGlu\n"
- "ZGV4IGJlY2ZiMjUuLjdiYTkyOTkgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9kcml2ZXJzL2lpby9wcmVz\n"
- "c3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+ICsrKyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJl\n"
- "L3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+Pj4gQEAgLTU4LDE2ICs1OCwzOSBAQA0KPj4+Pj4gICAg\n"
- "ICNkZWZpbmUgU1RfUFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIJCTB4MjgNCj4+Pj4+ICAgICAj\n"
- "ZGVmaW5lIFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUgkJMHgyYg0KPj4+Pj4gICAgIA0KPj4+\n"
- "Pj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19jaGFubmVsc1td\n"
- "ID0gew0KPj4+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NVUkUsDQo+Pj4+\n"
- "PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNzX2xzcDMzMWFwX2No\n"
- "YW5uZWxzW10gPSB7DQo+Pj4+PiArCXsNCj4+Pj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJFLA0K\n"
- "Pj4+Pj4gKwkJLmNoYW5uZWwyID0gSUlPX05PX01PRCwNCj4+Pj4+ICsJCS5hZGRyZXNzID0gU1Rf\n"
- "UFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIsDQo+Pj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NF\n"
- "TlNPUlNfU0NBTl9YLA0KPj4+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+Pj4+ICsJCQkuc2lnbiA9\n"
- "ICd1JywNCj4+Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+Pj4+ICsJCQkuc3RvcmFnZWJpdHMg\n"
- "PSAyNCwNCj4+Pj4+ICsJCQkuZW5kaWFubmVzcyA9IElJT19MRSwNCj4+Pj4+ICsJCX0sDQo+Pj4+\n"
- "PiArCQkuaW5mb19tYXNrX3NlcGFyYXRlID0NCj4+Pj4+ICAgICAJCQlCSVQoSUlPX0NIQU5fSU5G\n"
- "T19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpLA0KPj4+Pj4gLQkJCVNUX1NFTlNPUlNf\n"
- "U0NBTl9YLCAwLCBJSU9fTk9fTU9ELCAndScsIElJT19MRSwgMjQsIDI0LA0KPj4+Pj4gLQkJCVNU\n"
- "X1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERSKSwNCj4+Pj4+IC0JU1RfU0VOU09SU19MU01fQ0hB\n"
- "Tk5FTFMoSUlPX1RFTVAsDQo+Pj4+PiAtCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJ\n"
- "SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiAtCQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZG\n"
- "U0VUKSwNCj4+Pj4+IC0JCQktMSwgMCwgSUlPX05PX01PRCwgJ3MnLCBJSU9fTEUsIDE2LCAxNiwN\n"
- "Cj4+Pj4+IC0JCQlTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIpLA0KPj4+Pj4gKwkJLm1vZGlm\n"
- "aWVkID0gMCwNCj4+Pj4+ICsJfSwNCj4+Pj4+ICsJew0KPj4+Pj4gKwkJLnR5cGUgPSBJSU9fVEVN\n"
- "UCwNCj4+Pj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4+PiArCQkuYWRkcmVzcyA9\n"
- "IFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUiwNCj4+Pj4+ICsJCS5zY2FuX2luZGV4ID0gLTEs\n"
- "DQo+Pj4+PiArCQkuc2Nhbl90eXBlID0gew0KPj4+Pj4gKwkJCS5zaWduID0gJ3UnLA0KPj4+Pj4g\n"
- "KwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+Pj4gKwkJCS5zdG9yYWdlYml0cyA9IDE2LA0KPj4+Pj4g\n"
- "KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+Pj4gKwkJfSwNCj4+Pj4+ICsJCS5pbmZvX21h\n"
- "c2tfc2VwYXJhdGUgPQ0KPj4+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX1JBVykgfA0KPj4+Pj4g\n"
- "KwkJCUJJVChJSU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiArCQkJQklUKElJT19DSEFOX0lO\n"
- "Rk9fT0ZGU0VUKSwNCj4+Pj4+ICsJCS5tb2RpZmllZCA9IDAsDQo+Pj4+PiArCX0sDQo+Pj4+PiAg\n"
- "ICAgCUlJT19DSEFOX1NPRlRfVElNRVNUQU1QKDEpDQo+Pj4+PiAgICAgfTsNCj4+Pj4+ICAgICAN\n"
- "Cj4+Pj4+IEBAIC03Nyw3ICsxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0X3NlbnNvcnMg\n"
- "c3RfcHJlc3Nfc2Vuc29yc1tdID0gew0KPj4+Pj4gICAgIAkJLnNlbnNvcnNfc3VwcG9ydGVkID0g\n"
- "ew0KPj4+Pj4gICAgIAkJCVswXSA9IExQUzMzMUFQX1BSRVNTX0RFVl9OQU1FLA0KPj4+Pj4gICAg\n"
- "IAkJfSwNCj4+Pj4+IC0JCS5jaCA9IChzdHJ1Y3QgaWlvX2NoYW5fc3BlYyAqKXN0X3ByZXNzX2No\n"
- "YW5uZWxzLA0KPj4+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hhbl9zcGVjICopc3RfcHJlc3Nf\n"
- "bHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4+PiAgICAgCQkub2RyID0gew0KPj4+Pj4gICAgIAkJCS5h\n"
- "ZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4+PiAgICAgCQkJLm1hc2sgPSBT\n"
- "VF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+Pj4+IEBAIC0yMTQsNyArMjM3LDcgQEAgaW50\n"
- "IHN0X3ByZXNzX2NvbW1vbl9wcm9iZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPj4+Pj4g\n"
- "ICAgIAlwZGF0YS0+bnVtX2RhdGFfY2hhbm5lbHMgPSBTVF9QUkVTU19OVU1CRVJfREFUQV9DSEFO\n"
- "TkVMUzsNCj4+Pj4+ICAgICAJcGRhdGEtPm11bHRpcmVhZF9iaXQgPSBwZGF0YS0+c2Vuc29yLT5t\n"
- "dWx0aV9yZWFkX2JpdDsNCj4+Pj4+ICAgICAJaW5kaW9fZGV2LT5jaGFubmVscyA9IHBkYXRhLT5z\n"
- "ZW5zb3ItPmNoOw0KPj4+Pj4gLQlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJWkUo\n"
- "c3RfcHJlc3NfY2hhbm5lbHMpOw0KPj4+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFS\n"
- "UkFZX1NJWkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+Pj4gICAgIA0KPj4+Pj4g\n"
- "ICAgIAlwZGF0YS0+Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2Nh\n"
- "bGVfYXZsICopDQo+Pj4+PiAgICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsN\n"
- Cg==
+ "Lee, I got your point. For me is ok...\n"
+ "\n"
+ "Denis\n"
+ "> On Thu, 05 Sep 2013, Denis CIOCCA wrote:\n"
+ ">\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"
+ "> Ah yes I see what you mean. Well as you say, for the moment, as\n"
+ "> they're separated, this naming convention seems the most\n"
+ "> appropriate. If we add anymore devices which share the definition, we\n"
+ "> can pick the best naming convention for the situation I think. For\n"
+ "> instance, I like that you've split the channels up into the number of\n"
+ "> bits they support in the gyro and accel cases, so something of that\n"
+ "> nature could be utilised if other device support is added.\n"
+ ">\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"
+ "> If you are familiar with the macro I guess you could get used to\n"
+ "> working with it, but coming from in as a first time reader, adding a\n"
+ "> new device was pretty difficult. I had to look up the macro in the\n"
+ "> header file, then have the original struct open too and cross\n"
+ "> reference in 3 different places. It's made even more difficult by the\n"
+ "> macro being in a different order to the original struct.\n"
+ ">\n"
+ "> Now I've had time to work with it, I could probably work with it as\n"
+ "> well. I was just thinking about helping out any new person that comes\n"
+ "> along and tries to add support for a new sensor.\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];"
 
-6a48c429c43ca771cac51ee88cad8464b0885484b4e35464acc7ac4247dc1c81
+c1642cdfe264b105604b45275304edf26262f2a8c9b7f7486140247588f7666f

diff --git a/a/1.txt b/N2/1.txt
index 8ff9389..a67021f 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,98 +1,119 @@
-TGVlLCBJIGdvdCB5b3VyIHBvaW50LiBGb3IgbWUgaXMgb2suLi4NCg0KRGVuaXMNCj4gT24gVGh1
-LCAwNSBTZXAgMjAxMywgRGVuaXMgQ0lPQ0NBIHdyb3RlOg0KPg0KPj4+Pj4gRHVlIHRvIHRoZSBN
-QUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0YW5kaW5nIGFuZCBtYWludGFp
-bmluZw0KPj4+Pj4gdGhlIExQUzMzMUFQJ3MgY2hhbm5lbCBkZXNjcmlwdG9yIGlzIHN1YnN0YW50
-aWFsbHkgZGlmZmljdWx0LiBUaGlzIHBhdGNoDQo+Pj4+PiBpcyBiYXNlZCBvbiB0aGUgdmlldyB0
-aGF0IGl0J3MgYmV0dGVyIHRvIGhhdmUgZWFzeSB0byByZWFkLCBtYWludGFpbmFibGUNCj4+Pj4+
-IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJlLiBGb3IgdGhhdCBy
-ZWFzb24gd2UncmUNCj4+Pj4+IGV4cGFuZGluZyB0aGUgYXJyYXkgc28gaW5pdGlhbGlzYXRpb24g
-aXMgY29tcGxldGVkIGluIGZ1bGwuDQo+Pj4+IEFsc28gZm9yIHRoaXMgb25lLCB0aGUgY2hhbm5l
-bCBuYW1lcyBhcmUgZ2VuZXJhbCBhbmQgY2FuIGJlIHNoYXJlZA0KPj4+PiBiZXR3ZWVuIGRpZmZl
-cmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBhIHByb2Js
-ZW0NCj4+Pj4gZm9yIG1lLCBidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkgYWRkcyBhbGwg
-dGhhdCBjb2RlLi4uDQo+Pj4gSSdtIG5vdCBzdXJlIHdoYXQgeW91IG1lYW4gYnkgdGhpcy4gV291
-bGQgeW91IGJlIGtpbmQgZW5vdWdoIHRvDQo+Pj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3
-YXkgcGxlYXNlPw0KPj4gVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2No
-YW5uZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYw0KPj4gZm9yIG9uZSBzZW5zb3IgYnV0IGNhbiBi
-ZSBzaGFyZWQuIE9rIGluIHRoaXMgZHJpdmVyIG5vdyBpcyB1c2VkIG9ubHkgZm9yDQo+PiB0aGUg
-bHBzMzMxYXAgYnV0IGZvciBleGFtcGxlIGluIGFjY2VsZXJvbWV0ZXIgZHJpdmVyIGlzIHVzZWQg
-Ynkgc2V2ZXJhbA0KPj4gc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBu
-ZXcgcHJlc3N1cmUgc2Vuc29ycyB1c2UgdGhlDQo+PiBzYW1lIGNoYW5uZWxzIGRlZmluaXRpb24u
-DQo+IEFoIHllcyBJIHNlZSB3aGF0IHlvdSBtZWFuLiBXZWxsIGFzIHlvdSBzYXksIGZvciB0aGUg
-bW9tZW50LCBhcw0KPiB0aGV5J3JlIHNlcGFyYXRlZCwgdGhpcyBuYW1pbmcgY29udmVudGlvbiBz
-ZWVtcyB0aGUgbW9zdA0KPiBhcHByb3ByaWF0ZS4gSWYgd2UgYWRkIGFueW1vcmUgZGV2aWNlcyB3
-aGljaCBzaGFyZSB0aGUgZGVmaW5pdGlvbiwgd2UNCj4gY2FuIHBpY2sgdGhlIGJlc3QgbmFtaW5n
-IGNvbnZlbnRpb24gZm9yIHRoZSBzaXR1YXRpb24gSSB0aGluay4gRm9yDQo+IGluc3RhbmNlLCBJ
-IGxpa2UgdGhhdCB5b3UndmUgc3BsaXQgdGhlIGNoYW5uZWxzIHVwIGludG8gdGhlIG51bWJlciBv
-Zg0KPiBiaXRzIHRoZXkgc3VwcG9ydCBpbiB0aGUgZ3lybyBhbmQgYWNjZWwgY2FzZXMsIHNvIHNv
-bWV0aGluZyBvZiB0aGF0DQo+IG5hdHVyZSBjb3VsZCBiZSB1dGlsaXNlZCBpZiBvdGhlciBkZXZp
-Y2Ugc3VwcG9ydCBpcyBhZGRlZC4NCj4NCj4+IFRoZSBjaGFubmVsIGRlZmluaXRpb24gaXMgaW50
-ZW5kZWQgdGhlIHN3aXRjaCBieSBtYWNybw0KPj4gU1RfU0VOU09SU19MU01fQ0hBTk5FTFMgdG8g
-dGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHByb2JsZW0NCj4+IGJ1dCBJIHRo
-aW5rIGl0J3Mgbm90IG5lY2Vzc2FyeS4NCj4gSWYgeW91IGFyZSBmYW1pbGlhciB3aXRoIHRoZSBt
-YWNybyBJIGd1ZXNzIHlvdSBjb3VsZCBnZXQgdXNlZCB0bw0KPiB3b3JraW5nIHdpdGggaXQsIGJ1
-dCBjb21pbmcgZnJvbSBpbiBhcyBhIGZpcnN0IHRpbWUgcmVhZGVyLCBhZGRpbmcgYQ0KPiBuZXcg
-ZGV2aWNlIHdhcyBwcmV0dHkgZGlmZmljdWx0LiBJIGhhZCB0byBsb29rIHVwIHRoZSBtYWNybyBp
-biB0aGUNCj4gaGVhZGVyIGZpbGUsIHRoZW4gaGF2ZSB0aGUgb3JpZ2luYWwgc3RydWN0IG9wZW4g
-dG9vIGFuZCBjcm9zcw0KPiByZWZlcmVuY2UgaW4gMyBkaWZmZXJlbnQgcGxhY2VzLiBJdCdzIG1h
-ZGUgZXZlbiBtb3JlIGRpZmZpY3VsdCBieSB0aGUNCj4gbWFjcm8gYmVpbmcgaW4gYSBkaWZmZXJl
-bnQgb3JkZXIgdG8gdGhlIG9yaWdpbmFsIHN0cnVjdC4NCj4NCj4gTm93IEkndmUgaGFkIHRpbWUg
-dG8gd29yayB3aXRoIGl0LCBJIGNvdWxkIHByb2JhYmx5IHdvcmsgd2l0aCBpdCBhcw0KPiB3ZWxs
-LiBJIHdhcyBqdXN0IHRoaW5raW5nIGFib3V0IGhlbHBpbmcgb3V0IGFueSBuZXcgcGVyc29uIHRo
-YXQgY29tZXMNCj4gYWxvbmcgYW5kIHRyaWVzIHRvIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBzZW5z
-b3IuDQo+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8u
-b3JnPg0KPj4+Pj4gLS0tDQo+Pj4+PiAgICAgZHJpdmVycy9paW8vcHJlc3N1cmUvc3RfcHJlc3N1
-cmVfY29yZS5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQo+Pj4+PiAg
-ICAgMSBmaWxlIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KPj4+
-Pj4NCj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9j
-b3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+IGlu
-ZGV4IGJlY2ZiMjUuLjdiYTkyOTkgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9kcml2ZXJzL2lpby9wcmVz
-c3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+ICsrKyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJl
-L3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+Pj4gQEAgLTU4LDE2ICs1OCwzOSBAQA0KPj4+Pj4gICAg
-ICNkZWZpbmUgU1RfUFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIJCTB4MjgNCj4+Pj4+ICAgICAj
-ZGVmaW5lIFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUgkJMHgyYg0KPj4+Pj4gICAgIA0KPj4+
-Pj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19jaGFubmVsc1td
-ID0gew0KPj4+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NVUkUsDQo+Pj4+
-PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNzX2xzcDMzMWFwX2No
-YW5uZWxzW10gPSB7DQo+Pj4+PiArCXsNCj4+Pj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJFLA0K
-Pj4+Pj4gKwkJLmNoYW5uZWwyID0gSUlPX05PX01PRCwNCj4+Pj4+ICsJCS5hZGRyZXNzID0gU1Rf
-UFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIsDQo+Pj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NF
-TlNPUlNfU0NBTl9YLA0KPj4+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+Pj4+ICsJCQkuc2lnbiA9
-ICd1JywNCj4+Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+Pj4+ICsJCQkuc3RvcmFnZWJpdHMg
-PSAyNCwNCj4+Pj4+ICsJCQkuZW5kaWFubmVzcyA9IElJT19MRSwNCj4+Pj4+ICsJCX0sDQo+Pj4+
-PiArCQkuaW5mb19tYXNrX3NlcGFyYXRlID0NCj4+Pj4+ICAgICAJCQlCSVQoSUlPX0NIQU5fSU5G
-T19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpLA0KPj4+Pj4gLQkJCVNUX1NFTlNPUlNf
-U0NBTl9YLCAwLCBJSU9fTk9fTU9ELCAndScsIElJT19MRSwgMjQsIDI0LA0KPj4+Pj4gLQkJCVNU
-X1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERSKSwNCj4+Pj4+IC0JU1RfU0VOU09SU19MU01fQ0hB
-Tk5FTFMoSUlPX1RFTVAsDQo+Pj4+PiAtCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJ
-SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiAtCQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZG
-U0VUKSwNCj4+Pj4+IC0JCQktMSwgMCwgSUlPX05PX01PRCwgJ3MnLCBJSU9fTEUsIDE2LCAxNiwN
-Cj4+Pj4+IC0JCQlTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIpLA0KPj4+Pj4gKwkJLm1vZGlm
-aWVkID0gMCwNCj4+Pj4+ICsJfSwNCj4+Pj4+ICsJew0KPj4+Pj4gKwkJLnR5cGUgPSBJSU9fVEVN
-UCwNCj4+Pj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4+PiArCQkuYWRkcmVzcyA9
-IFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUiwNCj4+Pj4+ICsJCS5zY2FuX2luZGV4ID0gLTEs
-DQo+Pj4+PiArCQkuc2Nhbl90eXBlID0gew0KPj4+Pj4gKwkJCS5zaWduID0gJ3UnLA0KPj4+Pj4g
-KwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+Pj4gKwkJCS5zdG9yYWdlYml0cyA9IDE2LA0KPj4+Pj4g
-KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+Pj4gKwkJfSwNCj4+Pj4+ICsJCS5pbmZvX21h
-c2tfc2VwYXJhdGUgPQ0KPj4+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX1JBVykgfA0KPj4+Pj4g
-KwkJCUJJVChJSU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiArCQkJQklUKElJT19DSEFOX0lO
-Rk9fT0ZGU0VUKSwNCj4+Pj4+ICsJCS5tb2RpZmllZCA9IDAsDQo+Pj4+PiArCX0sDQo+Pj4+PiAg
-ICAgCUlJT19DSEFOX1NPRlRfVElNRVNUQU1QKDEpDQo+Pj4+PiAgICAgfTsNCj4+Pj4+ICAgICAN
-Cj4+Pj4+IEBAIC03Nyw3ICsxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0X3NlbnNvcnMg
-c3RfcHJlc3Nfc2Vuc29yc1tdID0gew0KPj4+Pj4gICAgIAkJLnNlbnNvcnNfc3VwcG9ydGVkID0g
-ew0KPj4+Pj4gICAgIAkJCVswXSA9IExQUzMzMUFQX1BSRVNTX0RFVl9OQU1FLA0KPj4+Pj4gICAg
-IAkJfSwNCj4+Pj4+IC0JCS5jaCA9IChzdHJ1Y3QgaWlvX2NoYW5fc3BlYyAqKXN0X3ByZXNzX2No
-YW5uZWxzLA0KPj4+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hhbl9zcGVjICopc3RfcHJlc3Nf
-bHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4+PiAgICAgCQkub2RyID0gew0KPj4+Pj4gICAgIAkJCS5h
-ZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4+PiAgICAgCQkJLm1hc2sgPSBT
-VF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+Pj4+IEBAIC0yMTQsNyArMjM3LDcgQEAgaW50
-IHN0X3ByZXNzX2NvbW1vbl9wcm9iZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPj4+Pj4g
-ICAgIAlwZGF0YS0+bnVtX2RhdGFfY2hhbm5lbHMgPSBTVF9QUkVTU19OVU1CRVJfREFUQV9DSEFO
-TkVMUzsNCj4+Pj4+ICAgICAJcGRhdGEtPm11bHRpcmVhZF9iaXQgPSBwZGF0YS0+c2Vuc29yLT5t
-dWx0aV9yZWFkX2JpdDsNCj4+Pj4+ICAgICAJaW5kaW9fZGV2LT5jaGFubmVscyA9IHBkYXRhLT5z
-ZW5zb3ItPmNoOw0KPj4+Pj4gLQlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJWkUo
-c3RfcHJlc3NfY2hhbm5lbHMpOw0KPj4+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFS
-UkFZX1NJWkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+Pj4gICAgIA0KPj4+Pj4g
-ICAgIAlwZGF0YS0+Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2Nh
-bGVfYXZsICopDQo+Pj4+PiAgICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsN
-Cg==
+Lee, I got your point. For me is ok...
+
+Denis
+> On Thu, 05 Sep 2013, Denis CIOCCA wrote:
+>
+>>>>> 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.
+> Ah yes I see what you mean. Well as you say, for the moment, as
+> they're separated, this naming convention seems the most
+> appropriate. If we add anymore devices which share the definition, we
+> can pick the best naming convention for the situation I think. For
+> instance, I like that you've split the channels up into the number of
+> bits they support in the gyro and accel cases, so something of that
+> nature could be utilised if other device support is added.
+>
+>> 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.
+> If you are familiar with the macro I guess you could get used to
+> working with it, but coming from in as a first time reader, adding a
+> new device was pretty difficult. I had to look up the macro in the
+> header file, then have the original struct open too and cross
+> reference in 3 different places. It's made even more difficult by the
+> macro being in a different order to the original struct.
+>
+> Now I've had time to work with it, I could probably work with it as
+> well. I was just thinking about helping out any new person that comes
+> along and tries to add support for a new sensor.
+>
+>>>>> 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 950e1b3..442ee48 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -16,103 +16,124 @@
  " linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
- "TGVlLCBJIGdvdCB5b3VyIHBvaW50LiBGb3IgbWUgaXMgb2suLi4NCg0KRGVuaXMNCj4gT24gVGh1\n"
- "LCAwNSBTZXAgMjAxMywgRGVuaXMgQ0lPQ0NBIHdyb3RlOg0KPg0KPj4+Pj4gRHVlIHRvIHRoZSBN\n"
- "QUNSTyB1c2VkLCB0aGUgdGFzayBvZiByZWFkaW5nLCB1bmRlcnN0YW5kaW5nIGFuZCBtYWludGFp\n"
- "bmluZw0KPj4+Pj4gdGhlIExQUzMzMUFQJ3MgY2hhbm5lbCBkZXNjcmlwdG9yIGlzIHN1YnN0YW50\n"
- "aWFsbHkgZGlmZmljdWx0LiBUaGlzIHBhdGNoDQo+Pj4+PiBpcyBiYXNlZCBvbiB0aGUgdmlldyB0\n"
- "aGF0IGl0J3MgYmV0dGVyIHRvIGhhdmUgZWFzeSB0byByZWFkLCBtYWludGFpbmFibGUNCj4+Pj4+\n"
- "IGNvZGUgdGhhbiB0byBzYXZlIGEgZmV3IGxpbmVzIGhlcmUgYW5kIHRoZXJlLiBGb3IgdGhhdCBy\n"
- "ZWFzb24gd2UncmUNCj4+Pj4+IGV4cGFuZGluZyB0aGUgYXJyYXkgc28gaW5pdGlhbGlzYXRpb24g\n"
- "aXMgY29tcGxldGVkIGluIGZ1bGwuDQo+Pj4+IEFsc28gZm9yIHRoaXMgb25lLCB0aGUgY2hhbm5l\n"
- "bCBuYW1lcyBhcmUgZ2VuZXJhbCBhbmQgY2FuIGJlIHNoYXJlZA0KPj4+PiBiZXR3ZWVuIGRpZmZl\n"
- "cmVudCBzZW5zb3JzLiBGb3IgdGhlIGNoYW5uZWwgZGVmaW5pdGlvbiBpdCdzIG5vdCBhIHByb2Js\n"
- "ZW0NCj4+Pj4gZm9yIG1lLCBidXQgSSB0aGluayBpdCdzIG5vdCBuZWNlc3NhcnkgYWRkcyBhbGwg\n"
- "dGhhdCBjb2RlLi4uDQo+Pj4gSSdtIG5vdCBzdXJlIHdoYXQgeW91IG1lYW4gYnkgdGhpcy4gV291\n"
- "bGQgeW91IGJlIGtpbmQgZW5vdWdoIHRvDQo+Pj4gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3\n"
- "YXkgcGxlYXNlPw0KPj4gVGhlIGNoYW5uZWwgbmFtZSAoaW4gdGhpcyBjYXNlIHN0X3ByZXNzX2No\n"
- "YW5uZWxzKSBpcyBub3Qgb25seSBzcGVjaWZpYw0KPj4gZm9yIG9uZSBzZW5zb3IgYnV0IGNhbiBi\n"
- "ZSBzaGFyZWQuIE9rIGluIHRoaXMgZHJpdmVyIG5vdyBpcyB1c2VkIG9ubHkgZm9yDQo+PiB0aGUg\n"
- "bHBzMzMxYXAgYnV0IGZvciBleGFtcGxlIGluIGFjY2VsZXJvbWV0ZXIgZHJpdmVyIGlzIHVzZWQg\n"
- "Ynkgc2V2ZXJhbA0KPj4gc2Vuc29ycy4gSXQncyBwb3NzaWJsZSBpbiB0aGUgZnV0dXJlIGZvciBu\n"
- "ZXcgcHJlc3N1cmUgc2Vuc29ycyB1c2UgdGhlDQo+PiBzYW1lIGNoYW5uZWxzIGRlZmluaXRpb24u\n"
- "DQo+IEFoIHllcyBJIHNlZSB3aGF0IHlvdSBtZWFuLiBXZWxsIGFzIHlvdSBzYXksIGZvciB0aGUg\n"
- "bW9tZW50LCBhcw0KPiB0aGV5J3JlIHNlcGFyYXRlZCwgdGhpcyBuYW1pbmcgY29udmVudGlvbiBz\n"
- "ZWVtcyB0aGUgbW9zdA0KPiBhcHByb3ByaWF0ZS4gSWYgd2UgYWRkIGFueW1vcmUgZGV2aWNlcyB3\n"
- "aGljaCBzaGFyZSB0aGUgZGVmaW5pdGlvbiwgd2UNCj4gY2FuIHBpY2sgdGhlIGJlc3QgbmFtaW5n\n"
- "IGNvbnZlbnRpb24gZm9yIHRoZSBzaXR1YXRpb24gSSB0aGluay4gRm9yDQo+IGluc3RhbmNlLCBJ\n"
- "IGxpa2UgdGhhdCB5b3UndmUgc3BsaXQgdGhlIGNoYW5uZWxzIHVwIGludG8gdGhlIG51bWJlciBv\n"
- "Zg0KPiBiaXRzIHRoZXkgc3VwcG9ydCBpbiB0aGUgZ3lybyBhbmQgYWNjZWwgY2FzZXMsIHNvIHNv\n"
- "bWV0aGluZyBvZiB0aGF0DQo+IG5hdHVyZSBjb3VsZCBiZSB1dGlsaXNlZCBpZiBvdGhlciBkZXZp\n"
- "Y2Ugc3VwcG9ydCBpcyBhZGRlZC4NCj4NCj4+IFRoZSBjaGFubmVsIGRlZmluaXRpb24gaXMgaW50\n"
- "ZW5kZWQgdGhlIHN3aXRjaCBieSBtYWNybw0KPj4gU1RfU0VOU09SU19MU01fQ0hBTk5FTFMgdG8g\n"
- "dGhlIGZ1bGwgZGVmaW5pdGlvbiwgZm9yIG1lIGlzIG5vdCBhIHByb2JsZW0NCj4+IGJ1dCBJIHRo\n"
- "aW5rIGl0J3Mgbm90IG5lY2Vzc2FyeS4NCj4gSWYgeW91IGFyZSBmYW1pbGlhciB3aXRoIHRoZSBt\n"
- "YWNybyBJIGd1ZXNzIHlvdSBjb3VsZCBnZXQgdXNlZCB0bw0KPiB3b3JraW5nIHdpdGggaXQsIGJ1\n"
- "dCBjb21pbmcgZnJvbSBpbiBhcyBhIGZpcnN0IHRpbWUgcmVhZGVyLCBhZGRpbmcgYQ0KPiBuZXcg\n"
- "ZGV2aWNlIHdhcyBwcmV0dHkgZGlmZmljdWx0LiBJIGhhZCB0byBsb29rIHVwIHRoZSBtYWNybyBp\n"
- "biB0aGUNCj4gaGVhZGVyIGZpbGUsIHRoZW4gaGF2ZSB0aGUgb3JpZ2luYWwgc3RydWN0IG9wZW4g\n"
- "dG9vIGFuZCBjcm9zcw0KPiByZWZlcmVuY2UgaW4gMyBkaWZmZXJlbnQgcGxhY2VzLiBJdCdzIG1h\n"
- "ZGUgZXZlbiBtb3JlIGRpZmZpY3VsdCBieSB0aGUNCj4gbWFjcm8gYmVpbmcgaW4gYSBkaWZmZXJl\n"
- "bnQgb3JkZXIgdG8gdGhlIG9yaWdpbmFsIHN0cnVjdC4NCj4NCj4gTm93IEkndmUgaGFkIHRpbWUg\n"
- "dG8gd29yayB3aXRoIGl0LCBJIGNvdWxkIHByb2JhYmx5IHdvcmsgd2l0aCBpdCBhcw0KPiB3ZWxs\n"
- "LiBJIHdhcyBqdXN0IHRoaW5raW5nIGFib3V0IGhlbHBpbmcgb3V0IGFueSBuZXcgcGVyc29uIHRo\n"
- "YXQgY29tZXMNCj4gYWxvbmcgYW5kIHRyaWVzIHRvIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBzZW5z\n"
- "b3IuDQo+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8u\n"
- "b3JnPg0KPj4+Pj4gLS0tDQo+Pj4+PiAgICAgZHJpdmVycy9paW8vcHJlc3N1cmUvc3RfcHJlc3N1\n"
- "cmVfY29yZS5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQo+Pj4+PiAg\n"
- "ICAgMSBmaWxlIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KPj4+\n"
- "Pj4NCj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9j\n"
- "b3JlLmMgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+IGlu\n"
- "ZGV4IGJlY2ZiMjUuLjdiYTkyOTkgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9kcml2ZXJzL2lpby9wcmVz\n"
- "c3VyZS9zdF9wcmVzc3VyZV9jb3JlLmMNCj4+Pj4+ICsrKyBiL2RyaXZlcnMvaWlvL3ByZXNzdXJl\n"
- "L3N0X3ByZXNzdXJlX2NvcmUuYw0KPj4+Pj4gQEAgLTU4LDE2ICs1OCwzOSBAQA0KPj4+Pj4gICAg\n"
- "ICNkZWZpbmUgU1RfUFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIJCTB4MjgNCj4+Pj4+ICAgICAj\n"
- "ZGVmaW5lIFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUgkJMHgyYg0KPj4+Pj4gICAgIA0KPj4+\n"
- "Pj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzdF9wcmVzc19jaGFubmVsc1td\n"
- "ID0gew0KPj4+Pj4gLQlTVF9TRU5TT1JTX0xTTV9DSEFOTkVMUyhJSU9fUFJFU1NVUkUsDQo+Pj4+\n"
- "PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpaW9fY2hhbl9zcGVjIHN0X3ByZXNzX2xzcDMzMWFwX2No\n"
- "YW5uZWxzW10gPSB7DQo+Pj4+PiArCXsNCj4+Pj4+ICsJCS50eXBlID0gSUlPX1BSRVNTVVJFLA0K\n"
- "Pj4+Pj4gKwkJLmNoYW5uZWwyID0gSUlPX05PX01PRCwNCj4+Pj4+ICsJCS5hZGRyZXNzID0gU1Rf\n"
- "UFJFU1NfTFBTMzMxQVBfT1VUX1hMX0FERFIsDQo+Pj4+PiArCQkuc2Nhbl9pbmRleCA9IFNUX1NF\n"
- "TlNPUlNfU0NBTl9YLA0KPj4+Pj4gKwkJLnNjYW5fdHlwZSA9IHsNCj4+Pj4+ICsJCQkuc2lnbiA9\n"
- "ICd1JywNCj4+Pj4+ICsJCQkucmVhbGJpdHMgPSAyNCwNCj4+Pj4+ICsJCQkuc3RvcmFnZWJpdHMg\n"
- "PSAyNCwNCj4+Pj4+ICsJCQkuZW5kaWFubmVzcyA9IElJT19MRSwNCj4+Pj4+ICsJCX0sDQo+Pj4+\n"
- "PiArCQkuaW5mb19tYXNrX3NlcGFyYXRlID0NCj4+Pj4+ICAgICAJCQlCSVQoSUlPX0NIQU5fSU5G\n"
- "T19SQVcpIHwgQklUKElJT19DSEFOX0lORk9fU0NBTEUpLA0KPj4+Pj4gLQkJCVNUX1NFTlNPUlNf\n"
- "U0NBTl9YLCAwLCBJSU9fTk9fTU9ELCAndScsIElJT19MRSwgMjQsIDI0LA0KPj4+Pj4gLQkJCVNU\n"
- "X1BSRVNTX0xQUzMzMUFQX09VVF9YTF9BRERSKSwNCj4+Pj4+IC0JU1RfU0VOU09SU19MU01fQ0hB\n"
- "Tk5FTFMoSUlPX1RFTVAsDQo+Pj4+PiAtCQkJQklUKElJT19DSEFOX0lORk9fUkFXKSB8IEJJVChJ\n"
- "SU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiAtCQkJCQkJQklUKElJT19DSEFOX0lORk9fT0ZG\n"
- "U0VUKSwNCj4+Pj4+IC0JCQktMSwgMCwgSUlPX05PX01PRCwgJ3MnLCBJSU9fTEUsIDE2LCAxNiwN\n"
- "Cj4+Pj4+IC0JCQlTVF9URU1QX0xQUzMzMUFQX09VVF9MX0FERFIpLA0KPj4+Pj4gKwkJLm1vZGlm\n"
- "aWVkID0gMCwNCj4+Pj4+ICsJfSwNCj4+Pj4+ICsJew0KPj4+Pj4gKwkJLnR5cGUgPSBJSU9fVEVN\n"
- "UCwNCj4+Pj4+ICsJCS5jaGFubmVsMiA9IElJT19OT19NT0QsDQo+Pj4+PiArCQkuYWRkcmVzcyA9\n"
- "IFNUX1RFTVBfTFBTMzMxQVBfT1VUX0xfQUREUiwNCj4+Pj4+ICsJCS5zY2FuX2luZGV4ID0gLTEs\n"
- "DQo+Pj4+PiArCQkuc2Nhbl90eXBlID0gew0KPj4+Pj4gKwkJCS5zaWduID0gJ3UnLA0KPj4+Pj4g\n"
- "KwkJCS5yZWFsYml0cyA9IDE2LA0KPj4+Pj4gKwkJCS5zdG9yYWdlYml0cyA9IDE2LA0KPj4+Pj4g\n"
- "KwkJCS5lbmRpYW5uZXNzID0gSUlPX0xFLA0KPj4+Pj4gKwkJfSwNCj4+Pj4+ICsJCS5pbmZvX21h\n"
- "c2tfc2VwYXJhdGUgPQ0KPj4+Pj4gKwkJCUJJVChJSU9fQ0hBTl9JTkZPX1JBVykgfA0KPj4+Pj4g\n"
- "KwkJCUJJVChJSU9fQ0hBTl9JTkZPX1NDQUxFKSB8DQo+Pj4+PiArCQkJQklUKElJT19DSEFOX0lO\n"
- "Rk9fT0ZGU0VUKSwNCj4+Pj4+ICsJCS5tb2RpZmllZCA9IDAsDQo+Pj4+PiArCX0sDQo+Pj4+PiAg\n"
- "ICAgCUlJT19DSEFOX1NPRlRfVElNRVNUQU1QKDEpDQo+Pj4+PiAgICAgfTsNCj4+Pj4+ICAgICAN\n"
- "Cj4+Pj4+IEBAIC03Nyw3ICsxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0X3NlbnNvcnMg\n"
- "c3RfcHJlc3Nfc2Vuc29yc1tdID0gew0KPj4+Pj4gICAgIAkJLnNlbnNvcnNfc3VwcG9ydGVkID0g\n"
- "ew0KPj4+Pj4gICAgIAkJCVswXSA9IExQUzMzMUFQX1BSRVNTX0RFVl9OQU1FLA0KPj4+Pj4gICAg\n"
- "IAkJfSwNCj4+Pj4+IC0JCS5jaCA9IChzdHJ1Y3QgaWlvX2NoYW5fc3BlYyAqKXN0X3ByZXNzX2No\n"
- "YW5uZWxzLA0KPj4+Pj4gKwkJLmNoID0gKHN0cnVjdCBpaW9fY2hhbl9zcGVjICopc3RfcHJlc3Nf\n"
- "bHNwMzMxYXBfY2hhbm5lbHMsDQo+Pj4+PiAgICAgCQkub2RyID0gew0KPj4+Pj4gICAgIAkJCS5h\n"
- "ZGRyID0gU1RfUFJFU1NfTFBTMzMxQVBfT0RSX0FERFIsDQo+Pj4+PiAgICAgCQkJLm1hc2sgPSBT\n"
- "VF9QUkVTU19MUFMzMzFBUF9PRFJfTUFTSywNCj4+Pj4+IEBAIC0yMTQsNyArMjM3LDcgQEAgaW50\n"
- "IHN0X3ByZXNzX2NvbW1vbl9wcm9iZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPj4+Pj4g\n"
- "ICAgIAlwZGF0YS0+bnVtX2RhdGFfY2hhbm5lbHMgPSBTVF9QUkVTU19OVU1CRVJfREFUQV9DSEFO\n"
- "TkVMUzsNCj4+Pj4+ICAgICAJcGRhdGEtPm11bHRpcmVhZF9iaXQgPSBwZGF0YS0+c2Vuc29yLT5t\n"
- "dWx0aV9yZWFkX2JpdDsNCj4+Pj4+ICAgICAJaW5kaW9fZGV2LT5jaGFubmVscyA9IHBkYXRhLT5z\n"
- "ZW5zb3ItPmNoOw0KPj4+Pj4gLQlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFSUkFZX1NJWkUo\n"
- "c3RfcHJlc3NfY2hhbm5lbHMpOw0KPj4+Pj4gKwlpbmRpb19kZXYtPm51bV9jaGFubmVscyA9IEFS\n"
- "UkFZX1NJWkUoc3RfcHJlc3NfbHNwMzMxYXBfY2hhbm5lbHMpOw0KPj4+Pj4gICAgIA0KPj4+Pj4g\n"
- "ICAgIAlwZGF0YS0+Y3VycmVudF9mdWxsc2NhbGUgPSAoc3RydWN0IHN0X3NlbnNvcl9mdWxsc2Nh\n"
- "bGVfYXZsICopDQo+Pj4+PiAgICAgCQkJCQkJJnBkYXRhLT5zZW5zb3ItPmZzLmZzX2F2bFswXTsN\n"
- Cg==
+ "Lee, I got your point. For me is ok...\n"
+ "\n"
+ "Denis\n"
+ "> On Thu, 05 Sep 2013, Denis CIOCCA wrote:\n"
+ ">\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"
+ "> Ah yes I see what you mean. Well as you say, for the moment, as\n"
+ "> they're separated, this naming convention seems the most\n"
+ "> appropriate. If we add anymore devices which share the definition, we\n"
+ "> can pick the best naming convention for the situation I think. For\n"
+ "> instance, I like that you've split the channels up into the number of\n"
+ "> bits they support in the gyro and accel cases, so something of that\n"
+ "> nature could be utilised if other device support is added.\n"
+ ">\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"
+ "> If you are familiar with the macro I guess you could get used to\n"
+ "> working with it, but coming from in as a first time reader, adding a\n"
+ "> new device was pretty difficult. I had to look up the macro in the\n"
+ "> header file, then have the original struct open too and cross\n"
+ "> reference in 3 different places. It's made even more difficult by the\n"
+ "> macro being in a different order to the original struct.\n"
+ ">\n"
+ "> Now I've had time to work with it, I could probably work with it as\n"
+ "> well. I was just thinking about helping out any new person that comes\n"
+ "> along and tries to add support for a new sensor.\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"
 
-6a48c429c43ca771cac51ee88cad8464b0885484b4e35464acc7ac4247dc1c81
+994d8697a384386d8eb5d523d81def9b11864231b9cc635a6315df8c07e0f4da

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.