summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch
diff options
context:
space:
mode:
authorAlexandros C. Couloumbis <alex@ozo.com>2010-11-10 19:01:07 +0000
committerAlexandros C. Couloumbis <alex@ozo.com>2010-11-10 19:01:07 +0000
commitf950840ec9336184e78d331ff54508ffadd58429 (patch)
tree1d0fc85254098d0c258b1859293b9084cc2912d3 /target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch
parent0c66bb9c5534b27bd4304ba4a65a3cc43fe77de5 (diff)
downloadmaster-31e0f0ae-f950840ec9336184e78d331ff54508ffadd58429.tar.gz
master-31e0f0ae-f950840ec9336184e78d331ff54508ffadd58429.tar.bz2
master-31e0f0ae-f950840ec9336184e78d331ff54508ffadd58429.zip
linux/brcm47xx: add preliminary 2.6.37 kernel support
SVN-Revision: 23945
Diffstat (limited to 'target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch')
-rw-r--r--target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch b/target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch
new file mode 100644
index 0000000000..304865beaa
--- /dev/null
+++ b/target/linux/brcm47xx/patches-2.6.37/950-sbb-sysfs-files.patch
@@ -0,0 +1,45 @@
+--- a/drivers/ssb/main.c
++++ b/drivers/ssb/main.c
+@@ -383,6 +383,34 @@ static int ssb_device_uevent(struct devi
+ ssb_dev->id.revision);
+ }
+
++#define ssb_config_attr(attrib, field, format_string) \
++static ssize_t \
++attrib##_show(struct device *dev, struct device_attribute *attr, char *buf) \
++{ \
++ return sprintf(buf, format_string, dev_to_ssb_dev(dev)->field); \
++}
++
++ssb_config_attr(core_num, core_index, "%u\n")
++ssb_config_attr(coreid, id.coreid, "0x%04x\n")
++ssb_config_attr(vendor, id.vendor, "0x%04x\n")
++ssb_config_attr(revision, id.revision, "%u\n")
++ssb_config_attr(irq, irq, "%u\n")
++static ssize_t
++name_show(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return sprintf(buf, "%s\n", ssb_core_name(dev_to_ssb_dev(dev)->id.coreid));
++}
++
++static struct device_attribute ssb_device_attrs[] = {
++ __ATTR_RO(name),
++ __ATTR_RO(core_num),
++ __ATTR_RO(coreid),
++ __ATTR_RO(vendor),
++ __ATTR_RO(revision),
++ __ATTR_RO(irq),
++ __ATTR_NULL,
++};
++
+ static struct bus_type ssb_bustype = {
+ .name = "ssb",
+ .match = ssb_bus_match,
+@@ -392,6 +420,7 @@ static struct bus_type ssb_bustype = {
+ .suspend = ssb_device_suspend,
+ .resume = ssb_device_resume,
+ .uevent = ssb_device_uevent,
++ .dev_attrs = ssb_device_attrs,
+ };
+
+ static void ssb_buses_lock(void)