diff options
Diffstat (limited to 'drivers/scsi/pcmcia')
-rw-r--r-- | drivers/scsi/pcmcia/aha152x_stub.c | 41 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/fdomain_stub.c | 43 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/qlogic_stub.c | 44 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/sym53c500_cs.c | 41 |
4 files changed, 60 insertions, 109 deletions
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c index 67cde0138061..4329e4e5043d 100644 --- a/drivers/scsi/pcmcia/aha152x_stub.c +++ b/drivers/scsi/pcmcia/aha152x_stub.c | |||
@@ -54,15 +54,6 @@ | |||
54 | #include <pcmcia/cistpl.h> | 54 | #include <pcmcia/cistpl.h> |
55 | #include <pcmcia/ds.h> | 55 | #include <pcmcia/ds.h> |
56 | 56 | ||
57 | #ifdef PCMCIA_DEBUG | ||
58 | static int pc_debug = PCMCIA_DEBUG; | ||
59 | module_param(pc_debug, int, 0644); | ||
60 | #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args) | ||
61 | static char *version = | ||
62 | "aha152x_cs.c 1.54 2000/06/12 21:27:25 (David Hinds)"; | ||
63 | #else | ||
64 | #define DEBUG(n, args...) | ||
65 | #endif | ||
66 | 57 | ||
67 | /*====================================================================*/ | 58 | /*====================================================================*/ |
68 | 59 | ||
@@ -103,7 +94,7 @@ static int aha152x_probe(struct pcmcia_device *link) | |||
103 | { | 94 | { |
104 | scsi_info_t *info; | 95 | scsi_info_t *info; |
105 | 96 | ||
106 | DEBUG(0, "aha152x_attach()\n"); | 97 | dev_dbg(&link->dev, "aha152x_attach()\n"); |
107 | 98 | ||
108 | /* Create new SCSI device */ | 99 | /* Create new SCSI device */ |
109 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 100 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
@@ -127,7 +118,7 @@ static int aha152x_probe(struct pcmcia_device *link) | |||
127 | 118 | ||
128 | static void aha152x_detach(struct pcmcia_device *link) | 119 | static void aha152x_detach(struct pcmcia_device *link) |
129 | { | 120 | { |
130 | DEBUG(0, "aha152x_detach(0x%p)\n", link); | 121 | dev_dbg(&link->dev, "aha152x_detach\n"); |
131 | 122 | ||
132 | aha152x_release_cs(link); | 123 | aha152x_release_cs(link); |
133 | 124 | ||
@@ -137,9 +128,6 @@ static void aha152x_detach(struct pcmcia_device *link) | |||
137 | 128 | ||
138 | /*====================================================================*/ | 129 | /*====================================================================*/ |
139 | 130 | ||
140 | #define CS_CHECK(fn, ret) \ | ||
141 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
142 | |||
143 | static int aha152x_config_check(struct pcmcia_device *p_dev, | 131 | static int aha152x_config_check(struct pcmcia_device *p_dev, |
144 | cistpl_cftable_entry_t *cfg, | 132 | cistpl_cftable_entry_t *cfg, |
145 | cistpl_cftable_entry_t *dflt, | 133 | cistpl_cftable_entry_t *dflt, |
@@ -164,19 +152,22 @@ static int aha152x_config_cs(struct pcmcia_device *link) | |||
164 | { | 152 | { |
165 | scsi_info_t *info = link->priv; | 153 | scsi_info_t *info = link->priv; |
166 | struct aha152x_setup s; | 154 | struct aha152x_setup s; |
167 | int last_ret, last_fn; | 155 | int ret; |
168 | struct Scsi_Host *host; | 156 | struct Scsi_Host *host; |
169 | 157 | ||
170 | DEBUG(0, "aha152x_config(0x%p)\n", link); | 158 | dev_dbg(&link->dev, "aha152x_config\n"); |
171 | 159 | ||
172 | last_ret = pcmcia_loop_config(link, aha152x_config_check, NULL); | 160 | ret = pcmcia_loop_config(link, aha152x_config_check, NULL); |
173 | if (last_ret) { | 161 | if (ret) |
174 | cs_error(link, RequestIO, last_ret); | 162 | goto failed; |
175 | goto failed; | ||
176 | } | ||
177 | 163 | ||
178 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 164 | ret = pcmcia_request_irq(link, &link->irq); |
179 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 165 | if (ret) |
166 | goto failed; | ||
167 | |||
168 | ret = pcmcia_request_configuration(link, &link->conf); | ||
169 | if (ret) | ||
170 | goto failed; | ||
180 | 171 | ||
181 | /* Set configuration options for the aha152x driver */ | 172 | /* Set configuration options for the aha152x driver */ |
182 | memset(&s, 0, sizeof(s)); | 173 | memset(&s, 0, sizeof(s)); |
@@ -194,7 +185,7 @@ static int aha152x_config_cs(struct pcmcia_device *link) | |||
194 | host = aha152x_probe_one(&s); | 185 | host = aha152x_probe_one(&s); |
195 | if (host == NULL) { | 186 | if (host == NULL) { |
196 | printk(KERN_INFO "aha152x_cs: no SCSI devices found\n"); | 187 | printk(KERN_INFO "aha152x_cs: no SCSI devices found\n"); |
197 | goto cs_failed; | 188 | goto failed; |
198 | } | 189 | } |
199 | 190 | ||
200 | sprintf(info->node.dev_name, "scsi%d", host->host_no); | 191 | sprintf(info->node.dev_name, "scsi%d", host->host_no); |
@@ -203,8 +194,6 @@ static int aha152x_config_cs(struct pcmcia_device *link) | |||
203 | 194 | ||
204 | return 0; | 195 | return 0; |
205 | 196 | ||
206 | cs_failed: | ||
207 | cs_error(link, last_fn, last_ret); | ||
208 | failed: | 197 | failed: |
209 | aha152x_release_cs(link); | 198 | aha152x_release_cs(link); |
210 | return -ENODEV; | 199 | return -ENODEV; |
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c index 06254f46a0dd..5792b55c9d3c 100644 --- a/drivers/scsi/pcmcia/fdomain_stub.c +++ b/drivers/scsi/pcmcia/fdomain_stub.c | |||
@@ -59,16 +59,6 @@ MODULE_AUTHOR("David Hinds <dahinds@users.sourceforge.net>"); | |||
59 | MODULE_DESCRIPTION("Future Domain PCMCIA SCSI driver"); | 59 | MODULE_DESCRIPTION("Future Domain PCMCIA SCSI driver"); |
60 | MODULE_LICENSE("Dual MPL/GPL"); | 60 | MODULE_LICENSE("Dual MPL/GPL"); |
61 | 61 | ||
62 | #ifdef PCMCIA_DEBUG | ||
63 | static int pc_debug = PCMCIA_DEBUG; | ||
64 | module_param(pc_debug, int, 0); | ||
65 | #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args) | ||
66 | static char *version = | ||
67 | "fdomain_cs.c 1.47 2001/10/13 00:08:52 (David Hinds)"; | ||
68 | #else | ||
69 | #define DEBUG(n, args...) | ||
70 | #endif | ||
71 | |||
72 | /*====================================================================*/ | 62 | /*====================================================================*/ |
73 | 63 | ||
74 | typedef struct scsi_info_t { | 64 | typedef struct scsi_info_t { |
@@ -86,7 +76,7 @@ static int fdomain_probe(struct pcmcia_device *link) | |||
86 | { | 76 | { |
87 | scsi_info_t *info; | 77 | scsi_info_t *info; |
88 | 78 | ||
89 | DEBUG(0, "fdomain_attach()\n"); | 79 | dev_dbg(&link->dev, "fdomain_attach()\n"); |
90 | 80 | ||
91 | /* Create new SCSI device */ | 81 | /* Create new SCSI device */ |
92 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 82 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
@@ -111,7 +101,7 @@ static int fdomain_probe(struct pcmcia_device *link) | |||
111 | 101 | ||
112 | static void fdomain_detach(struct pcmcia_device *link) | 102 | static void fdomain_detach(struct pcmcia_device *link) |
113 | { | 103 | { |
114 | DEBUG(0, "fdomain_detach(0x%p)\n", link); | 104 | dev_dbg(&link->dev, "fdomain_detach\n"); |
115 | 105 | ||
116 | fdomain_release(link); | 106 | fdomain_release(link); |
117 | 107 | ||
@@ -120,9 +110,6 @@ static void fdomain_detach(struct pcmcia_device *link) | |||
120 | 110 | ||
121 | /*====================================================================*/ | 111 | /*====================================================================*/ |
122 | 112 | ||
123 | #define CS_CHECK(fn, ret) \ | ||
124 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
125 | |||
126 | static int fdomain_config_check(struct pcmcia_device *p_dev, | 113 | static int fdomain_config_check(struct pcmcia_device *p_dev, |
127 | cistpl_cftable_entry_t *cfg, | 114 | cistpl_cftable_entry_t *cfg, |
128 | cistpl_cftable_entry_t *dflt, | 115 | cistpl_cftable_entry_t *dflt, |
@@ -137,20 +124,22 @@ static int fdomain_config_check(struct pcmcia_device *p_dev, | |||
137 | static int fdomain_config(struct pcmcia_device *link) | 124 | static int fdomain_config(struct pcmcia_device *link) |
138 | { | 125 | { |
139 | scsi_info_t *info = link->priv; | 126 | scsi_info_t *info = link->priv; |
140 | int last_ret, last_fn; | 127 | int ret; |
141 | char str[22]; | 128 | char str[22]; |
142 | struct Scsi_Host *host; | 129 | struct Scsi_Host *host; |
143 | 130 | ||
144 | DEBUG(0, "fdomain_config(0x%p)\n", link); | 131 | dev_dbg(&link->dev, "fdomain_config\n"); |
145 | 132 | ||
146 | last_ret = pcmcia_loop_config(link, fdomain_config_check, NULL); | 133 | ret = pcmcia_loop_config(link, fdomain_config_check, NULL); |
147 | if (last_ret) { | 134 | if (ret) |
148 | cs_error(link, RequestIO, last_ret); | ||
149 | goto failed; | 135 | goto failed; |
150 | } | ||
151 | 136 | ||
152 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 137 | ret = pcmcia_request_irq(link, &link->irq); |
153 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 138 | if (ret) |
139 | goto failed; | ||
140 | ret = pcmcia_request_configuration(link, &link->conf); | ||
141 | if (ret) | ||
142 | goto failed; | ||
154 | 143 | ||
155 | /* A bad hack... */ | 144 | /* A bad hack... */ |
156 | release_region(link->io.BasePort1, link->io.NumPorts1); | 145 | release_region(link->io.BasePort1, link->io.NumPorts1); |
@@ -162,11 +151,11 @@ static int fdomain_config(struct pcmcia_device *link) | |||
162 | host = __fdomain_16x0_detect(&fdomain_driver_template); | 151 | host = __fdomain_16x0_detect(&fdomain_driver_template); |
163 | if (!host) { | 152 | if (!host) { |
164 | printk(KERN_INFO "fdomain_cs: no SCSI devices found\n"); | 153 | printk(KERN_INFO "fdomain_cs: no SCSI devices found\n"); |
165 | goto cs_failed; | 154 | goto failed; |
166 | } | 155 | } |
167 | 156 | ||
168 | if (scsi_add_host(host, NULL)) | 157 | if (scsi_add_host(host, NULL)) |
169 | goto cs_failed; | 158 | goto failed; |
170 | scsi_scan_host(host); | 159 | scsi_scan_host(host); |
171 | 160 | ||
172 | sprintf(info->node.dev_name, "scsi%d", host->host_no); | 161 | sprintf(info->node.dev_name, "scsi%d", host->host_no); |
@@ -175,8 +164,6 @@ static int fdomain_config(struct pcmcia_device *link) | |||
175 | 164 | ||
176 | return 0; | 165 | return 0; |
177 | 166 | ||
178 | cs_failed: | ||
179 | cs_error(link, last_fn, last_ret); | ||
180 | failed: | 167 | failed: |
181 | fdomain_release(link); | 168 | fdomain_release(link); |
182 | return -ENODEV; | 169 | return -ENODEV; |
@@ -188,7 +175,7 @@ static void fdomain_release(struct pcmcia_device *link) | |||
188 | { | 175 | { |
189 | scsi_info_t *info = link->priv; | 176 | scsi_info_t *info = link->priv; |
190 | 177 | ||
191 | DEBUG(0, "fdomain_release(0x%p)\n", link); | 178 | dev_dbg(&link->dev, "fdomain_release\n"); |
192 | 179 | ||
193 | scsi_remove_host(info->host); | 180 | scsi_remove_host(info->host); |
194 | pcmcia_disable_device(link); | 181 | pcmcia_disable_device(link); |
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c index 20c3e5e6d88a..65d7ad58433f 100644 --- a/drivers/scsi/pcmcia/qlogic_stub.c +++ b/drivers/scsi/pcmcia/qlogic_stub.c | |||
@@ -62,15 +62,6 @@ | |||
62 | 62 | ||
63 | static char qlogic_name[] = "qlogic_cs"; | 63 | static char qlogic_name[] = "qlogic_cs"; |
64 | 64 | ||
65 | #ifdef PCMCIA_DEBUG | ||
66 | static int pc_debug = PCMCIA_DEBUG; | ||
67 | module_param(pc_debug, int, 0644); | ||
68 | #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args) | ||
69 | static char *version = "qlogic_cs.c 1.79-ac 2002/10/26 (David Hinds)"; | ||
70 | #else | ||
71 | #define DEBUG(n, args...) | ||
72 | #endif | ||
73 | |||
74 | static struct scsi_host_template qlogicfas_driver_template = { | 65 | static struct scsi_host_template qlogicfas_driver_template = { |
75 | .module = THIS_MODULE, | 66 | .module = THIS_MODULE, |
76 | .name = qlogic_name, | 67 | .name = qlogic_name, |
@@ -159,7 +150,7 @@ static int qlogic_probe(struct pcmcia_device *link) | |||
159 | { | 150 | { |
160 | scsi_info_t *info; | 151 | scsi_info_t *info; |
161 | 152 | ||
162 | DEBUG(0, "qlogic_attach()\n"); | 153 | dev_dbg(&link->dev, "qlogic_attach()\n"); |
163 | 154 | ||
164 | /* Create new SCSI device */ | 155 | /* Create new SCSI device */ |
165 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 156 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
@@ -183,7 +174,7 @@ static int qlogic_probe(struct pcmcia_device *link) | |||
183 | 174 | ||
184 | static void qlogic_detach(struct pcmcia_device *link) | 175 | static void qlogic_detach(struct pcmcia_device *link) |
185 | { | 176 | { |
186 | DEBUG(0, "qlogic_detach(0x%p)\n", link); | 177 | dev_dbg(&link->dev, "qlogic_detach\n"); |
187 | 178 | ||
188 | qlogic_release(link); | 179 | qlogic_release(link); |
189 | kfree(link->priv); | 180 | kfree(link->priv); |
@@ -192,9 +183,6 @@ static void qlogic_detach(struct pcmcia_device *link) | |||
192 | 183 | ||
193 | /*====================================================================*/ | 184 | /*====================================================================*/ |
194 | 185 | ||
195 | #define CS_CHECK(fn, ret) \ | ||
196 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
197 | |||
198 | static int qlogic_config_check(struct pcmcia_device *p_dev, | 186 | static int qlogic_config_check(struct pcmcia_device *p_dev, |
199 | cistpl_cftable_entry_t *cfg, | 187 | cistpl_cftable_entry_t *cfg, |
200 | cistpl_cftable_entry_t *dflt, | 188 | cistpl_cftable_entry_t *dflt, |
@@ -213,19 +201,22 @@ static int qlogic_config_check(struct pcmcia_device *p_dev, | |||
213 | static int qlogic_config(struct pcmcia_device * link) | 201 | static int qlogic_config(struct pcmcia_device * link) |
214 | { | 202 | { |
215 | scsi_info_t *info = link->priv; | 203 | scsi_info_t *info = link->priv; |
216 | int last_ret, last_fn; | 204 | int ret; |
217 | struct Scsi_Host *host; | 205 | struct Scsi_Host *host; |
218 | 206 | ||
219 | DEBUG(0, "qlogic_config(0x%p)\n", link); | 207 | dev_dbg(&link->dev, "qlogic_config\n"); |
220 | 208 | ||
221 | last_ret = pcmcia_loop_config(link, qlogic_config_check, NULL); | 209 | ret = pcmcia_loop_config(link, qlogic_config_check, NULL); |
222 | if (last_ret) { | 210 | if (ret) |
223 | cs_error(link, RequestIO, last_ret); | 211 | goto failed; |
212 | |||
213 | ret = pcmcia_request_irq(link, &link->irq); | ||
214 | if (ret) | ||
224 | goto failed; | 215 | goto failed; |
225 | } | ||
226 | 216 | ||
227 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 217 | ret = pcmcia_request_configuration(link, &link->conf); |
228 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 218 | if (ret) |
219 | goto failed; | ||
229 | 220 | ||
230 | if ((info->manf_id == MANFID_MACNICA) || (info->manf_id == MANFID_PIONEER) || (info->manf_id == 0x0098)) { | 221 | if ((info->manf_id == MANFID_MACNICA) || (info->manf_id == MANFID_PIONEER) || (info->manf_id == 0x0098)) { |
231 | /* set ATAcmd */ | 222 | /* set ATAcmd */ |
@@ -244,7 +235,7 @@ static int qlogic_config(struct pcmcia_device * link) | |||
244 | 235 | ||
245 | if (!host) { | 236 | if (!host) { |
246 | printk(KERN_INFO "%s: no SCSI devices found\n", qlogic_name); | 237 | printk(KERN_INFO "%s: no SCSI devices found\n", qlogic_name); |
247 | goto cs_failed; | 238 | goto failed; |
248 | } | 239 | } |
249 | 240 | ||
250 | sprintf(info->node.dev_name, "scsi%d", host->host_no); | 241 | sprintf(info->node.dev_name, "scsi%d", host->host_no); |
@@ -253,12 +244,9 @@ static int qlogic_config(struct pcmcia_device * link) | |||
253 | 244 | ||
254 | return 0; | 245 | return 0; |
255 | 246 | ||
256 | cs_failed: | ||
257 | cs_error(link, last_fn, last_ret); | ||
258 | pcmcia_disable_device(link); | ||
259 | failed: | 247 | failed: |
248 | pcmcia_disable_device(link); | ||
260 | return -ENODEV; | 249 | return -ENODEV; |
261 | |||
262 | } /* qlogic_config */ | 250 | } /* qlogic_config */ |
263 | 251 | ||
264 | /*====================================================================*/ | 252 | /*====================================================================*/ |
@@ -267,7 +255,7 @@ static void qlogic_release(struct pcmcia_device *link) | |||
267 | { | 255 | { |
268 | scsi_info_t *info = link->priv; | 256 | scsi_info_t *info = link->priv; |
269 | 257 | ||
270 | DEBUG(0, "qlogic_release(0x%p)\n", link); | 258 | dev_dbg(&link->dev, "qlogic_release\n"); |
271 | 259 | ||
272 | scsi_remove_host(info->host); | 260 | scsi_remove_host(info->host); |
273 | 261 | ||
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c index b330c11a1752..851a41ce4f06 100644 --- a/drivers/scsi/pcmcia/sym53c500_cs.c +++ b/drivers/scsi/pcmcia/sym53c500_cs.c | |||
@@ -77,17 +77,6 @@ | |||
77 | #include <pcmcia/ds.h> | 77 | #include <pcmcia/ds.h> |
78 | #include <pcmcia/ciscode.h> | 78 | #include <pcmcia/ciscode.h> |
79 | 79 | ||
80 | /* ================================================================== */ | ||
81 | |||
82 | #ifdef PCMCIA_DEBUG | ||
83 | static int pc_debug = PCMCIA_DEBUG; | ||
84 | module_param(pc_debug, int, 0); | ||
85 | #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args) | ||
86 | static char *version = | ||
87 | "sym53c500_cs.c 0.9c 2004/10/27 (Bob Tracy)"; | ||
88 | #else | ||
89 | #define DEBUG(n, args...) | ||
90 | #endif | ||
91 | 80 | ||
92 | /* ================================================================== */ | 81 | /* ================================================================== */ |
93 | 82 | ||
@@ -525,7 +514,7 @@ SYM53C500_release(struct pcmcia_device *link) | |||
525 | struct scsi_info_t *info = link->priv; | 514 | struct scsi_info_t *info = link->priv; |
526 | struct Scsi_Host *shost = info->host; | 515 | struct Scsi_Host *shost = info->host; |
527 | 516 | ||
528 | DEBUG(0, "SYM53C500_release(0x%p)\n", link); | 517 | dev_dbg(&link->dev, "SYM53C500_release\n"); |
529 | 518 | ||
530 | /* | 519 | /* |
531 | * Do this before releasing/freeing resources. | 520 | * Do this before releasing/freeing resources. |
@@ -697,9 +686,6 @@ static struct scsi_host_template sym53c500_driver_template = { | |||
697 | .shost_attrs = SYM53C500_shost_attrs | 686 | .shost_attrs = SYM53C500_shost_attrs |
698 | }; | 687 | }; |
699 | 688 | ||
700 | #define CS_CHECK(fn, ret) \ | ||
701 | do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) | ||
702 | |||
703 | static int SYM53C500_config_check(struct pcmcia_device *p_dev, | 689 | static int SYM53C500_config_check(struct pcmcia_device *p_dev, |
704 | cistpl_cftable_entry_t *cfg, | 690 | cistpl_cftable_entry_t *cfg, |
705 | cistpl_cftable_entry_t *dflt, | 691 | cistpl_cftable_entry_t *dflt, |
@@ -719,24 +705,27 @@ static int | |||
719 | SYM53C500_config(struct pcmcia_device *link) | 705 | SYM53C500_config(struct pcmcia_device *link) |
720 | { | 706 | { |
721 | struct scsi_info_t *info = link->priv; | 707 | struct scsi_info_t *info = link->priv; |
722 | int last_ret, last_fn; | 708 | int ret; |
723 | int irq_level, port_base; | 709 | int irq_level, port_base; |
724 | struct Scsi_Host *host; | 710 | struct Scsi_Host *host; |
725 | struct scsi_host_template *tpnt = &sym53c500_driver_template; | 711 | struct scsi_host_template *tpnt = &sym53c500_driver_template; |
726 | struct sym53c500_data *data; | 712 | struct sym53c500_data *data; |
727 | 713 | ||
728 | DEBUG(0, "SYM53C500_config(0x%p)\n", link); | 714 | dev_dbg(&link->dev, "SYM53C500_config\n"); |
729 | 715 | ||
730 | info->manf_id = link->manf_id; | 716 | info->manf_id = link->manf_id; |
731 | 717 | ||
732 | last_ret = pcmcia_loop_config(link, SYM53C500_config_check, NULL); | 718 | ret = pcmcia_loop_config(link, SYM53C500_config_check, NULL); |
733 | if (last_ret) { | 719 | if (ret) |
734 | cs_error(link, RequestIO, last_ret); | 720 | goto failed; |
721 | |||
722 | ret = pcmcia_request_irq(link, &link->irq); | ||
723 | if (ret) | ||
735 | goto failed; | 724 | goto failed; |
736 | } | ||
737 | 725 | ||
738 | CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); | 726 | ret = pcmcia_request_configuration(link, &link->conf); |
739 | CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); | 727 | if (ret) |
728 | goto failed; | ||
740 | 729 | ||
741 | /* | 730 | /* |
742 | * That's the trouble with copying liberally from another driver. | 731 | * That's the trouble with copying liberally from another driver. |
@@ -824,8 +813,6 @@ err_release: | |||
824 | printk(KERN_INFO "sym53c500_cs: no SCSI devices found\n"); | 813 | printk(KERN_INFO "sym53c500_cs: no SCSI devices found\n"); |
825 | return -ENODEV; | 814 | return -ENODEV; |
826 | 815 | ||
827 | cs_failed: | ||
828 | cs_error(link, last_fn, last_ret); | ||
829 | failed: | 816 | failed: |
830 | SYM53C500_release(link); | 817 | SYM53C500_release(link); |
831 | return -ENODEV; | 818 | return -ENODEV; |
@@ -855,7 +842,7 @@ static int sym53c500_resume(struct pcmcia_device *link) | |||
855 | static void | 842 | static void |
856 | SYM53C500_detach(struct pcmcia_device *link) | 843 | SYM53C500_detach(struct pcmcia_device *link) |
857 | { | 844 | { |
858 | DEBUG(0, "SYM53C500_detach(0x%p)\n", link); | 845 | dev_dbg(&link->dev, "SYM53C500_detach\n"); |
859 | 846 | ||
860 | SYM53C500_release(link); | 847 | SYM53C500_release(link); |
861 | 848 | ||
@@ -868,7 +855,7 @@ SYM53C500_probe(struct pcmcia_device *link) | |||
868 | { | 855 | { |
869 | struct scsi_info_t *info; | 856 | struct scsi_info_t *info; |
870 | 857 | ||
871 | DEBUG(0, "SYM53C500_attach()\n"); | 858 | dev_dbg(&link->dev, "SYM53C500_attach()\n"); |
872 | 859 | ||
873 | /* Create new SCSI device */ | 860 | /* Create new SCSI device */ |
874 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 861 | info = kzalloc(sizeof(*info), GFP_KERNEL); |