All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20140213095817.GD32508@lee--X1>

diff --git a/a/1.txt b/N1/1.txt
index 3ff72f6..378350e 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,61 +1,101 @@
-PiBUaGUgTUZEIGRyaXZlciBoYXMgbm93IGJlZW4gYWRkZWQsIHNvIHRoaXMgZHJpdmVyIGlzIG5v
-dyBiZWluZyBhZG9wdGVkIHRvIGJlIGEKPiBzdWJkZXZpY2UgZHJpdmVyIG9uIHRvcCBvZiBpdC4g
-VGhpcyBtZWFucywgdGhlIGkyYyBkcml2ZXIgdXNhZ2UgaXMgYmVpbmcKPiBjb252ZXJ0ZWQgdG8g
-cGxhdGZvcm0gZHJpdmVyIHVzYWdlIGFsbCBhcm91bmQuCj4gCj4gU2lnbmVkLW9mZi1ieTogTGFz
-emxvIFBhcHAgPGxwYXBwQGtkZS5vcmc+Cj4gLS0tCj4gVGhpcyBwYXRjaCBoYXMgYmVlbiBjb21w
-aWxlIHRlc3RlZCBvbmx5IGFuZCB3aWxsIGJlIHRlc3RlZCB3aXRoIHJlYWwgaGFyZHdhcmUsCj4g
-YnV0IGVhcmx5IHJldmlld3MgdG8gY2F0Y2ggYW55IHRyaXZpYWwgaXNzdWVzIHdvdWxkIGJlIHdl
-bGNvbWUuCj4gIGRyaXZlcnMvaHdtb24vS2NvbmZpZyAgIHwgICAyICstCj4gIGRyaXZlcnMvaHdt
-b24vbWF4NjY1MC5jIHwgMTU1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t
-LS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDc4IGRlbGV0
-aW9ucygtKQoKPHNuaXA+Cgo+ICAvKgo+ICAgKiBJbnNtb2QgcGFyYW1ldGVycwo+IEBAIC0xMDUs
-MjQgKzEwOCwyMyBAQCBtb2R1bGVfcGFyYW0oY2xvY2ssIGludCwgU19JUlVHTyk7Cj4gIAo+ICAj
-ZGVmaW5lIERJVl9GUk9NX1JFRyhyZWcpICgxIDw8IChyZWcgJiA3KSkKPiAgCj4gLXN0YXRpYyBp
-bnQgbWF4NjY1MF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+IC0JCQkgY29uc3Qg
-c3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKTsKPiAtc3RhdGljIGludCBtYXg2NjUwX2luaXRfY2xp
-ZW50KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpOwo+IC1zdGF0aWMgaW50IG1heDY2NTBfcmVt
-b3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpOwo+ICtzdGF0aWMgaW50IG1heDY2NTBfcHJv
-YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7Cj4gK3N0YXRpYyBpbnQgbWF4NjY1MF9p
-bml0X2NsaWVudChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKPiArc3RhdGljIGludCBt
-YXg2NjUwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKPiAgc3RhdGljIHN0
-cnVjdCBtYXg2NjUwX2RhdGEgKm1heDY2NTBfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpk
-ZXYpOwoKSXQgd291bGQgYmUgZ29vZCB0byByZW1vdmUgdGhlc2UgZm9yd2FyZCBkZWNsYXJhdGlv
-bnMgaW4gdGhlIGZ1dHVyZS4KCklmIG5vIG9uZSB2b2x1bnRlZXJzIEknbGwgaGFwcGlseSBkbyBp
-dC4KCj4gIC8qCj4gICAqIERyaXZlciBkYXRhIChjb21tb24gdG8gYWxsIGNsaWVudHMpCj4gICAq
-Lwo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIG1heDY2NTBfaWRbXSA9
-IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgbWF4NjY1MF9pZFtd
-ID0gewo+ICAJeyAibWF4NjY1MCIsIDEgfSwKPiAgCXsgIm1heDY2NTEiLCA0IH0sCj4gIAl7IH0K
-PiAgfTsKPiAtTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIG1heDY2NTBfaWQpOwo+ICtNT0RVTEVf
-REVWSUNFX1RBQkxFKHBsYXRmb3JtLCBtYXg2NjUwX2lkKTsKCkkgdGhvdWdodCB5b3Ugd2VyZSBn
-b2luZyB0byBkbyB0aGUgbWF0Y2hpbmcgaW4gdGhlIE1GRCBkcml2ZXI/CgpJZiBub3QsIHdoYXQn
-cyB0aGUgcG9pbnQgaW4gdGhlIGV4cG9ydGVkICd0eXBlJyBhdHRyaWJ1dGU/Cgo+IC1zdGF0aWMg
-c3RydWN0IGkyY19kcml2ZXIgbWF4NjY1MF9kcml2ZXIgPSB7Cj4gK3N0YXRpYyBzdHJ1Y3QgcGxh
-dGZvcm1fZHJpdmVyIG1heDY2NTBfZHJpdmVyID0gewo+ICAJLmRyaXZlciA9IHsKPiAgCQkubmFt
-ZQk9ICJtYXg2NjUwIiwKClRoaXMgc2hvdWxkIGJlIGNoYW5nZWQgYXMgaXQgbm93IHN1cHBvcnRz
-IG1heDY2NXswLDF9IHJpZ2h0PwoKPHNuaXA+Cgo+IC0JaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0
-YShjbGllbnQsIE1BWDY2NTBfUkVHX1NQRUVELCBkYXRhLT5zcGVlZCk7Cj4gKwlyZWdtYXBfd3Jp
-dGUoZGF0YS0+aW9kZXYtPm1hcCwgTUFYNjY1MF9SRUdfU1BFRUQsIGRhdGEtPnNwZWVkKTsKCkVu
-c3VyZSBhbGwgb2YgdGhlIHJlZ21hcCBzdHVmZiBpcyBmdWxseSB0ZXN0ZWQuCgo8c25pcD4KCj4g
-QEAgLTQ4NCwxMCArNDgyLDEyIEBAIHN0YXRpYyB1bW9kZV90IG1heDY2NTBfYXR0cnNfdmlzaWJs
-ZShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJpYnV0ZSAqYSwKPiAgCQkJCSAgICBp
-bnQgbikKPiAgewo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gY29udGFpbmVyX29mKGtvYmosIHN0
-cnVjdCBkZXZpY2UsIGtvYmopOwo+IC0Jc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2ky
-Y19jbGllbnQoZGV2KTsKPiAtCXU4IGFsYXJtX2VuID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRh
-KGNsaWVudCwgTUFYNjY1MF9SRUdfQUxBUk1fRU4pOwo+ICsJc3RydWN0IG1heDY2NTBfZGF0YSAq
-ZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJaW50IGFsYXJtX2VuOwo+ICAJc3RydWN0
-IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHI7Cj4gIAo+ICsJcmVnbWFwX3JlYWQoZGF0YS0+aW9k
-ZXYtPm1hcCwgTUFYNjY1MF9SRUdfQUxBUk1fRU4sICZhbGFybV9lbik7Cj4gKwoKV2hlcmUgaXMg
-dGhpcyB0aGVuIHVzZWQ/Cgo+IC1zdGF0aWMgaW50IG1heDY2NTBfcHJvYmUoc3RydWN0IGkyY19j
-bGllbnQgKmNsaWVudCwKPiAtCQkJIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKPiAr
-c3RhdGljIGludCBtYXg2NjUwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g
-IHsKPiArCXN0cnVjdCBtYXg2NjV4X2RldiAqbWF4NjY1eCA9IGRldl9nZXRfZHJ2ZGF0YShwZGV2
-LT5kZXYucGFyZW50KTsKPiAgCXN0cnVjdCBtYXg2NjUwX2RhdGEgKmRhdGE7Cj4gKwljb25zdCBz
-dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkICppZCA9IHBsYXRmb3JtX2dldF9kZXZpY2VfaWQocGRl
-dik7CgpXaGF0J3MgdGhlIHBvaW50IGluICd0eXBlJyBpbiB0aGUgZ2xvYmFsIGNvbnRhaW5lcj8K
-Ckl0J3MgbG9va2luZyBhcyB0aG91Z2ggeW91J3JlIG5vdCBnb2luZyB0byBuZWVkIGl0IHRvIGJl
-IGdsb2JhbCBhZnRlcgphbGwsIHJpZ2h0PwoKPHNuaXA+CgotLSAKTGVlIEpvbmVzCkxpbmFybyBT
-VE1pY3JvZWxlY3Ryb25pY3MgTGFuZGluZyBUZWFtIExlYWQKTGluYXJvLm9yZyDilIIgT3BlbiBz
-b3VyY2Ugc29mdHdhcmUgZm9yIEFSTSBTb0NzCkZvbGxvdyBMaW5hcm86IEZhY2Vib29rIHwgVHdp
-dHRlciB8IEJsb2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0
-cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21haWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw=
+> The MFD driver has now been added, so this driver is now being adopted to be a
+> subdevice driver on top of it. This means, the i2c driver usage is being
+> converted to platform driver usage all around.
+> 
+> Signed-off-by: Laszlo Papp <lpapp@kde.org>
+> ---
+> This patch has been compile tested only and will be tested with real hardware,
+> but early reviews to catch any trivial issues would be welcome.
+>  drivers/hwmon/Kconfig   |   2 +-
+>  drivers/hwmon/max6650.c | 155 ++++++++++++++++++++++++------------------------
+>  2 files changed, 79 insertions(+), 78 deletions(-)
+
+<snip>
+
+>  /*
+>   * Insmod parameters
+> @@ -105,24 +108,23 @@ module_param(clock, int, S_IRUGO);
+>  
+>  #define DIV_FROM_REG(reg) (1 << (reg & 7))
+>  
+> -static int max6650_probe(struct i2c_client *client,
+> -			 const struct i2c_device_id *id);
+> -static int max6650_init_client(struct i2c_client *client);
+> -static int max6650_remove(struct i2c_client *client);
+> +static int max6650_probe(struct platform_device *pdev);
+> +static int max6650_init_client(struct platform_device *pdev);
+> +static int max6650_remove(struct platform_device *pdev);
+>  static struct max6650_data *max6650_update_device(struct device *dev);
+
+It would be good to remove these forward declarations in the future.
+
+If no one volunteers I'll happily do it.
+
+>  /*
+>   * Driver data (common to all clients)
+>   */
+>  
+> -static const struct i2c_device_id max6650_id[] = {
+> +static const struct platform_device_id max6650_id[] = {
+>  	{ "max6650", 1 },
+>  	{ "max6651", 4 },
+>  	{ }
+>  };
+> -MODULE_DEVICE_TABLE(i2c, max6650_id);
+> +MODULE_DEVICE_TABLE(platform, max6650_id);
+
+I thought you were going to do the matching in the MFD driver?
+
+If not, what's the point in the exported 'type' attribute?
+
+> -static struct i2c_driver max6650_driver = {
+> +static struct platform_driver max6650_driver = {
+>  	.driver = {
+>  		.name	= "max6650",
+
+This should be changed as it now supports max665{0,1} right?
+
+<snip>
+
+> -	i2c_smbus_write_byte_data(client, MAX6650_REG_SPEED, data->speed);
+> +	regmap_write(data->iodev->map, MAX6650_REG_SPEED, data->speed);
+
+Ensure all of the regmap stuff is fully tested.
+
+<snip>
+
+> @@ -484,10 +482,12 @@ static umode_t max6650_attrs_visible(struct kobject *kobj, struct attribute *a,
+>  				    int n)
+>  {
+>  	struct device *dev = container_of(kobj, struct device, kobj);
+> -	struct i2c_client *client = to_i2c_client(dev);
+> -	u8 alarm_en = i2c_smbus_read_byte_data(client, MAX6650_REG_ALARM_EN);
+> +	struct max6650_data *data = dev_get_drvdata(dev);
+> +	int alarm_en;
+>  	struct device_attribute *devattr;
+>  
+> +	regmap_read(data->iodev->map, MAX6650_REG_ALARM_EN, &alarm_en);
+> +
+
+Where is this then used?
+
+> -static int max6650_probe(struct i2c_client *client,
+> -			 const struct i2c_device_id *id)
+> +static int max6650_probe(struct platform_device *pdev)
+>  {
+> +	struct max665x_dev *max665x = dev_get_drvdata(pdev->dev.parent);
+>  	struct max6650_data *data;
+> +	const struct platform_device_id *id = platform_get_device_id(pdev);
+
+What's the point in 'type' in the global container?
+
+It's looking as though you're not going to need it to be global after
+all, right?
+
+<snip>
+
+-- 
+Lee Jones
+Linaro STMicroelectronics Landing Team Lead
+Linaro.org │ Open source software for ARM SoCs
+Follow Linaro: Facebook | Twitter | Blog
diff --git a/a/content_digest b/N1/content_digest
index 32841e8..9e004b7 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,6 +1,6 @@
  "ref\01392281438-31836-1-git-send-email-lpapp@kde.org\0"
  "From\0Lee Jones <lee.jones@linaro.org>\0"
- "Subject\0Re: [lm-sensors] [RFC PATCH] hwmon: (max6650) Convert to be a platform driver\0"
+ "Subject\0Re: [RFC PATCH] hwmon: (max6650) Convert to be a platform driver\0"
  "Date\0Thu, 13 Feb 2014 09:58:17 +0000\0"
  "To\0Laszlo Papp <lpapp@kde.org>\0"
  "Cc\0jdelvare@suse.de"
@@ -9,66 +9,106 @@
  " linux-kernel@vger.kernel.org\0"
  "\00:1\0"
  "b\0"
- "PiBUaGUgTUZEIGRyaXZlciBoYXMgbm93IGJlZW4gYWRkZWQsIHNvIHRoaXMgZHJpdmVyIGlzIG5v\n"
- "dyBiZWluZyBhZG9wdGVkIHRvIGJlIGEKPiBzdWJkZXZpY2UgZHJpdmVyIG9uIHRvcCBvZiBpdC4g\n"
- "VGhpcyBtZWFucywgdGhlIGkyYyBkcml2ZXIgdXNhZ2UgaXMgYmVpbmcKPiBjb252ZXJ0ZWQgdG8g\n"
- "cGxhdGZvcm0gZHJpdmVyIHVzYWdlIGFsbCBhcm91bmQuCj4gCj4gU2lnbmVkLW9mZi1ieTogTGFz\n"
- "emxvIFBhcHAgPGxwYXBwQGtkZS5vcmc+Cj4gLS0tCj4gVGhpcyBwYXRjaCBoYXMgYmVlbiBjb21w\n"
- "aWxlIHRlc3RlZCBvbmx5IGFuZCB3aWxsIGJlIHRlc3RlZCB3aXRoIHJlYWwgaGFyZHdhcmUsCj4g\n"
- "YnV0IGVhcmx5IHJldmlld3MgdG8gY2F0Y2ggYW55IHRyaXZpYWwgaXNzdWVzIHdvdWxkIGJlIHdl\n"
- "bGNvbWUuCj4gIGRyaXZlcnMvaHdtb24vS2NvbmZpZyAgIHwgICAyICstCj4gIGRyaXZlcnMvaHdt\n"
- "b24vbWF4NjY1MC5jIHwgMTU1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t\n"
- "LS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDc4IGRlbGV0\n"
- "aW9ucygtKQoKPHNuaXA+Cgo+ICAvKgo+ICAgKiBJbnNtb2QgcGFyYW1ldGVycwo+IEBAIC0xMDUs\n"
- "MjQgKzEwOCwyMyBAQCBtb2R1bGVfcGFyYW0oY2xvY2ssIGludCwgU19JUlVHTyk7Cj4gIAo+ICAj\n"
- "ZGVmaW5lIERJVl9GUk9NX1JFRyhyZWcpICgxIDw8IChyZWcgJiA3KSkKPiAgCj4gLXN0YXRpYyBp\n"
- "bnQgbWF4NjY1MF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+IC0JCQkgY29uc3Qg\n"
- "c3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKTsKPiAtc3RhdGljIGludCBtYXg2NjUwX2luaXRfY2xp\n"
- "ZW50KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpOwo+IC1zdGF0aWMgaW50IG1heDY2NTBfcmVt\n"
- "b3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpOwo+ICtzdGF0aWMgaW50IG1heDY2NTBfcHJv\n"
- "YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7Cj4gK3N0YXRpYyBpbnQgbWF4NjY1MF9p\n"
- "bml0X2NsaWVudChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKPiArc3RhdGljIGludCBt\n"
- "YXg2NjUwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKPiAgc3RhdGljIHN0\n"
- "cnVjdCBtYXg2NjUwX2RhdGEgKm1heDY2NTBfdXBkYXRlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpk\n"
- "ZXYpOwoKSXQgd291bGQgYmUgZ29vZCB0byByZW1vdmUgdGhlc2UgZm9yd2FyZCBkZWNsYXJhdGlv\n"
- "bnMgaW4gdGhlIGZ1dHVyZS4KCklmIG5vIG9uZSB2b2x1bnRlZXJzIEknbGwgaGFwcGlseSBkbyBp\n"
- "dC4KCj4gIC8qCj4gICAqIERyaXZlciBkYXRhIChjb21tb24gdG8gYWxsIGNsaWVudHMpCj4gICAq\n"
- "Lwo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIG1heDY2NTBfaWRbXSA9\n"
- "IHsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgbWF4NjY1MF9pZFtd\n"
- "ID0gewo+ICAJeyAibWF4NjY1MCIsIDEgfSwKPiAgCXsgIm1heDY2NTEiLCA0IH0sCj4gIAl7IH0K\n"
- "PiAgfTsKPiAtTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIG1heDY2NTBfaWQpOwo+ICtNT0RVTEVf\n"
- "REVWSUNFX1RBQkxFKHBsYXRmb3JtLCBtYXg2NjUwX2lkKTsKCkkgdGhvdWdodCB5b3Ugd2VyZSBn\n"
- "b2luZyB0byBkbyB0aGUgbWF0Y2hpbmcgaW4gdGhlIE1GRCBkcml2ZXI/CgpJZiBub3QsIHdoYXQn\n"
- "cyB0aGUgcG9pbnQgaW4gdGhlIGV4cG9ydGVkICd0eXBlJyBhdHRyaWJ1dGU/Cgo+IC1zdGF0aWMg\n"
- "c3RydWN0IGkyY19kcml2ZXIgbWF4NjY1MF9kcml2ZXIgPSB7Cj4gK3N0YXRpYyBzdHJ1Y3QgcGxh\n"
- "dGZvcm1fZHJpdmVyIG1heDY2NTBfZHJpdmVyID0gewo+ICAJLmRyaXZlciA9IHsKPiAgCQkubmFt\n"
- "ZQk9ICJtYXg2NjUwIiwKClRoaXMgc2hvdWxkIGJlIGNoYW5nZWQgYXMgaXQgbm93IHN1cHBvcnRz\n"
- "IG1heDY2NXswLDF9IHJpZ2h0PwoKPHNuaXA+Cgo+IC0JaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0\n"
- "YShjbGllbnQsIE1BWDY2NTBfUkVHX1NQRUVELCBkYXRhLT5zcGVlZCk7Cj4gKwlyZWdtYXBfd3Jp\n"
- "dGUoZGF0YS0+aW9kZXYtPm1hcCwgTUFYNjY1MF9SRUdfU1BFRUQsIGRhdGEtPnNwZWVkKTsKCkVu\n"
- "c3VyZSBhbGwgb2YgdGhlIHJlZ21hcCBzdHVmZiBpcyBmdWxseSB0ZXN0ZWQuCgo8c25pcD4KCj4g\n"
- "QEAgLTQ4NCwxMCArNDgyLDEyIEBAIHN0YXRpYyB1bW9kZV90IG1heDY2NTBfYXR0cnNfdmlzaWJs\n"
- "ZShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJpYnV0ZSAqYSwKPiAgCQkJCSAgICBp\n"
- "bnQgbikKPiAgewo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gY29udGFpbmVyX29mKGtvYmosIHN0\n"
- "cnVjdCBkZXZpY2UsIGtvYmopOwo+IC0Jc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2ky\n"
- "Y19jbGllbnQoZGV2KTsKPiAtCXU4IGFsYXJtX2VuID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRh\n"
- "KGNsaWVudCwgTUFYNjY1MF9SRUdfQUxBUk1fRU4pOwo+ICsJc3RydWN0IG1heDY2NTBfZGF0YSAq\n"
- "ZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJaW50IGFsYXJtX2VuOwo+ICAJc3RydWN0\n"
- "IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHI7Cj4gIAo+ICsJcmVnbWFwX3JlYWQoZGF0YS0+aW9k\n"
- "ZXYtPm1hcCwgTUFYNjY1MF9SRUdfQUxBUk1fRU4sICZhbGFybV9lbik7Cj4gKwoKV2hlcmUgaXMg\n"
- "dGhpcyB0aGVuIHVzZWQ/Cgo+IC1zdGF0aWMgaW50IG1heDY2NTBfcHJvYmUoc3RydWN0IGkyY19j\n"
- "bGllbnQgKmNsaWVudCwKPiAtCQkJIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKPiAr\n"
- "c3RhdGljIGludCBtYXg2NjUwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g\n"
- "IHsKPiArCXN0cnVjdCBtYXg2NjV4X2RldiAqbWF4NjY1eCA9IGRldl9nZXRfZHJ2ZGF0YShwZGV2\n"
- "LT5kZXYucGFyZW50KTsKPiAgCXN0cnVjdCBtYXg2NjUwX2RhdGEgKmRhdGE7Cj4gKwljb25zdCBz\n"
- "dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkICppZCA9IHBsYXRmb3JtX2dldF9kZXZpY2VfaWQocGRl\n"
- "dik7CgpXaGF0J3MgdGhlIHBvaW50IGluICd0eXBlJyBpbiB0aGUgZ2xvYmFsIGNvbnRhaW5lcj8K\n"
- "Ckl0J3MgbG9va2luZyBhcyB0aG91Z2ggeW91J3JlIG5vdCBnb2luZyB0byBuZWVkIGl0IHRvIGJl\n"
- "IGdsb2JhbCBhZnRlcgphbGwsIHJpZ2h0PwoKPHNuaXA+CgotLSAKTGVlIEpvbmVzCkxpbmFybyBT\n"
- "VE1pY3JvZWxlY3Ryb25pY3MgTGFuZGluZyBUZWFtIExlYWQKTGluYXJvLm9yZyDilIIgT3BlbiBz\n"
- "b3VyY2Ugc29mdHdhcmUgZm9yIEFSTSBTb0NzCkZvbGxvdyBMaW5hcm86IEZhY2Vib29rIHwgVHdp\n"
- "dHRlciB8IEJsb2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f\n"
- "X19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0\n"
- cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21haWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw=
+ "> The MFD driver has now been added, so this driver is now being adopted to be a\n"
+ "> subdevice driver on top of it. This means, the i2c driver usage is being\n"
+ "> converted to platform driver usage all around.\n"
+ "> \n"
+ "> Signed-off-by: Laszlo Papp <lpapp@kde.org>\n"
+ "> ---\n"
+ "> This patch has been compile tested only and will be tested with real hardware,\n"
+ "> but early reviews to catch any trivial issues would be welcome.\n"
+ ">  drivers/hwmon/Kconfig   |   2 +-\n"
+ ">  drivers/hwmon/max6650.c | 155 ++++++++++++++++++++++++------------------------\n"
+ ">  2 files changed, 79 insertions(+), 78 deletions(-)\n"
+ "\n"
+ "<snip>\n"
+ "\n"
+ ">  /*\n"
+ ">   * Insmod parameters\n"
+ "> @@ -105,24 +108,23 @@ module_param(clock, int, S_IRUGO);\n"
+ ">  \n"
+ ">  #define DIV_FROM_REG(reg) (1 << (reg & 7))\n"
+ ">  \n"
+ "> -static int max6650_probe(struct i2c_client *client,\n"
+ "> -\t\t\t const struct i2c_device_id *id);\n"
+ "> -static int max6650_init_client(struct i2c_client *client);\n"
+ "> -static int max6650_remove(struct i2c_client *client);\n"
+ "> +static int max6650_probe(struct platform_device *pdev);\n"
+ "> +static int max6650_init_client(struct platform_device *pdev);\n"
+ "> +static int max6650_remove(struct platform_device *pdev);\n"
+ ">  static struct max6650_data *max6650_update_device(struct device *dev);\n"
+ "\n"
+ "It would be good to remove these forward declarations in the future.\n"
+ "\n"
+ "If no one volunteers I'll happily do it.\n"
+ "\n"
+ ">  /*\n"
+ ">   * Driver data (common to all clients)\n"
+ ">   */\n"
+ ">  \n"
+ "> -static const struct i2c_device_id max6650_id[] = {\n"
+ "> +static const struct platform_device_id max6650_id[] = {\n"
+ ">  \t{ \"max6650\", 1 },\n"
+ ">  \t{ \"max6651\", 4 },\n"
+ ">  \t{ }\n"
+ ">  };\n"
+ "> -MODULE_DEVICE_TABLE(i2c, max6650_id);\n"
+ "> +MODULE_DEVICE_TABLE(platform, max6650_id);\n"
+ "\n"
+ "I thought you were going to do the matching in the MFD driver?\n"
+ "\n"
+ "If not, what's the point in the exported 'type' attribute?\n"
+ "\n"
+ "> -static struct i2c_driver max6650_driver = {\n"
+ "> +static struct platform_driver max6650_driver = {\n"
+ ">  \t.driver = {\n"
+ ">  \t\t.name\t= \"max6650\",\n"
+ "\n"
+ "This should be changed as it now supports max665{0,1} right?\n"
+ "\n"
+ "<snip>\n"
+ "\n"
+ "> -\ti2c_smbus_write_byte_data(client, MAX6650_REG_SPEED, data->speed);\n"
+ "> +\tregmap_write(data->iodev->map, MAX6650_REG_SPEED, data->speed);\n"
+ "\n"
+ "Ensure all of the regmap stuff is fully tested.\n"
+ "\n"
+ "<snip>\n"
+ "\n"
+ "> @@ -484,10 +482,12 @@ static umode_t max6650_attrs_visible(struct kobject *kobj, struct attribute *a,\n"
+ ">  \t\t\t\t    int n)\n"
+ ">  {\n"
+ ">  \tstruct device *dev = container_of(kobj, struct device, kobj);\n"
+ "> -\tstruct i2c_client *client = to_i2c_client(dev);\n"
+ "> -\tu8 alarm_en = i2c_smbus_read_byte_data(client, MAX6650_REG_ALARM_EN);\n"
+ "> +\tstruct max6650_data *data = dev_get_drvdata(dev);\n"
+ "> +\tint alarm_en;\n"
+ ">  \tstruct device_attribute *devattr;\n"
+ ">  \n"
+ "> +\tregmap_read(data->iodev->map, MAX6650_REG_ALARM_EN, &alarm_en);\n"
+ "> +\n"
+ "\n"
+ "Where is this then used?\n"
+ "\n"
+ "> -static int max6650_probe(struct i2c_client *client,\n"
+ "> -\t\t\t const struct i2c_device_id *id)\n"
+ "> +static int max6650_probe(struct platform_device *pdev)\n"
+ ">  {\n"
+ "> +\tstruct max665x_dev *max665x = dev_get_drvdata(pdev->dev.parent);\n"
+ ">  \tstruct max6650_data *data;\n"
+ "> +\tconst struct platform_device_id *id = platform_get_device_id(pdev);\n"
+ "\n"
+ "What's the point in 'type' in the global container?\n"
+ "\n"
+ "It's looking as though you're not going to need it to be global after\n"
+ "all, right?\n"
+ "\n"
+ "<snip>\n"
+ "\n"
+ "-- \n"
+ "Lee Jones\n"
+ "Linaro STMicroelectronics Landing Team Lead\n"
+ "Linaro.org \342\224\202 Open source software for ARM SoCs\n"
+ Follow Linaro: Facebook | Twitter | Blog
 
-614df6c34bc3258c605ccd7c6df32e1460eb2f00582fd9c30ae837f27b701c6d
+317e8ec8caeca5dca2c4fb30c6028fd113b0cb8c0b8095f0b6d4883bfcfe1524

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.