aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pcmcia/pcmcia_compat.c34
-rw-r--r--drivers/pcmcia/pcmcia_ioctl.c23
-rw-r--r--drivers/pcmcia/pcmcia_resource.c62
-rw-r--r--include/pcmcia/cs.h1
4 files changed, 58 insertions, 62 deletions
diff --git a/drivers/pcmcia/pcmcia_compat.c b/drivers/pcmcia/pcmcia_compat.c
index 68b80084f83f..1cc83317e7e3 100644
--- a/drivers/pcmcia/pcmcia_compat.c
+++ b/drivers/pcmcia/pcmcia_compat.c
@@ -74,19 +74,6 @@ int pcmcia_validate_cis(client_handle_t handle, cisinfo_t *info)
74} 74}
75EXPORT_SYMBOL(pcmcia_validate_cis); 75EXPORT_SYMBOL(pcmcia_validate_cis);
76 76
77int pcmcia_get_configuration_info(client_handle_t handle,
78 config_info_t *config)
79{
80 struct pcmcia_socket *s;
81
82 if ((CHECK_HANDLE(handle)) || !config)
83 return CS_BAD_HANDLE;
84 s = SOCKET(handle);
85 if (!s)
86 return CS_BAD_HANDLE;
87 return pccard_get_configuration_info(s, handle->Function, config);
88}
89EXPORT_SYMBOL(pcmcia_get_configuration_info);
90 77
91int pcmcia_reset_card(client_handle_t handle, client_req_t *req) 78int pcmcia_reset_card(client_handle_t handle, client_req_t *req)
92{ 79{
@@ -102,24 +89,3 @@ int pcmcia_reset_card(client_handle_t handle, client_req_t *req)
102} 89}
103EXPORT_SYMBOL(pcmcia_reset_card); 90EXPORT_SYMBOL(pcmcia_reset_card);
104 91
105int pcmcia_get_status(client_handle_t handle, cs_status_t *status)
106{
107 struct pcmcia_socket *s;
108 if (CHECK_HANDLE(handle))
109 return CS_BAD_HANDLE;
110 s = SOCKET(handle);
111 return pccard_get_status(s, handle->Function, status);
112}
113EXPORT_SYMBOL(pcmcia_get_status);
114
115int pcmcia_access_configuration_register(client_handle_t handle,
116 conf_reg_t *reg)
117{
118 struct pcmcia_socket *s;
119 if (CHECK_HANDLE(handle))
120 return CS_BAD_HANDLE;
121 s = SOCKET(handle);
122 return pccard_access_configuration_register(s, handle->Function, reg);
123}
124EXPORT_SYMBOL(pcmcia_access_configuration_register);
125
diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c
index fa2a79d29e16..3084d8a3ba41 100644
--- a/drivers/pcmcia/pcmcia_ioctl.c
+++ b/drivers/pcmcia/pcmcia_ioctl.c
@@ -71,6 +71,29 @@ extern int ds_pc_debug;
71#define ds_dbg(lvl, fmt, arg...) do { } while (0) 71#define ds_dbg(lvl, fmt, arg...) do { } while (0)
72#endif 72#endif
73 73
74static const char *release = "Linux Kernel Card Services";
75
76/** pcmcia_get_card_services_info
77 *
78 * Return information about this version of Card Services
79 */
80static int pcmcia_get_card_services_info(servinfo_t *info)
81{
82 unsigned int socket_count = 0;
83 struct list_head *tmp;
84 info->Signature[0] = 'C';
85 info->Signature[1] = 'S';
86 down_read(&pcmcia_socket_list_rwsem);
87 list_for_each(tmp, &pcmcia_socket_list)
88 socket_count++;
89 up_read(&pcmcia_socket_list_rwsem);
90 info->Count = socket_count;
91 info->Revision = CS_RELEASE_CODE;
92 info->CSLevel = 0x0210;
93 info->VendorString = (char *)release;
94 return CS_SUCCESS;
95} /* get_card_services_info */
96
74 97
75/* backwards-compatible accessing of driver --- by name! */ 98/* backwards-compatible accessing of driver --- by name! */
76 99
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index cf66b9978942..9ed3d4a9b99c 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -36,8 +36,6 @@
36#include "ds_internal.h" 36#include "ds_internal.h"
37 37
38 38
39static const char *release = "Linux Kernel Card Services";
40
41/* Access speed for IO windows */ 39/* Access speed for IO windows */
42static int io_speed = 0; 40static int io_speed = 0;
43module_param(io_speed, int, 0444); 41module_param(io_speed, int, 0444);
@@ -202,7 +200,18 @@ int pccard_access_configuration_register(struct pcmcia_socket *s,
202 } 200 }
203 return CS_SUCCESS; 201 return CS_SUCCESS;
204} /* pccard_access_configuration_register */ 202} /* pccard_access_configuration_register */
205EXPORT_SYMBOL(pccard_access_configuration_register); 203
204int pcmcia_access_configuration_register(client_handle_t handle,
205 conf_reg_t *reg)
206{
207 struct pcmcia_socket *s;
208 if (CHECK_HANDLE(handle))
209 return CS_BAD_HANDLE;
210 s = SOCKET(handle);
211 return pccard_access_configuration_register(s, handle->Function, reg);
212}
213EXPORT_SYMBOL(pcmcia_access_configuration_register);
214
206 215
207 216
208int pccard_get_configuration_info(struct pcmcia_socket *s, 217int pccard_get_configuration_info(struct pcmcia_socket *s,
@@ -260,31 +269,20 @@ int pccard_get_configuration_info(struct pcmcia_socket *s,
260 269
261 return CS_SUCCESS; 270 return CS_SUCCESS;
262} /* pccard_get_configuration_info */ 271} /* pccard_get_configuration_info */
263EXPORT_SYMBOL(pccard_get_configuration_info);
264 272
265 273int pcmcia_get_configuration_info(client_handle_t handle,
266/** pcmcia_get_card_services_info 274 config_info_t *config)
267 *
268 * Return information about this version of Card Services
269 */
270
271int pcmcia_get_card_services_info(servinfo_t *info)
272{ 275{
273 unsigned int socket_count = 0; 276 struct pcmcia_socket *s;
274 struct list_head *tmp; 277
275 info->Signature[0] = 'C'; 278 if ((CHECK_HANDLE(handle)) || !config)
276 info->Signature[1] = 'S'; 279 return CS_BAD_HANDLE;
277 down_read(&pcmcia_socket_list_rwsem); 280 s = SOCKET(handle);
278 list_for_each(tmp, &pcmcia_socket_list) 281 if (!s)
279 socket_count++; 282 return CS_BAD_HANDLE;
280 up_read(&pcmcia_socket_list_rwsem); 283 return pccard_get_configuration_info(s, handle->Function, config);
281 info->Count = socket_count; 284}
282 info->Revision = CS_RELEASE_CODE; 285EXPORT_SYMBOL(pcmcia_get_configuration_info);
283 info->CSLevel = 0x0210;
284 info->VendorString = (char *)release;
285 return CS_SUCCESS;
286} /* get_card_services_info */
287EXPORT_SYMBOL(pcmcia_get_card_services_info);
288 286
289 287
290/** pcmcia_get_window 288/** pcmcia_get_window
@@ -379,7 +377,17 @@ int pccard_get_status(struct pcmcia_socket *s, unsigned int function,
379 (val & SS_READY) ? CS_EVENT_READY_CHANGE : 0; 377 (val & SS_READY) ? CS_EVENT_READY_CHANGE : 0;
380 return CS_SUCCESS; 378 return CS_SUCCESS;
381} /* pccard_get_status */ 379} /* pccard_get_status */
382EXPORT_SYMBOL(pccard_get_status); 380
381int pcmcia_get_status(client_handle_t handle, cs_status_t *status)
382{
383 struct pcmcia_socket *s;
384 if (CHECK_HANDLE(handle))
385 return CS_BAD_HANDLE;
386 s = SOCKET(handle);
387 return pccard_get_status(s, handle->Function, status);
388}
389EXPORT_SYMBOL(pcmcia_get_status);
390
383 391
384 392
385/** pcmcia_get_mem_page 393/** pcmcia_get_mem_page
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index 60a3decea820..b42ddc0c1143 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -396,7 +396,6 @@ struct pcmcia_socket;
396int pcmcia_access_configuration_register(client_handle_t handle, conf_reg_t *reg); 396int pcmcia_access_configuration_register(client_handle_t handle, conf_reg_t *reg);
397int pcmcia_deregister_client(client_handle_t handle); 397int pcmcia_deregister_client(client_handle_t handle);
398int pcmcia_get_configuration_info(client_handle_t handle, config_info_t *config); 398int pcmcia_get_configuration_info(client_handle_t handle, config_info_t *config);
399int pcmcia_get_card_services_info(servinfo_t *info);
400int pcmcia_get_first_window(window_handle_t *win, win_req_t *req); 399int pcmcia_get_first_window(window_handle_t *win, win_req_t *req);
401int pcmcia_get_next_window(window_handle_t *win, win_req_t *req); 400int pcmcia_get_next_window(window_handle_t *win, win_req_t *req);
402int pcmcia_get_status(client_handle_t handle, cs_status_t *status); 401int pcmcia_get_status(client_handle_t handle, cs_status_t *status);