aboutsummaryrefslogtreecommitdiffstats
path: root/include/pcmcia
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-01-24 08:36:59 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2010-02-17 11:48:27 -0500
commitaa584ca4cdd8db370a524c61fd3ca408303281e9 (patch)
treedc7945721b8cdcaa88f4dc6d394c2b318c20504a /include/pcmcia
parentaf461fc1875b6ec18e23b5f670af36c4ed35c84e (diff)
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.h11
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 {
230 u8 busy:1; 230 u8 busy:1;
231 /* pcmcia module is being unloaded */ 231 /* pcmcia module is being unloaded */
232 u8 dead:1; 232 u8 dead:1;
233 /* a multifunction-device add event is pending */ 233 /* the PCMCIA card consists of two pseudo devices */
234 u8 device_add_pending:1; 234 u8 has_pfc:1;
235 /* the pending event adds a mfc (1) or pfc (0) */
236 u8 mfc_pfc:1;
237 235
238 u8 reserved:3; 236 u8 reserved:4;
239 } pcmcia_state; 237 } pcmcia_state;
240 238
241 239
242 /* for adding further pseudo-multifunction devices */
243 struct work_struct device_add;
244
245#ifdef CONFIG_PCMCIA_IOCTL 240#ifdef CONFIG_PCMCIA_IOCTL
246 struct user_info_t *user; 241 struct user_info_t *user;
247 wait_queue_head_t queue; 242 wait_queue_head_t queue;