diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:26:06 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:26:06 -0500 |
commit | 15b99ac1729503db9e6dc642a50b9b6cb3bf51f9 (patch) | |
tree | cfb8897487beba502aac2b28bc35066a87e34299 /drivers/usb/host/sl811_cs.c | |
parent | fba395eee7d3f342ca739c20f5b3ee635d0420a0 (diff) |
[PATCH] pcmcia: add return value to _config() functions
Most of the driver initialization isn't done in the .probe function, but in
the internal _config() functions. Make them return a value, so that .probe
can properly report whether the probing of the device succeeded or not.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/usb/host/sl811_cs.c')
-rw-r--r-- | drivers/usb/host/sl811_cs.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c index bfa8b213e137..e8b8e9a93084 100644 --- a/drivers/usb/host/sl811_cs.c +++ b/drivers/usb/host/sl811_cs.c | |||
@@ -158,7 +158,7 @@ static void sl811_cs_release(struct pcmcia_device * link) | |||
158 | platform_device_unregister(&platform_dev); | 158 | platform_device_unregister(&platform_dev); |
159 | } | 159 | } |
160 | 160 | ||
161 | static void sl811_cs_config(struct pcmcia_device *link) | 161 | static int sl811_cs_config(struct pcmcia_device *link) |
162 | { | 162 | { |
163 | struct device *parent = &handle_to_dev(link); | 163 | struct device *parent = &handle_to_dev(link); |
164 | local_info_t *dev = link->priv; | 164 | local_info_t *dev = link->priv; |
@@ -285,10 +285,12 @@ cs_failed: | |||
285 | cs_error(link, last_fn, last_ret); | 285 | cs_error(link, last_fn, last_ret); |
286 | sl811_cs_release(link); | 286 | sl811_cs_release(link); |
287 | link->state &= ~DEV_CONFIG_PENDING; | 287 | link->state &= ~DEV_CONFIG_PENDING; |
288 | return -ENODEV; | ||
288 | } | 289 | } |
290 | return 0; | ||
289 | } | 291 | } |
290 | 292 | ||
291 | static int sl811_cs_attach(struct pcmcia_device *link) | 293 | static int sl811_cs_probe(struct pcmcia_device *link) |
292 | { | 294 | { |
293 | local_info_t *local; | 295 | local_info_t *local; |
294 | 296 | ||
@@ -308,9 +310,7 @@ static int sl811_cs_attach(struct pcmcia_device *link) | |||
308 | link->conf.IntType = INT_MEMORY_AND_IO; | 310 | link->conf.IntType = INT_MEMORY_AND_IO; |
309 | 311 | ||
310 | link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; | 312 | link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; |
311 | sl811_cs_config(link); | 313 | return sl811_cs_config(link); |
312 | |||
313 | return 0; | ||
314 | } | 314 | } |
315 | 315 | ||
316 | static struct pcmcia_device_id sl811_ids[] = { | 316 | static struct pcmcia_device_id sl811_ids[] = { |
@@ -324,7 +324,7 @@ static struct pcmcia_driver sl811_cs_driver = { | |||
324 | .drv = { | 324 | .drv = { |
325 | .name = (char *)driver_name, | 325 | .name = (char *)driver_name, |
326 | }, | 326 | }, |
327 | .probe = sl811_cs_attach, | 327 | .probe = sl811_cs_probe, |
328 | .remove = sl811_cs_detach, | 328 | .remove = sl811_cs_detach, |
329 | .id_table = sl811_ids, | 329 | .id_table = sl811_ids, |
330 | }; | 330 | }; |