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