aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pcmcia/ds.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 66680699e913..19b7dacdbe7a 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -656,7 +656,7 @@ static inline void pcmcia_add_pseudo_device(struct pcmcia_bus_socket *s)
656static void pcmcia_bus_rescan(void) 656static void pcmcia_bus_rescan(void)
657{ 657{
658 /* must be called with skt_sem held */ 658 /* must be called with skt_sem held */
659 bus_rescan_devices(&pcmcia_bus_type); 659 bus_rescan_devices(&pcmcia_bus_type);
660} 660}
661 661
662static inline int pcmcia_devmatch(struct pcmcia_device *dev, 662static inline int pcmcia_devmatch(struct pcmcia_device *dev,
@@ -869,6 +869,23 @@ pcmcia_device_stringattr(prod_id2, prod_id[1]);
869pcmcia_device_stringattr(prod_id3, prod_id[2]); 869pcmcia_device_stringattr(prod_id3, prod_id[2]);
870pcmcia_device_stringattr(prod_id4, prod_id[3]); 870pcmcia_device_stringattr(prod_id4, prod_id[3]);
871 871
872
873static ssize_t pcmcia_store_allow_func_id_match (struct device * dev, struct device_attribute *attr,
874 const char * buf, size_t count)
875{
876 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
877 if (!count)
878 return -EINVAL;
879
880 down(&p_dev->socket->skt_sem);
881 p_dev->allow_func_id_match = 1;
882 up(&p_dev->socket->skt_sem);
883
884 bus_rescan_devices(&pcmcia_bus_type);
885
886 return count;
887}
888
872static struct device_attribute pcmcia_dev_attrs[] = { 889static struct device_attribute pcmcia_dev_attrs[] = {
873 __ATTR(function, 0444, func_show, NULL), 890 __ATTR(function, 0444, func_show, NULL),
874 __ATTR_RO(func_id), 891 __ATTR_RO(func_id),
@@ -878,6 +895,7 @@ static struct device_attribute pcmcia_dev_attrs[] = {
878 __ATTR_RO(prod_id2), 895 __ATTR_RO(prod_id2),
879 __ATTR_RO(prod_id3), 896 __ATTR_RO(prod_id3),
880 __ATTR_RO(prod_id4), 897 __ATTR_RO(prod_id4),
898 __ATTR(allow_func_id_match, 0200, NULL, pcmcia_store_allow_func_id_match),
881 __ATTR_NULL, 899 __ATTR_NULL,
882}; 900};
883 901