]> err.no Git - linux-2.6/blobdiff - include/pcmcia/ds.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / include / pcmcia / ds.h
index a8ce8fc115146efd02b52613e3788d77a475fe14..f047a1fd64f803a887ce40430a7e14a86d0e4627 100644 (file)
@@ -104,16 +104,15 @@ typedef struct dev_node_t {
     struct dev_node_t  *next;
 } dev_node_t;
 
-#define pcmcia_dev_present(p_dev) \
-    (p_dev->socket->pcmcia_state.present)
-
-#define DEV_OK(l) \
-    ((l) && (!l->suspended) && pcmcia_dev_present(l))
-
 
 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);
@@ -124,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 */
@@ -155,8 +155,10 @@ struct pcmcia_device {
        config_req_t            conf;
        window_handle_t         win;
 
-       /* Is the device suspended? */
+       /* Is the device suspended, or in the process of
+        * being removed? */
        u16                     suspended:1;
+       u16                     _removed:1;
 
        /* Flags whether io, irq, win configurations were
         * requested, and whether the configuration is "locked" */
@@ -174,7 +176,7 @@ struct pcmcia_device {
        u16                     has_card_id:1;
        u16                     has_func_id:1;
 
-       u16                     reserved:4;
+       u16                     reserved:3;
 
        u8                      func_id;
        u16                     manf_id;
@@ -182,6 +184,7 @@ struct pcmcia_device {
 
        char *                  prod_id[4];
 
+       u64                     dma_mask;
        struct device           dev;
 
 #ifdef CONFIG_PCMCIA_IOCTL