diff for duplicates of <52A7BFA4.2080402@roeck-us.net> diff --git a/a/1.txt b/N1/1.txt index dfbbc21..f2d4374 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,41 +1,69 @@ -T24gMTIvMTAvMjAxMyAwNDo1NyBQTSwgSm9zw6kgTWlndWVsIEdvbsOnYWx2ZXMgd3JvdGU6Cj4g -U29tZSBJMkMgYnVzIGRyaXZlcnMgZG8gbm90IGFsbG93IHplcm8tbGVuZ2h0IGRhdGEgdHJhbnNm -ZXJzIHdoaWNoIGFyZQoKcy9sZW5naHQvbGVuZ3RoLwoKPiByZXF1aXJlZCB0byBzdGFydCBhIG1l -c3VyZW1lbnQgd2l0aCB0aGUgSElINjEzMC8xIHNlbnNvci4gTmV2ZXJ0aGVsZXNzLAoKcy9tZXN1 -cmVtZW50L21lYXN1cmVtZW50LwoKPiB3ZSBjYW4gb3ZlcmNvbWUgdGhpcyBsaW1pdGF0aW9uIGJ5 -IHdyaXRpbmcgYSB6ZXJvIGR1bW15IGJ5dGUuIFRoaXMgYnl0ZQo+IGlzIGlnbm9yZWQgYnkgdGhl -IHNlbnNvciBhbmQgd2FzIHZlcmlmaWVkIHRvIGJlIHdvcmtpbmcgd2l0aCB0aGUgT01BUAo+IEky -QyBidXMgZHJpdmVyIGluIGEgQmVhZ2xlQm9uZSBib2FyZC4KPgo+IFNpZ25lZC1vZmYtYnk6IEpv -c8OpIE1pZ3VlbCBHb27Dp2FsdmVzIDxqb3NlLmdvbmNhbHZlc0Bpbm92LnB0Pgo+IC0tLQo+ICAg -ZHJpdmVycy9od21vbi9oaWg2MTMwLmMgfCAgIDE2ICsrKysrKysrKysrKysrLS0KPiAgIDEgZmls -ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp -dCBhL2RyaXZlcnMvaHdtb24vaGloNjEzMC5jIGIvZHJpdmVycy9od21vbi9oaWg2MTMwLmMKPiBp -bmRleCAyZGMzN2M3Li5hODYwY2M0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaHdtb24vaGloNjEz -MC5jCj4gKysrIGIvZHJpdmVycy9od21vbi9oaWg2MTMwLmMKPiBAQCAtMTIxLDggKzEyMSwyMCBA -QCBzdGF0aWMgaW50IGhpaDYxMzBfdXBkYXRlX21lYXN1cmVtZW50cyhzdHJ1Y3QgaTJjX2NsaWVu -dCAqY2xpZW50KQo+ICAgCSAqLwo+ICAgCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGhpaDYxMzAt -Pmxhc3RfdXBkYXRlICsgSFopIHx8ICFoaWg2MTMwLT52YWxpZCkgewo+Cj4gLQkJLyogd3JpdGUg -dG8gc2xhdmUgYWRkcmVzcywgbm8gZGF0YSwgdG8gcmVxdWVzdCBhIG1lYXN1cmVtZW50ICovCj4g -LQkJcmV0ID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgdG1wLCAwKTsKPiArCQkvKgo+ICsJCSAq -IFdyaXRlIHRvIHNsYXZlIGFkZHJlc3MsIHRvIHJlcXVlc3QgYSBtZWFzdXJlbWVudC4KCnMvLC8v -Cgo+ICsJCSAqIEFjY29yZGluZyB3aXRoIHRoZSBkYXRhc2hlZXQgaXQgc2hvdWxkIGJlIHdpdGgg -bm8gZGF0YSwgYnV0Cj4gKwkJICogZm9yIHN5c3RlbXMgd2l0aCBJMkMgYnVzIGRyaXZlcnMgdGhh -dCBkbyBub3QgYWxsb3cgemVybwo+ICsJCSAqIGxlbmd0aCBwYWNrZXRzIHdlIHdyaXRlIG9uZSBk -dW1teSBieXRlIHRvIGFsbG93IHNlbnNvcgo+ICsJCSAqIG1lYXN1cmVtZW50cyBvbiB0aGVtLgo+ -ICsJCSAqLwo+ICsJCWlmIChpMmNfZ2V0X2Z1bmN0aW9uYWxpdHkoY2xpZW50LT5hZGFwdGVyKSAm -Cj4gKwkJICAgIEkyQ19GVU5DX1NNQlVTX1FVSUNLKSB7Cj4gKwkJCXJldCA9IGkyY19tYXN0ZXJf -c2VuZChjbGllbnQsIHRtcCwgMCk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJdG1wWzBdID0gMDsKPiAr -CQkJcmV0ID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgdG1wLCAxKTsKPiArCQl9CgpZb3UgY2Fu -IHNpbXBsaWZ5IHRoaXMgY29kZSBieSBpbnRyb2R1Y2luZyBhIHZhcmlhYmxlIHRvIGhvbGQKdGhl -IHdyaXRlIGxlbmd0aCBpbnRvIHN0cnVjdCBoaWg2MTMwLiBUaGlzIHZhcmlhYmxlIGNhbiBiZQpp -bml0aWFsaXplZCB3aXRoIDEgb3IgMCBpbiB0aGUgcHJvYmUgZnVuY3Rpb24uCgoJaWYgKGkyY19j -aGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwgSTJDX0ZVTkNfU01CVVNfUVVJQ0sp -KQoJCWhpaDYxMzAtPndyaXRlX2xlbmd0aCA9IDA7CgllbHNlCgkJaGloNjEzMC0+d3JpdGVfbGVu -Z3RoID0gMTsKClRoZW4gcmVwbGFjZSBhYm92ZSBjb2RlIHdpdGgKCgl0bXBbMF0gPSAwOwoJcmV0 -ID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgdG1wLCBoaWg2MTMwLT53cml0ZV9sZW5ndGgpOwoK -VGhpcyB3YXkgeW91IGRvbid0IGhhdmUgdG8gY2FsbCBpMmNfe2dldCxjaGVja31fZnVuY3Rpb25h -bGl0eSgpIHJlcGVhdGVkbHkuCgpUaGFua3MsCkd1ZW50ZXIKCQo+ICAgCQlpZiAocmV0IDwgMCkK -PiAgIAkJCWdvdG8gb3V0Owo+Cj4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f -X19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNv -cnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNl -bnNvcnM +On 12/10/2013 04:57 PM, José Miguel Gonçalves wrote: +> Some I2C bus drivers do not allow zero-lenght data transfers which are + +s/lenght/length/ + +> required to start a mesurement with the HIH6130/1 sensor. Nevertheless, + +s/mesurement/measurement/ + +> we can overcome this limitation by writing a zero dummy byte. This byte +> is ignored by the sensor and was verified to be working with the OMAP +> I2C bus driver in a BeagleBone board. +> +> Signed-off-by: José Miguel Gonçalves <jose.goncalves@inov.pt> +> --- +> drivers/hwmon/hih6130.c | 16 ++++++++++++++-- +> 1 file changed, 14 insertions(+), 2 deletions(-) +> +> diff --git a/drivers/hwmon/hih6130.c b/drivers/hwmon/hih6130.c +> index 2dc37c7..a860cc4 100644 +> --- a/drivers/hwmon/hih6130.c +> +++ b/drivers/hwmon/hih6130.c +> @@ -121,8 +121,20 @@ static int hih6130_update_measurements(struct i2c_client *client) +> */ +> if (time_after(jiffies, hih6130->last_update + HZ) || !hih6130->valid) { +> +> - /* write to slave address, no data, to request a measurement */ +> - ret = i2c_master_send(client, tmp, 0); +> + /* +> + * Write to slave address, to request a measurement. + +s/,// + +> + * According with the datasheet it should be with no data, but +> + * for systems with I2C bus drivers that do not allow zero +> + * length packets we write one dummy byte to allow sensor +> + * measurements on them. +> + */ +> + if (i2c_get_functionality(client->adapter) & +> + I2C_FUNC_SMBUS_QUICK) { +> + ret = i2c_master_send(client, tmp, 0); +> + } else { +> + tmp[0] = 0; +> + ret = i2c_master_send(client, tmp, 1); +> + } + +You can simplify this code by introducing a variable to hold +the write length into struct hih6130. This variable can be +initialized with 1 or 0 in the probe function. + + if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_QUICK)) + hih6130->write_length = 0; + else + hih6130->write_length = 1; + +Then replace above code with + + tmp[0] = 0; + ret = i2c_master_send(client, tmp, hih6130->write_length); + +This way you don't have to call i2c_{get,check}_functionality() repeatedly. + +Thanks, +Guenter + +> if (ret < 0) +> goto out; +> +> diff --git a/a/content_digest b/N1/content_digest index baf3025..33a7bd4 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,7 +1,7 @@ "ref\01386723462-21388-1-git-send-email-jose.goncalves@inov.pt\0" "From\0Guenter Roeck <linux@roeck-us.net>\0" "Subject\0Re: [lm-sensors] [PATCH] hwmon: HIH-6130: Support I2C bus drivers without I2C_FUNC_SMBUS_QUICK\0" - "Date\0Wed, 11 Dec 2013 01:28:04 +0000\0" + "Date\0Tue, 10 Dec 2013 17:28:04 -0800\0" "To\0Jos\303\251 Miguel Gon\303\247alves <jose.goncalves@inov.pt>" Jean Delvare <khali@linux-fr.org> Guenter Roeck <guenter.roeck@ericsson.com> @@ -9,46 +9,74 @@ " linux-kernel@vger.kernel.org\0" "\00:1\0" "b\0" - "T24gMTIvMTAvMjAxMyAwNDo1NyBQTSwgSm9zw6kgTWlndWVsIEdvbsOnYWx2ZXMgd3JvdGU6Cj4g\n" - "U29tZSBJMkMgYnVzIGRyaXZlcnMgZG8gbm90IGFsbG93IHplcm8tbGVuZ2h0IGRhdGEgdHJhbnNm\n" - "ZXJzIHdoaWNoIGFyZQoKcy9sZW5naHQvbGVuZ3RoLwoKPiByZXF1aXJlZCB0byBzdGFydCBhIG1l\n" - "c3VyZW1lbnQgd2l0aCB0aGUgSElINjEzMC8xIHNlbnNvci4gTmV2ZXJ0aGVsZXNzLAoKcy9tZXN1\n" - "cmVtZW50L21lYXN1cmVtZW50LwoKPiB3ZSBjYW4gb3ZlcmNvbWUgdGhpcyBsaW1pdGF0aW9uIGJ5\n" - "IHdyaXRpbmcgYSB6ZXJvIGR1bW15IGJ5dGUuIFRoaXMgYnl0ZQo+IGlzIGlnbm9yZWQgYnkgdGhl\n" - "IHNlbnNvciBhbmQgd2FzIHZlcmlmaWVkIHRvIGJlIHdvcmtpbmcgd2l0aCB0aGUgT01BUAo+IEky\n" - "QyBidXMgZHJpdmVyIGluIGEgQmVhZ2xlQm9uZSBib2FyZC4KPgo+IFNpZ25lZC1vZmYtYnk6IEpv\n" - "c8OpIE1pZ3VlbCBHb27Dp2FsdmVzIDxqb3NlLmdvbmNhbHZlc0Bpbm92LnB0Pgo+IC0tLQo+ICAg\n" - "ZHJpdmVycy9od21vbi9oaWg2MTMwLmMgfCAgIDE2ICsrKysrKysrKysrKysrLS0KPiAgIDEgZmls\n" - "ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp\n" - "dCBhL2RyaXZlcnMvaHdtb24vaGloNjEzMC5jIGIvZHJpdmVycy9od21vbi9oaWg2MTMwLmMKPiBp\n" - "bmRleCAyZGMzN2M3Li5hODYwY2M0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaHdtb24vaGloNjEz\n" - "MC5jCj4gKysrIGIvZHJpdmVycy9od21vbi9oaWg2MTMwLmMKPiBAQCAtMTIxLDggKzEyMSwyMCBA\n" - "QCBzdGF0aWMgaW50IGhpaDYxMzBfdXBkYXRlX21lYXN1cmVtZW50cyhzdHJ1Y3QgaTJjX2NsaWVu\n" - "dCAqY2xpZW50KQo+ICAgCSAqLwo+ICAgCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGhpaDYxMzAt\n" - "Pmxhc3RfdXBkYXRlICsgSFopIHx8ICFoaWg2MTMwLT52YWxpZCkgewo+Cj4gLQkJLyogd3JpdGUg\n" - "dG8gc2xhdmUgYWRkcmVzcywgbm8gZGF0YSwgdG8gcmVxdWVzdCBhIG1lYXN1cmVtZW50ICovCj4g\n" - "LQkJcmV0ID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgdG1wLCAwKTsKPiArCQkvKgo+ICsJCSAq\n" - "IFdyaXRlIHRvIHNsYXZlIGFkZHJlc3MsIHRvIHJlcXVlc3QgYSBtZWFzdXJlbWVudC4KCnMvLC8v\n" - "Cgo+ICsJCSAqIEFjY29yZGluZyB3aXRoIHRoZSBkYXRhc2hlZXQgaXQgc2hvdWxkIGJlIHdpdGgg\n" - "bm8gZGF0YSwgYnV0Cj4gKwkJICogZm9yIHN5c3RlbXMgd2l0aCBJMkMgYnVzIGRyaXZlcnMgdGhh\n" - "dCBkbyBub3QgYWxsb3cgemVybwo+ICsJCSAqIGxlbmd0aCBwYWNrZXRzIHdlIHdyaXRlIG9uZSBk\n" - "dW1teSBieXRlIHRvIGFsbG93IHNlbnNvcgo+ICsJCSAqIG1lYXN1cmVtZW50cyBvbiB0aGVtLgo+\n" - "ICsJCSAqLwo+ICsJCWlmIChpMmNfZ2V0X2Z1bmN0aW9uYWxpdHkoY2xpZW50LT5hZGFwdGVyKSAm\n" - "Cj4gKwkJICAgIEkyQ19GVU5DX1NNQlVTX1FVSUNLKSB7Cj4gKwkJCXJldCA9IGkyY19tYXN0ZXJf\n" - "c2VuZChjbGllbnQsIHRtcCwgMCk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJdG1wWzBdID0gMDsKPiAr\n" - "CQkJcmV0ID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgdG1wLCAxKTsKPiArCQl9CgpZb3UgY2Fu\n" - "IHNpbXBsaWZ5IHRoaXMgY29kZSBieSBpbnRyb2R1Y2luZyBhIHZhcmlhYmxlIHRvIGhvbGQKdGhl\n" - "IHdyaXRlIGxlbmd0aCBpbnRvIHN0cnVjdCBoaWg2MTMwLiBUaGlzIHZhcmlhYmxlIGNhbiBiZQpp\n" - "bml0aWFsaXplZCB3aXRoIDEgb3IgMCBpbiB0aGUgcHJvYmUgZnVuY3Rpb24uCgoJaWYgKGkyY19j\n" - "aGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwgSTJDX0ZVTkNfU01CVVNfUVVJQ0sp\n" - "KQoJCWhpaDYxMzAtPndyaXRlX2xlbmd0aCA9IDA7CgllbHNlCgkJaGloNjEzMC0+d3JpdGVfbGVu\n" - "Z3RoID0gMTsKClRoZW4gcmVwbGFjZSBhYm92ZSBjb2RlIHdpdGgKCgl0bXBbMF0gPSAwOwoJcmV0\n" - "ID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgdG1wLCBoaWg2MTMwLT53cml0ZV9sZW5ndGgpOwoK\n" - "VGhpcyB3YXkgeW91IGRvbid0IGhhdmUgdG8gY2FsbCBpMmNfe2dldCxjaGVja31fZnVuY3Rpb25h\n" - "bGl0eSgpIHJlcGVhdGVkbHkuCgpUaGFua3MsCkd1ZW50ZXIKCQo+ICAgCQlpZiAocmV0IDwgMCkK\n" - "PiAgIAkJCWdvdG8gb3V0Owo+Cj4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n" - "X19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNv\n" - "cnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNl\n" - bnNvcnM + "On 12/10/2013 04:57 PM, Jos\303\251 Miguel Gon\303\247alves wrote:\n" + "> Some I2C bus drivers do not allow zero-lenght data transfers which are\n" + "\n" + "s/lenght/length/\n" + "\n" + "> required to start a mesurement with the HIH6130/1 sensor. Nevertheless,\n" + "\n" + "s/mesurement/measurement/\n" + "\n" + "> we can overcome this limitation by writing a zero dummy byte. This byte\n" + "> is ignored by the sensor and was verified to be working with the OMAP\n" + "> I2C bus driver in a BeagleBone board.\n" + ">\n" + "> Signed-off-by: Jos\303\251 Miguel Gon\303\247alves <jose.goncalves@inov.pt>\n" + "> ---\n" + "> drivers/hwmon/hih6130.c | 16 ++++++++++++++--\n" + "> 1 file changed, 14 insertions(+), 2 deletions(-)\n" + ">\n" + "> diff --git a/drivers/hwmon/hih6130.c b/drivers/hwmon/hih6130.c\n" + "> index 2dc37c7..a860cc4 100644\n" + "> --- a/drivers/hwmon/hih6130.c\n" + "> +++ b/drivers/hwmon/hih6130.c\n" + "> @@ -121,8 +121,20 @@ static int hih6130_update_measurements(struct i2c_client *client)\n" + "> \t */\n" + "> \tif (time_after(jiffies, hih6130->last_update + HZ) || !hih6130->valid) {\n" + ">\n" + "> -\t\t/* write to slave address, no data, to request a measurement */\n" + "> -\t\tret = i2c_master_send(client, tmp, 0);\n" + "> +\t\t/*\n" + "> +\t\t * Write to slave address, to request a measurement.\n" + "\n" + "s/,//\n" + "\n" + "> +\t\t * According with the datasheet it should be with no data, but\n" + "> +\t\t * for systems with I2C bus drivers that do not allow zero\n" + "> +\t\t * length packets we write one dummy byte to allow sensor\n" + "> +\t\t * measurements on them.\n" + "> +\t\t */\n" + "> +\t\tif (i2c_get_functionality(client->adapter) &\n" + "> +\t\t I2C_FUNC_SMBUS_QUICK) {\n" + "> +\t\t\tret = i2c_master_send(client, tmp, 0);\n" + "> +\t\t} else {\n" + "> +\t\t\ttmp[0] = 0;\n" + "> +\t\t\tret = i2c_master_send(client, tmp, 1);\n" + "> +\t\t}\n" + "\n" + "You can simplify this code by introducing a variable to hold\n" + "the write length into struct hih6130. This variable can be\n" + "initialized with 1 or 0 in the probe function.\n" + "\n" + "\tif (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_QUICK))\n" + "\t\thih6130->write_length = 0;\n" + "\telse\n" + "\t\thih6130->write_length = 1;\n" + "\n" + "Then replace above code with\n" + "\n" + "\ttmp[0] = 0;\n" + "\tret = i2c_master_send(client, tmp, hih6130->write_length);\n" + "\n" + "This way you don't have to call i2c_{get,check}_functionality() repeatedly.\n" + "\n" + "Thanks,\n" + "Guenter\n" + "\t\n" + "> \t\tif (ret < 0)\n" + "> \t\t\tgoto out;\n" + ">\n" + > -8c18bcdb9959b55492fc273836f5eae69982974ab3715c1841461deb1cb9a924 +f2a0cac306cc479b9c9fed2771c63ae4a4c67ccb2eb71fb8683864ea9856728e
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.