aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/bluecard_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/bluetooth/bluecard_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/bluetooth/bluecard_cs.c')
-rw-r--r--drivers/bluetooth/bluecard_cs.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index e557f2359cc..50174fb107a 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -85,7 +85,7 @@ typedef struct bluecard_info_t {
85} bluecard_info_t; 85} bluecard_info_t;
86 86
87 87
88static void bluecard_config(struct pcmcia_device *link); 88static int bluecard_config(struct pcmcia_device *link);
89static void bluecard_release(struct pcmcia_device *link); 89static void bluecard_release(struct pcmcia_device *link);
90 90
91static void bluecard_detach(struct pcmcia_device *p_dev); 91static void bluecard_detach(struct pcmcia_device *p_dev);
@@ -856,7 +856,7 @@ static int bluecard_close(bluecard_info_t *info)
856 return 0; 856 return 0;
857} 857}
858 858
859static int bluecard_attach(struct pcmcia_device *link) 859static int bluecard_probe(struct pcmcia_device *link)
860{ 860{
861 bluecard_info_t *info; 861 bluecard_info_t *info;
862 862
@@ -880,9 +880,7 @@ static int bluecard_attach(struct pcmcia_device *link)
880 link->conf.IntType = INT_MEMORY_AND_IO; 880 link->conf.IntType = INT_MEMORY_AND_IO;
881 881
882 link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; 882 link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
883 bluecard_config(link); 883 return bluecard_config(link);
884
885 return 0;
886} 884}
887 885
888 886
@@ -912,7 +910,7 @@ static int first_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t
912 return pcmcia_parse_tuple(handle, tuple, parse); 910 return pcmcia_parse_tuple(handle, tuple, parse);
913} 911}
914 912
915static void bluecard_config(struct pcmcia_device *link) 913static int bluecard_config(struct pcmcia_device *link)
916{ 914{
917 bluecard_info_t *info = link->priv; 915 bluecard_info_t *info = link->priv;
918 tuple_t tuple; 916 tuple_t tuple;
@@ -973,13 +971,14 @@ static void bluecard_config(struct pcmcia_device *link)
973 link->dev_node = &info->node; 971 link->dev_node = &info->node;
974 link->state &= ~DEV_CONFIG_PENDING; 972 link->state &= ~DEV_CONFIG_PENDING;
975 973
976 return; 974 return 0;
977 975
978cs_failed: 976cs_failed:
979 cs_error(link, last_fn, last_ret); 977 cs_error(link, last_fn, last_ret);
980 978
981failed: 979failed:
982 bluecard_release(link); 980 bluecard_release(link);
981 return -ENODEV;
983} 982}
984 983
985 984
@@ -1008,7 +1007,7 @@ static struct pcmcia_driver bluecard_driver = {
1008 .drv = { 1007 .drv = {
1009 .name = "bluecard_cs", 1008 .name = "bluecard_cs",
1010 }, 1009 },
1011 .probe = bluecard_attach, 1010 .probe = bluecard_probe,
1012 .remove = bluecard_detach, 1011 .remove = bluecard_detach,
1013 .id_table = bluecard_ids, 1012 .id_table = bluecard_ids,
1014}; 1013};