diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-01 18:09:29 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:26:33 -0500 |
commit | e2d4096365e06b9a3799afbadc28b4519c0b3526 (patch) | |
tree | 90ec691d71f9c0309048714e359b8ba351b533f7 /drivers/parport | |
parent | f6fbe01ac976f3ec618cd5fb71ad9ce2cfa7ab2b (diff) |
[PATCH] pcmcia: use bitfield instead of p_state and state
Instead of the two status values struct pcmcia_device->p_state and state,
use descriptive bitfields. Most value-checking in drivers was invalid, as
the core now only calls the ->remove() (a.k.a. detach) function in case the
attachement _and_ configuration was successful.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/parport')
-rw-r--r-- | drivers/parport/parport_cs.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c index e4be826c48ba..b953d5907c05 100644 --- a/drivers/parport/parport_cs.c +++ b/drivers/parport/parport_cs.c | |||
@@ -119,7 +119,6 @@ static int parport_probe(struct pcmcia_device *link) | |||
119 | link->conf.Attributes = CONF_ENABLE_IRQ; | 119 | link->conf.Attributes = CONF_ENABLE_IRQ; |
120 | link->conf.IntType = INT_MEMORY_AND_IO; | 120 | link->conf.IntType = INT_MEMORY_AND_IO; |
121 | 121 | ||
122 | link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; | ||
123 | return parport_config(link); | 122 | return parport_config(link); |
124 | } /* parport_attach */ | 123 | } /* parport_attach */ |
125 | 124 | ||
@@ -136,8 +135,7 @@ static void parport_detach(struct pcmcia_device *link) | |||
136 | { | 135 | { |
137 | DEBUG(0, "parport_detach(0x%p)\n", link); | 136 | DEBUG(0, "parport_detach(0x%p)\n", link); |
138 | 137 | ||
139 | if (link->state & DEV_CONFIG) | 138 | parport_cs_release(link); |
140 | parport_cs_release(link); | ||
141 | 139 | ||
142 | kfree(link->priv); | 140 | kfree(link->priv); |
143 | } /* parport_detach */ | 141 | } /* parport_detach */ |
@@ -175,9 +173,6 @@ static int parport_config(struct pcmcia_device *link) | |||
175 | CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, &parse)); | 173 | CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, &parse)); |
176 | link->conf.ConfigBase = parse.config.base; | 174 | link->conf.ConfigBase = parse.config.base; |
177 | link->conf.Present = parse.config.rmask[0]; | 175 | link->conf.Present = parse.config.rmask[0]; |
178 | |||
179 | /* Configure card */ | ||
180 | link->state |= DEV_CONFIG; | ||
181 | 176 | ||
182 | tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; | 177 | tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; |
183 | tuple.Attributes = 0; | 178 | tuple.Attributes = 0; |
@@ -233,14 +228,12 @@ static int parport_config(struct pcmcia_device *link) | |||
233 | strcpy(info->node.dev_name, p->name); | 228 | strcpy(info->node.dev_name, p->name); |
234 | link->dev_node = &info->node; | 229 | link->dev_node = &info->node; |
235 | 230 | ||
236 | link->state &= ~DEV_CONFIG_PENDING; | ||
237 | return 0; | 231 | return 0; |
238 | 232 | ||
239 | cs_failed: | 233 | cs_failed: |
240 | cs_error(link, last_fn, last_ret); | 234 | cs_error(link, last_fn, last_ret); |
241 | failed: | 235 | failed: |
242 | parport_cs_release(link); | 236 | parport_cs_release(link); |
243 | link->state &= ~DEV_CONFIG_PENDING; | ||
244 | return -ENODEV; | 237 | return -ENODEV; |
245 | } /* parport_config */ | 238 | } /* parport_config */ |
246 | 239 | ||