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.