diff options
author | Bernhard Walle <bwalle@suse.de> | 2007-05-06 14:48:44 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 12:12:50 -0700 |
commit | 6179b5562d5d17c7c09b54cb11dd925ca308d7a9 (patch) | |
tree | 2f740d0f653678557a5601c6dffed1287b9aa513 /include | |
parent | 02c83595b86480ee4d61665beb13f76685d40239 (diff) | |
download | op-kernel-dev-6179b5562d5d17c7c09b54cb11dd925ca308d7a9.zip op-kernel-dev-6179b5562d5d17c7c09b54cb11dd925ca308d7a9.tar.gz |
add new_id to PCMCIA drivers
PCI drivers have the new_id file in sysfs which allows new IDs to be added
at runtime. The advantage is to avoid re-compilation of a driver that
works for a new device, but it's ID table doesn't contain the new device.
This mechanism is only meant for testing, after the driver has been tested
successfully, the ID should be added in source code so that new revisions
of the kernel automatically detect the device.
The implementation follows the PCI implementation. The interface is documented
in Documentation/pcmcia/driver.txt. Computations should be done in userspace,
so the sysfs string contains the raw structure members for matching.
Signed-off-by: Bernhard Walle <bwalle@suse.de>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/pcmcia/ds.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h index 8c339f5..90ef552 100644 --- a/include/pcmcia/ds.h +++ b/include/pcmcia/ds.h @@ -108,6 +108,11 @@ typedef struct dev_node_t { struct pcmcia_socket; struct config_t; +struct pcmcia_dynids { + spinlock_t lock; + struct list_head list; +}; + struct pcmcia_driver { int (*probe) (struct pcmcia_device *dev); void (*remove) (struct pcmcia_device *dev); @@ -118,6 +123,7 @@ struct pcmcia_driver { struct module *owner; struct pcmcia_device_id *id_table; struct device_driver drv; + struct pcmcia_dynids dynids; }; /* driver registration */ |