aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia/3c574_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2006-03-31 10:26:06 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2006-03-31 10:26:06 -0500
commit15b99ac1729503db9e6dc642a50b9b6cb3bf51f9 (patch)
treecfb8897487beba502aac2b28bc35066a87e34299 /drivers/net/pcmcia/3c574_cs.c
parentfba395eee7d3f342ca739c20f5b3ee635d0420a0 (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/net/pcmcia/3c574_cs.c')
-rw-r--r--drivers/net/pcmcia/3c574_cs.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index f4e293bd04dc..4611469fdff9 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -225,7 +225,7 @@ static char mii_preamble_required = 0;
225 225
226/* Index of functions. */ 226/* Index of functions. */
227 227
228static void tc574_config(struct pcmcia_device *link); 228static int tc574_config(struct pcmcia_device *link);
229static void tc574_release(struct pcmcia_device *link); 229static void tc574_release(struct pcmcia_device *link);
230 230
231static void mdio_sync(kio_addr_t ioaddr, int bits); 231static void mdio_sync(kio_addr_t ioaddr, int bits);
@@ -256,7 +256,7 @@ static void tc574_detach(struct pcmcia_device *p_dev);
256 with Card Services. 256 with Card Services.
257*/ 257*/
258 258
259static int tc574_attach(struct pcmcia_device *link) 259static int tc574_probe(struct pcmcia_device *link)
260{ 260{
261 struct el3_private *lp; 261 struct el3_private *lp;
262 struct net_device *dev; 262 struct net_device *dev;
@@ -297,9 +297,7 @@ static int tc574_attach(struct pcmcia_device *link)
297#endif 297#endif
298 298
299 link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; 299 link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
300 tc574_config(link); 300 return tc574_config(link);
301
302 return 0;
303} /* tc574_attach */ 301} /* tc574_attach */
304 302
305/* 303/*
@@ -337,7 +335,7 @@ static void tc574_detach(struct pcmcia_device *link)
337 335
338static const char *ram_split[] = {"5:3", "3:1", "1:1", "3:5"}; 336static const char *ram_split[] = {"5:3", "3:1", "1:1", "3:5"};
339 337
340static void tc574_config(struct pcmcia_device *link) 338static int tc574_config(struct pcmcia_device *link)
341{ 339{
342 struct net_device *dev = link->priv; 340 struct net_device *dev = link->priv;
343 struct el3_private *lp = netdev_priv(dev); 341 struct el3_private *lp = netdev_priv(dev);
@@ -486,13 +484,13 @@ static void tc574_config(struct pcmcia_device *link)
486 8 << config.u.ram_size, ram_split[config.u.ram_split], 484 8 << config.u.ram_size, ram_split[config.u.ram_split],
487 config.u.autoselect ? "autoselect " : ""); 485 config.u.autoselect ? "autoselect " : "");
488 486
489 return; 487 return 0;
490 488
491cs_failed: 489cs_failed:
492 cs_error(link, last_fn, last_ret); 490 cs_error(link, last_fn, last_ret);
493failed: 491failed:
494 tc574_release(link); 492 tc574_release(link);
495 return; 493 return -ENODEV;
496 494
497} /* tc574_config */ 495} /* tc574_config */
498 496
@@ -1223,7 +1221,7 @@ static struct pcmcia_driver tc574_driver = {
1223 .drv = { 1221 .drv = {
1224 .name = "3c574_cs", 1222 .name = "3c574_cs",
1225 }, 1223 },
1226 .probe = tc574_attach, 1224 .probe = tc574_probe,
1227 .remove = tc574_detach, 1225 .remove = tc574_detach,
1228 .id_table = tc574_ids, 1226 .id_table = tc574_ids,
1229 .suspend = tc574_suspend, 1227 .suspend = tc574_suspend,