diff options
Diffstat (limited to 'p07.patch')
| -rw-r--r-- | p07.patch | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/p07.patch b/p07.patch new file mode 100644 index 00000000000000..a04b2c093314a7 --- /dev/null +++ b/p07.patch @@ -0,0 +1,136 @@ +--- + drivers/pcmcia/ds.c | 63 +++++++++++++++++++++++++++++++--------------------- + 1 file changed, 38 insertions(+), 25 deletions(-) + +--- a/drivers/pcmcia/ds.c ++++ b/drivers/pcmcia/ds.c +@@ -992,16 +992,17 @@ static ssize_t field##_show (struct devi + { \ + struct pcmcia_device *p_dev = to_pcmcia_dev(dev); \ + return p_dev->test ? sprintf(buf, format, p_dev->field) : -ENODEV; \ +-} ++} \ ++static DEVICE_ATTR_RO(field); + + #define pcmcia_device_stringattr(name, field) \ + static ssize_t name##_show (struct device *dev, struct device_attribute *attr, char *buf) \ + { \ + struct pcmcia_device *p_dev = to_pcmcia_dev(dev); \ + return p_dev->field ? sprintf(buf, "%s\n", p_dev->field) : -ENODEV; \ +-} ++} \ ++static DEVICE_ATTR_RO(name); + +-pcmcia_device_attr(func, socket, "0x%02x\n"); + pcmcia_device_attr(func_id, has_func_id, "0x%02x\n"); + pcmcia_device_attr(manf_id, has_manf_id, "0x%04x\n"); + pcmcia_device_attr(card_id, has_card_id, "0x%04x\n"); +@@ -1010,8 +1011,16 @@ pcmcia_device_stringattr(prod_id2, prod_ + pcmcia_device_stringattr(prod_id3, prod_id[2]); + pcmcia_device_stringattr(prod_id4, prod_id[3]); + +-static ssize_t pcmcia_show_resources(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t function_show(struct device *dev, struct device_attribute *attr, ++ char *buf) ++{ ++ struct pcmcia_device *p_dev = to_pcmcia_dev(dev); ++ return p_dev->socket ? sprintf(buf, "0x%02x\n", p_dev->func) : -ENODEV; ++} ++static DEVICE_ATTR_RO(function); ++ ++static ssize_t resources_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct pcmcia_device *p_dev = to_pcmcia_dev(dev); + char *str = buf; +@@ -1022,8 +1031,9 @@ static ssize_t pcmcia_show_resources(str + + return str - buf; + } ++static DEVICE_ATTR_RO(resources); + +-static ssize_t pcmcia_show_pm_state(struct device *dev, struct device_attribute *attr, char *buf) ++static ssize_t pm_state_show(struct device *dev, struct device_attribute *attr, char *buf) + { + struct pcmcia_device *p_dev = to_pcmcia_dev(dev); + +@@ -1033,8 +1043,8 @@ static ssize_t pcmcia_show_pm_state(stru + return sprintf(buf, "on\n"); + } + +-static ssize_t pcmcia_store_pm_state(struct device *dev, struct device_attribute *attr, +- const char *buf, size_t count) ++static ssize_t pm_state_store(struct device *dev, struct device_attribute *attr, ++ const char *buf, size_t count) + { + struct pcmcia_device *p_dev = to_pcmcia_dev(dev); + int ret = 0; +@@ -1049,7 +1059,7 @@ static ssize_t pcmcia_store_pm_state(str + + return ret ? ret : count; + } +- ++static DEVICE_ATTR_RW(pm_state); + + static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) + { +@@ -1072,8 +1082,9 @@ static ssize_t modalias_show(struct devi + p_dev->func, p_dev->device_no, + hash[0], hash[1], hash[2], hash[3]); + } ++static DEVICE_ATTR_RO(modalias); + +-static ssize_t pcmcia_store_allow_func_id_match(struct device *dev, ++static ssize_t allow_func_id_match_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) + { + struct pcmcia_device *p_dev = to_pcmcia_dev(dev); +@@ -1088,22 +1099,24 @@ static ssize_t pcmcia_store_allow_func_i + + return count; + } ++static DEVICE_ATTR_WO(allow_func_id_match); + +-static struct device_attribute pcmcia_dev_attrs[] = { +- __ATTR(function, 0444, func_show, NULL), +- __ATTR(pm_state, 0644, pcmcia_show_pm_state, pcmcia_store_pm_state), +- __ATTR(resources, 0444, pcmcia_show_resources, NULL), +- __ATTR_RO(func_id), +- __ATTR_RO(manf_id), +- __ATTR_RO(card_id), +- __ATTR_RO(prod_id1), +- __ATTR_RO(prod_id2), +- __ATTR_RO(prod_id3), +- __ATTR_RO(prod_id4), +- __ATTR_RO(modalias), +- __ATTR(allow_func_id_match, 0200, NULL, pcmcia_store_allow_func_id_match), +- __ATTR_NULL, ++static struct attribute *pcmcia_dev_attrs[] = { ++ &dev_attr_resources.attr, ++ &dev_attr_pm_state.attr, ++ &dev_attr_function.attr, ++ &dev_attr_func_id.attr, ++ &dev_attr_manf_id.attr, ++ &dev_attr_card_id.attr, ++ &dev_attr_prod_id1.attr, ++ &dev_attr_prod_id2.attr, ++ &dev_attr_prod_id3.attr, ++ &dev_attr_prod_id4.attr, ++ &dev_attr_modalias.attr, ++ &dev_attr_allow_func_id_match.attr, ++ NULL, + }; ++ATTRIBUTE_GROUPS(pcmcia_dev); + + /* PM support, also needed for reset */ + +@@ -1389,7 +1402,7 @@ struct bus_type pcmcia_bus_type = { + .name = "pcmcia", + .uevent = pcmcia_bus_uevent, + .match = pcmcia_bus_match, +- .dev_attrs = pcmcia_dev_attrs, ++ .dev_groups = pcmcia_dev_groups, + .probe = pcmcia_device_probe, + .remove = pcmcia_device_remove, + .suspend = pcmcia_dev_suspend, |
