aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlex Dubov <oakad@yahoo.com>2006-12-10 09:55:33 -0500
committerPierre Ossman <drzeus@drzeus.cx>2007-02-04 14:54:09 -0500
commit6412d927313f08808d61b7efba8da43717d4e8d2 (patch)
tree5fc40ebbf578a9d7cd15fa8d61236f270ac4f6b8 /include
parent1499ead31ede528a657c50761c4780c40f929d6d (diff)
tifm_7xx1: Merge media insert and media remove functions
Hardware does not say whether card was inserted or removed when reporting socket events. Moreover, during suspend, media can be removed or switched to some other card type without notification. Therefore, for each socket in the change set the following is performed: 1. If there's active device in the socket it's unregistered 2. Media detection is performed 3. If detection recognizes supportable media, new device is registered This patch also alters some macros and variable names to enhance clarity. Signed-off-by: Alex Dubov <oakad@yahoo.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'include')
-rw-r--r--include/linux/tifm.h19
1 files changed, 8 insertions, 11 deletions
diff --git a/include/linux/tifm.h b/include/linux/tifm.h
index 5b0baef4e61f..eaf9e1f48780 100644
--- a/include/linux/tifm.h
+++ b/include/linux/tifm.h
@@ -62,11 +62,10 @@ enum {
62 62
63 63
64#define TIFM_IRQ_ENABLE 0x80000000 64#define TIFM_IRQ_ENABLE 0x80000000
65#define TIFM_IRQ_SOCKMASK 0x00000001 65#define TIFM_IRQ_SOCKMASK(x) (x)
66#define TIFM_IRQ_CARDMASK 0x00000100 66#define TIFM_IRQ_CARDMASK(x) ((x) << 8)
67#define TIFM_IRQ_FIFOMASK 0x00010000 67#define TIFM_IRQ_FIFOMASK(x) ((x) << 16)
68#define TIFM_IRQ_SETALL 0xffffffff 68#define TIFM_IRQ_SETALL 0xffffffff
69#define TIFM_IRQ_SETALLSOCK 0x0000000f
70 69
71#define TIFM_CTRL_LED 0x00000040 70#define TIFM_CTRL_LED 0x00000040
72#define TIFM_CTRL_FAST_CLK 0x00000100 71#define TIFM_CTRL_FAST_CLK 0x00000100
@@ -108,18 +107,16 @@ struct tifm_driver {
108 107
109struct tifm_adapter { 108struct tifm_adapter {
110 char __iomem *addr; 109 char __iomem *addr;
111 unsigned int irq_status;
112 unsigned int insert_mask;
113 unsigned int remove_mask;
114 spinlock_t lock; 110 spinlock_t lock;
111 unsigned int irq_status;
112 unsigned int socket_change_set;
115 unsigned int id; 113 unsigned int id;
116 unsigned int max_sockets; 114 unsigned int num_sockets;
115 struct tifm_dev **sockets;
117 char wq_name[KOBJ_NAME_LEN]; 116 char wq_name[KOBJ_NAME_LEN];
118 unsigned int inhibit_new_cards; 117 unsigned int inhibit_new_cards;
119 struct workqueue_struct *wq; 118 struct workqueue_struct *wq;
120 struct work_struct media_inserter; 119 struct work_struct media_switcher;
121 struct work_struct media_remover;
122 struct tifm_dev **sockets;
123 struct class_device cdev; 120 struct class_device cdev;
124 struct device *dev; 121 struct device *dev;
125 122