brcmfmac: support read chipname via sysfs
It adds support of reading chipname via sysfs, so that user space can distinguish WiFi module among AP5256, AP5256V and 1MW. - AP5256 reMarkable: ~/ cat /sys/class/ieee80211/phy*/chipname BCM4345/9 - AP5256V reMarkable: ~/ cat /sys/class/ieee80211/phy*/chipname BCM43012/2 - 1MW reMarkable: ~/ cat /sys/class/ieee80211/phy*/chipname BCM4345/6 Signed-off-by: Shawn Guo <shawn.guo@linaro.org>zero-sugar
parent
a5cf79c3c3
commit
2be45d43a0
|
@ -937,6 +937,17 @@ int brcmf_fwlog_attach(struct device *dev)
|
||||||
return brcmf_debug_fwlog_init(drvr);
|
return brcmf_debug_fwlog_init(drvr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t chipname_show(struct device *dev, struct device_attribute *attr,
|
||||||
|
char *buf)
|
||||||
|
{
|
||||||
|
struct brcmf_bus *bus_if = dev_get_drvdata(dev->parent);
|
||||||
|
struct brcmf_pub *drvr = bus_if->drvr;
|
||||||
|
struct brcmf_rev_info *ri = &drvr->revinfo;
|
||||||
|
|
||||||
|
return snprintf(buf, PAGE_SIZE, "%s\n", ri->chipname);
|
||||||
|
}
|
||||||
|
static DEVICE_ATTR_RO(chipname);
|
||||||
|
|
||||||
static int brcmf_revinfo_read(struct seq_file *s, void *data)
|
static int brcmf_revinfo_read(struct seq_file *s, void *data)
|
||||||
{
|
{
|
||||||
struct brcmf_bus *bus_if = dev_get_drvdata(s->private);
|
struct brcmf_bus *bus_if = dev_get_drvdata(s->private);
|
||||||
|
@ -1035,6 +1046,13 @@ int brcmf_bus_started(struct device *dev)
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_INET */
|
#endif /* CONFIG_INET */
|
||||||
|
|
||||||
|
/* Create sysfs file to get chip name */
|
||||||
|
ret = device_create_file(&drvr->config->wiphy->dev, &dev_attr_chipname);
|
||||||
|
if (ret) {
|
||||||
|
brcmf_err("failed to create sysfs file chipname");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
@ -1087,6 +1105,8 @@ void brcmf_detach(struct device *dev)
|
||||||
if (drvr == NULL)
|
if (drvr == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
device_remove_file(&drvr->config->wiphy->dev, &dev_attr_chipname);
|
||||||
|
|
||||||
#ifdef CONFIG_INET
|
#ifdef CONFIG_INET
|
||||||
unregister_inetaddr_notifier(&drvr->inetaddr_notifier);
|
unregister_inetaddr_notifier(&drvr->inetaddr_notifier);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue