Message ID | 1448618297-19803-1-git-send-email-akarwar@marvell.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
+ devicetree list Amitkumar Karwar <akarwar@marvell.com> writes: > From: Xinming Hu <huxm@marvell.com> > > This patch reads hscfg_gpio from device tree and update > internal variable > > Signed-off-by: Xinming Hu <huxm@marvell.com> > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> > --- > drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > index e486867..d28a53f 100644 > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct mwifiex_private *priv, > #ifdef CONFIG_OF > struct property *prop; > size_t len = strlen(prefix); > + u32 data; > int ret; > > /* look for all matching property names */ > for_each_property_of_node(node, prop) { > + if (!strncmp(prop->name, "marvell,hscfg_gpio", > + strlen("marvell,hscfg_gpio"))) { > + if (!of_property_read_u32(priv->adapter->dt_node, > + prop->name, &data)) { > + dev_dbg(priv->adapter->dev, > + "hscfg gpio = 0x%x\n", data); > + priv->adapter->hs_cfg.gpio = data; > + } > + } I don't see this documented in Documentation/devicetree/bindings. Please create a binding document and review it with the device tree maintainers. Actually when looking mwifiex close I see that it uses more undocumented device tree interfaces: marvell_cfgdata marvell,caldata marvell,00_txpwrlimit I think these all should be properly documented and reviewed. But I'll let the device tree people chime in what's the best way.
Hi Kalle, > -----Original Message----- > From: Kalle Valo [mailto:kvalo@codeaurora.org] > Sent: Friday, December 11, 2015 2:04 PM > To: Amitkumar Karwar > Cc: linux-wireless@vger.kernel.org; Nishant Sarmukadam; Xinming Hu; > devicetree@vger.kernel.org > Subject: Re: [PATCH] mwifiex: parse hscfg_gpio info from device tree > > + devicetree list > > Amitkumar Karwar <akarwar@marvell.com> writes: > > > From: Xinming Hu <huxm@marvell.com> > > > > This patch reads hscfg_gpio from device tree and update internal > > variable > > > > Signed-off-by: Xinming Hu <huxm@marvell.com> > > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> > > --- > > drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > > b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > > index e486867..d28a53f 100644 > > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c > > @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct > > mwifiex_private *priv, #ifdef CONFIG_OF > > struct property *prop; > > size_t len = strlen(prefix); > > + u32 data; > > int ret; > > > > /* look for all matching property names */ > > for_each_property_of_node(node, prop) { > > + if (!strncmp(prop->name, "marvell,hscfg_gpio", > > + strlen("marvell,hscfg_gpio"))) { > > + if (!of_property_read_u32(priv->adapter->dt_node, > > + prop->name, &data)) { > > + dev_dbg(priv->adapter->dev, > > + "hscfg gpio = 0x%x\n", data); > > + priv->adapter->hs_cfg.gpio = data; > > + } > > + } > > I don't see this documented in Documentation/devicetree/bindings. Please > create a binding document and review it with the device tree > maintainers. > > Actually when looking mwifiex close I see that it uses more undocumented > device tree interfaces: > > marvell_cfgdata > marvell,caldata > marvell,00_txpwrlimit > > I think these all should be properly documented and reviewed. But I'll > let the device tree people chime in what's the best way. > Thanks for the review. Sure. We will document existing DT interfaces and create updated version of this patch which includes documentation in bindings. Regards, Amit -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Amitkumar, On Fri, Dec 11, 2015 at 8:23 PM, Amitkumar Karwar <akarwar@marvell.com> wrote: > Hi Kalle, > >> -----Original Message----- >> From: Kalle Valo [mailto:kvalo@codeaurora.org] >> Sent: Friday, December 11, 2015 2:04 PM >> To: Amitkumar Karwar >> Cc: linux-wireless@vger.kernel.org; Nishant Sarmukadam; Xinming Hu; >> devicetree@vger.kernel.org >> Subject: Re: [PATCH] mwifiex: parse hscfg_gpio info from device tree >> >> + devicetree list >> >> Amitkumar Karwar <akarwar@marvell.com> writes: >> >> > From: Xinming Hu <huxm@marvell.com> >> > >> > This patch reads hscfg_gpio from device tree and update internal >> > variable >> > >> > Signed-off-by: Xinming Hu <huxm@marvell.com> >> > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> >> > --- >> > drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 11 +++++++++++ >> > 1 file changed, 11 insertions(+) >> > >> > diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c >> > b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c >> > index e486867..d28a53f 100644 >> > --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c >> > +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c >> > @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct >> > mwifiex_private *priv, #ifdef CONFIG_OF >> > struct property *prop; >> > size_t len = strlen(prefix); >> > + u32 data; >> > int ret; >> > >> > /* look for all matching property names */ >> > for_each_property_of_node(node, prop) { >> > + if (!strncmp(prop->name, "marvell,hscfg_gpio", >> > + strlen("marvell,hscfg_gpio"))) { >> > + if (!of_property_read_u32(priv->adapter->dt_node, >> > + prop->name, &data)) { >> > + dev_dbg(priv->adapter->dev, >> > + "hscfg gpio = 0x%x\n", data); >> > + priv->adapter->hs_cfg.gpio = data; >> > + } >> > + } >> >> I don't see this documented in Documentation/devicetree/bindings. Please >> create a binding document and review it with the device tree >> maintainers. >> >> Actually when looking mwifiex close I see that it uses more undocumented >> device tree interfaces: >> >> marvell_cfgdata >> marvell,caldata >> marvell,00_txpwrlimit >> >> I think these all should be properly documented and reviewed. But I'll >> let the device tree people chime in what's the best way. >> > > Thanks for the review. > Sure. We will document existing DT interfaces and create updated version of this patch which includes documentation in bindings. It's been a while since this was reviewed. Do you have an updated version of this patch? Thanks,
SGkgSnVsaWFuLA0KDQo+IEZyb206IEp1bGlhbiBDYWxhYnkgW21haWx0bzpqdWxpYW4uY2FsYWJ5 QGdtYWlsLmNvbV0NCj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDE3LCAyMDE2IDQ6NTYgQU0NCj4g VG86IEFtaXRrdW1hciBLYXJ3YXINCj4gQ2M6IEthbGxlIFZhbG87IGxpbnV4LXdpcmVsZXNzQHZn ZXIua2VybmVsLm9yZzsgTmlzaGFudCBTYXJtdWthZGFtOw0KPiBYaW5taW5nIEh1OyBkZXZpY2V0 cmVlQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBtd2lmaWV4OiBwYXJz ZSBoc2NmZ19ncGlvIGluZm8gZnJvbSBkZXZpY2UgdHJlZQ0KPiANCj4gSGkgQW1pdGt1bWFyLA0K PiANCj4gT24gRnJpLCBEZWMgMTEsIDIwMTUgYXQgODoyMyBQTSwgQW1pdGt1bWFyIEthcndhciA8 YWthcndhckBtYXJ2ZWxsLmNvbT4NCj4gd3JvdGU6DQo+ID4gSGkgS2FsbGUsDQo+ID4NCj4gPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogS2FsbGUgVmFsbyBbbWFpbHRv Omt2YWxvQGNvZGVhdXJvcmEub3JnXQ0KPiA+PiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDExLCAy MDE1IDI6MDQgUE0NCj4gPj4gVG86IEFtaXRrdW1hciBLYXJ3YXINCj4gPj4gQ2M6IGxpbnV4LXdp cmVsZXNzQHZnZXIua2VybmVsLm9yZzsgTmlzaGFudCBTYXJtdWthZGFtOyBYaW5taW5nIEh1Ow0K PiA+PiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENI XSBtd2lmaWV4OiBwYXJzZSBoc2NmZ19ncGlvIGluZm8gZnJvbSBkZXZpY2UgdHJlZQ0KPiA+Pg0K PiA+PiArIGRldmljZXRyZWUgbGlzdA0KPiA+Pg0KPiA+PiBBbWl0a3VtYXIgS2Fyd2FyIDxha2Fy d2FyQG1hcnZlbGwuY29tPiB3cml0ZXM6DQo+ID4+DQo+ID4+ID4gRnJvbTogWGlubWluZyBIdSA8 aHV4bUBtYXJ2ZWxsLmNvbT4NCj4gPj4gPg0KPiA+PiA+IFRoaXMgcGF0Y2ggcmVhZHMgaHNjZmdf Z3BpbyBmcm9tIGRldmljZSB0cmVlIGFuZCB1cGRhdGUgaW50ZXJuYWwNCj4gPj4gPiB2YXJpYWJs ZQ0KPiA+PiA+DQo+ID4+ID4gU2lnbmVkLW9mZi1ieTogWGlubWluZyBIdSA8aHV4bUBtYXJ2ZWxs LmNvbT4NCj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBBbWl0a3VtYXIgS2Fyd2FyIDxha2Fyd2FyQG1h cnZlbGwuY29tPg0KPiA+PiA+IC0tLQ0KPiA+PiA+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2 ZWxsL213aWZpZXgvc3RhX2NtZC5jIHwgMTEgKysrKysrKysrKysNCj4gPj4gPiAgMSBmaWxlIGNo YW5nZWQsIDExIGluc2VydGlvbnMoKykNCj4gPj4gPg0KPiA+PiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2NtZC5jDQo+ID4+ID4gYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvc3RhX2NtZC5jDQo+ID4+ID4gaW5kZXgg ZTQ4Njg2Ny4uZDI4YTUzZiAxMDA2NDQNCj4gPj4gPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9tYXJ2ZWxsL213aWZpZXgvc3RhX2NtZC5jDQo+ID4+ID4gKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvbWFydmVsbC9td2lmaWV4L3N0YV9jbWQuYw0KPiA+PiA+IEBAIC0xNDU5LDEwICsxNDU5 LDIxIEBAIGludCBtd2lmaWV4X2RubGRfZHRfY2ZnZGF0YShzdHJ1Y3QNCj4gPj4gPiBtd2lmaWV4 X3ByaXZhdGUgKnByaXYsICAjaWZkZWYgQ09ORklHX09GDQo+ID4+ID4gICAgIHN0cnVjdCBwcm9w ZXJ0eSAqcHJvcDsNCj4gPj4gPiAgICAgc2l6ZV90IGxlbiA9IHN0cmxlbihwcmVmaXgpOw0KPiA+ PiA+ICsgICB1MzIgZGF0YTsNCj4gPj4gPiAgICAgaW50IHJldDsNCj4gPj4gPg0KPiA+PiA+ICAg ICAvKiBsb29rIGZvciBhbGwgbWF0Y2hpbmcgcHJvcGVydHkgbmFtZXMgKi8NCj4gPj4gPiAgICAg Zm9yX2VhY2hfcHJvcGVydHlfb2Zfbm9kZShub2RlLCBwcm9wKSB7DQo+ID4+ID4gKyAgICAgICAg ICAgaWYgKCFzdHJuY21wKHByb3AtPm5hbWUsICJtYXJ2ZWxsLGhzY2ZnX2dwaW8iLA0KPiA+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oIm1hcnZlbGwsaHNjZmdfZ3BpbyIpKSkg ew0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihw cml2LT5hZGFwdGVyLQ0KPiA+ZHRfbm9kZSwNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcC0+bmFtZSwgJmRhdGEpKSB7DQo+ID4+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9kYmcocHJpdi0+YWRhcHRlci0+ZGV2LA0KPiA+ PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoc2NmZyBncGlvID0gMHgl eFxuIiwgZGF0YSk7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmFk YXB0ZXItPmhzX2NmZy5ncGlvID0gZGF0YTsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgIH0N Cj4gPj4gPiArICAgICAgICAgICB9DQo+ID4+DQo+ID4+IEkgZG9uJ3Qgc2VlIHRoaXMgZG9jdW1l bnRlZCBpbiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MuDQo+ID4+IFBsZWFzZSBj cmVhdGUgYSBiaW5kaW5nIGRvY3VtZW50IGFuZCByZXZpZXcgaXQgd2l0aCB0aGUgZGV2aWNlIHRy ZWUNCj4gPj4gbWFpbnRhaW5lcnMuDQo+ID4+DQo+ID4+IEFjdHVhbGx5IHdoZW4gbG9va2luZyBt d2lmaWV4IGNsb3NlIEkgc2VlIHRoYXQgaXQgdXNlcyBtb3JlDQo+ID4+IHVuZG9jdW1lbnRlZCBk ZXZpY2UgdHJlZSBpbnRlcmZhY2VzOg0KPiA+Pg0KPiA+PiBtYXJ2ZWxsX2NmZ2RhdGENCj4gPj4g bWFydmVsbCxjYWxkYXRhDQo+ID4+IG1hcnZlbGwsMDBfdHhwd3JsaW1pdA0KPiA+Pg0KPiA+PiBJ IHRoaW5rIHRoZXNlIGFsbCBzaG91bGQgYmUgcHJvcGVybHkgZG9jdW1lbnRlZCBhbmQgcmV2aWV3 ZWQuIEJ1dA0KPiA+PiBJJ2xsIGxldCB0aGUgZGV2aWNlIHRyZWUgcGVvcGxlIGNoaW1lIGluIHdo YXQncyB0aGUgYmVzdCB3YXkuDQo+ID4+DQo+ID4NCj4gPiBUaGFua3MgZm9yIHRoZSByZXZpZXcu DQo+ID4gU3VyZS4gV2Ugd2lsbCBkb2N1bWVudCBleGlzdGluZyBEVCBpbnRlcmZhY2VzIGFuZCBj cmVhdGUgdXBkYXRlZA0KPiB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggd2hpY2ggaW5jbHVkZXMgZG9j dW1lbnRhdGlvbiBpbiBiaW5kaW5ncy4NCj4gDQo+IEl0J3MgYmVlbiBhIHdoaWxlIHNpbmNlIHRo aXMgd2FzIHJldmlld2VkLiBEbyB5b3UgaGF2ZSBhbiB1cGRhdGVkDQo+IHZlcnNpb24gb2YgdGhp cyBwYXRjaD8NCj4gDQoNCldlIHdpbGwgYmUgc3VibWl0dGluZyB1cGRhdGVkIHZlcnNpb24gb2Yg YmVsb3cgcGF0Y2ggc2VyaWVzIGluIGEgZGF5IG9yIHR3by4gSGVuY2UgdXBkYXRlZCB2ZXJzaW9u IG9mIHRoaXMgcGF0Y2ggaXMgbm90IG5lZWRlZC4NCg0KaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIw MTYvMi8yOS8zOTQNCg0KUmVnYXJkcywNCkFtaXRrdW1hcg0K -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c index e486867..d28a53f 100644 --- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c +++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c @@ -1459,10 +1459,21 @@ int mwifiex_dnld_dt_cfgdata(struct mwifiex_private *priv, #ifdef CONFIG_OF struct property *prop; size_t len = strlen(prefix); + u32 data; int ret; /* look for all matching property names */ for_each_property_of_node(node, prop) { + if (!strncmp(prop->name, "marvell,hscfg_gpio", + strlen("marvell,hscfg_gpio"))) { + if (!of_property_read_u32(priv->adapter->dt_node, + prop->name, &data)) { + dev_dbg(priv->adapter->dev, + "hscfg gpio = 0x%x\n", data); + priv->adapter->hs_cfg.gpio = data; + } + } + if (len > strlen(prop->name) || strncmp(prop->name, prefix, len)) continue;