diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-01-24 14:36:59 +0100 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-02-17 17:48:27 +0100 |
commit | aa584ca4cdd8db370a524c61fd3ca408303281e9 (patch) | |
tree | dc7945721b8cdcaa88f4dc6d394c2b318c20504a /include/pcmcia | |
parent | af461fc1875b6ec18e23b5f670af36c4ed35c84e (diff) | |
download | lwn-aa584ca4cdd8db370a524c61fd3ca408303281e9.tar.gz lwn-aa584ca4cdd8db370a524c61fd3ca408303281e9.zip |
pcmcia: use state machine for extended requery
The requery callback now also handles the addition of a second pseudo
multifunction device. Avoids messing with dev_{g,s}et_drvdata(), and
fixes any workqueue <-> skt_mutex deadlock.
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'include/pcmcia')
-rw-r--r-- | include/pcmcia/ss.h | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h index ea5dec8c0d76..32896a773910 100644 --- a/include/pcmcia/ss.h +++ b/include/pcmcia/ss.h @@ -230,18 +230,13 @@ struct pcmcia_socket { u8 busy:1; /* pcmcia module is being unloaded */ u8 dead:1; - /* a multifunction-device add event is pending */ - u8 device_add_pending:1; - /* the pending event adds a mfc (1) or pfc (0) */ - u8 mfc_pfc:1; + /* the PCMCIA card consists of two pseudo devices */ + u8 has_pfc:1; - u8 reserved:3; + u8 reserved:4; } pcmcia_state; - /* for adding further pseudo-multifunction devices */ - struct work_struct device_add; - #ifdef CONFIG_PCMCIA_IOCTL struct user_info_t *user; wait_queue_head_t queue; |