aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/ds.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia/ds.c')
-rw-r--r--drivers/pcmcia/ds.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index eac961463be2..d2ec45848413 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -213,7 +213,7 @@ EXPORT_SYMBOL(pcmcia_unregister_driver);
213 213
214/* pcmcia_device handling */ 214/* pcmcia_device handling */
215 215
216struct pcmcia_device *pcmcia_get_dev(struct pcmcia_device *p_dev) 216static struct pcmcia_device *pcmcia_get_dev(struct pcmcia_device *p_dev)
217{ 217{
218 struct device *tmp_dev; 218 struct device *tmp_dev;
219 tmp_dev = get_device(&p_dev->dev); 219 tmp_dev = get_device(&p_dev->dev);
@@ -222,7 +222,7 @@ struct pcmcia_device *pcmcia_get_dev(struct pcmcia_device *p_dev)
222 return to_pcmcia_dev(tmp_dev); 222 return to_pcmcia_dev(tmp_dev);
223} 223}
224 224
225void pcmcia_put_dev(struct pcmcia_device *p_dev) 225static void pcmcia_put_dev(struct pcmcia_device *p_dev)
226{ 226{
227 if (p_dev) 227 if (p_dev)
228 put_device(&p_dev->dev); 228 put_device(&p_dev->dev);
@@ -477,7 +477,8 @@ static int pcmcia_device_query(struct pcmcia_device *p_dev)
477} 477}
478 478
479 479
480struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s, unsigned int function) 480static struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s,
481 unsigned int function)
481{ 482{
482 struct pcmcia_device *p_dev, *tmp_dev; 483 struct pcmcia_device *p_dev, *tmp_dev;
483 int i; 484 int i;
@@ -885,14 +886,6 @@ static int pcmcia_bus_match(struct device *dev, struct device_driver *drv)
885 } 886 }
886 mutex_unlock(&p_drv->dynids.lock); 887 mutex_unlock(&p_drv->dynids.lock);
887 888
888#ifdef CONFIG_PCMCIA_IOCTL
889 /* matching by cardmgr */
890 if (p_dev->cardmgr == p_drv) {
891 dev_dbg(dev, "cardmgr matched to %s\n", drv->name);
892 return 1;
893 }
894#endif
895
896 while (did && did->match_flags) { 889 while (did && did->match_flags) {
897 dev_dbg(dev, "trying to match to %s\n", drv->name); 890 dev_dbg(dev, "trying to match to %s\n", drv->name);
898 if (pcmcia_devmatch(p_dev, did)) { 891 if (pcmcia_devmatch(p_dev, did)) {
@@ -1245,7 +1238,6 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1245 case CS_EVENT_CARD_REMOVAL: 1238 case CS_EVENT_CARD_REMOVAL:
1246 atomic_set(&skt->present, 0); 1239 atomic_set(&skt->present, 0);
1247 pcmcia_card_remove(skt, NULL); 1240 pcmcia_card_remove(skt, NULL);
1248 handle_event(skt, event);
1249 mutex_lock(&s->ops_mutex); 1241 mutex_lock(&s->ops_mutex);
1250 destroy_cis_cache(s); 1242 destroy_cis_cache(s);
1251 pcmcia_cleanup_irq(s); 1243 pcmcia_cleanup_irq(s);
@@ -1259,7 +1251,6 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1259 destroy_cis_cache(s); /* to be on the safe side... */ 1251 destroy_cis_cache(s); /* to be on the safe side... */
1260 mutex_unlock(&s->ops_mutex); 1252 mutex_unlock(&s->ops_mutex);
1261 pcmcia_card_add(skt); 1253 pcmcia_card_add(skt);
1262 handle_event(skt, event);
1263 break; 1254 break;
1264 1255
1265 case CS_EVENT_EJECTION_REQUEST: 1256 case CS_EVENT_EJECTION_REQUEST:
@@ -1280,14 +1271,12 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1280 ds_event(skt, CS_EVENT_CARD_INSERTION, 1271 ds_event(skt, CS_EVENT_CARD_INSERTION,
1281 CS_EVENT_PRI_LOW); 1272 CS_EVENT_PRI_LOW);
1282 } 1273 }
1283 handle_event(skt, event);
1284 break; 1274 break;
1285 1275
1286 case CS_EVENT_PM_SUSPEND: 1276 case CS_EVENT_PM_SUSPEND:
1287 case CS_EVENT_RESET_PHYSICAL: 1277 case CS_EVENT_RESET_PHYSICAL:
1288 case CS_EVENT_CARD_RESET: 1278 case CS_EVENT_CARD_RESET:
1289 default: 1279 default:
1290 handle_event(skt, event);
1291 break; 1280 break;
1292 } 1281 }
1293 1282
@@ -1350,9 +1339,6 @@ static int __devinit pcmcia_bus_add_socket(struct device *dev,
1350 return ret; 1339 return ret;
1351 } 1340 }
1352 1341
1353#ifdef CONFIG_PCMCIA_IOCTL
1354 init_waitqueue_head(&socket->queue);
1355#endif
1356 INIT_LIST_HEAD(&socket->devices_list); 1342 INIT_LIST_HEAD(&socket->devices_list);
1357 memset(&socket->pcmcia_state, 0, sizeof(u8)); 1343 memset(&socket->pcmcia_state, 0, sizeof(u8));
1358 socket->device_count = 0; 1344 socket->device_count = 0;
@@ -1429,8 +1415,6 @@ static int __init init_pcmcia_bus(void)
1429 return ret; 1415 return ret;
1430 } 1416 }
1431 1417
1432 pcmcia_setup_ioctl();
1433
1434 return 0; 1418 return 0;
1435} 1419}
1436fs_initcall(init_pcmcia_bus); /* one level after subsys_initcall so that 1420fs_initcall(init_pcmcia_bus); /* one level after subsys_initcall so that
@@ -1439,8 +1423,6 @@ fs_initcall(init_pcmcia_bus); /* one level after subsys_initcall so that
1439 1423
1440static void __exit exit_pcmcia_bus(void) 1424static void __exit exit_pcmcia_bus(void)
1441{ 1425{
1442 pcmcia_cleanup_ioctl();
1443
1444 class_interface_unregister(&pcmcia_bus_interface); 1426 class_interface_unregister(&pcmcia_bus_interface);
1445 1427
1446 bus_unregister(&pcmcia_bus_type); 1428 bus_unregister(&pcmcia_bus_type);