Lines Matching refs:p_dev

218 static struct pcmcia_device *pcmcia_get_dev(struct pcmcia_device *p_dev)
221 tmp_dev = get_device(&p_dev->dev);
227 static void pcmcia_put_dev(struct pcmcia_device *p_dev)
229 if (p_dev)
230 put_device(&p_dev->dev);
242 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
245 pcmcia_put_socket(p_dev->socket);
247 kfree(p_dev->prod_id[i]);
248 kfree(p_dev->devname);
249 kref_put(&p_dev->function_config->ref, pcmcia_release_function);
250 kfree(p_dev);
256 struct pcmcia_device *p_dev;
266 p_dev = to_pcmcia_dev(dev);
268 s = p_dev->socket;
272 if ((!p_drv->probe) || (!p_dev->function_config) ||
279 ret = pccard_read_tuple(p_dev->socket, p_dev->func, CISTPL_CONFIG,
282 p_dev->config_base = cis_config.base;
283 p_dev->config_regs = cis_config.rmask[0];
284 dev_dbg(dev, "base %x, regs %x", p_dev->config_base,
285 p_dev->config_regs);
289 p_dev->config_base = 0;
290 p_dev->config_regs = 0;
293 ret = p_drv->probe(p_dev);
300 p_dev->vpp/10, p_dev->vpp%10, p_dev->config_index, p_dev->irq);
302 p_dev->resource[0], p_dev->resource[1], p_dev->resource[2],
303 p_dev->resource[3], p_dev->resource[4]);
307 (p_dev->socket->device_count == 1) && (p_dev->device_no == 0))
326 struct pcmcia_device *p_dev;
341 list_for_each_entry_safe(p_dev, tmp, &s->devices_list, socket_device_list) {
342 if (p_dev == leftover)
346 list_del(&p_dev->socket_device_list);
349 dev_dbg(&p_dev->dev, "unregistering device\n");
350 device_unregister(&p_dev->dev);
358 struct pcmcia_device *p_dev;
362 p_dev = to_pcmcia_dev(dev);
371 if ((p_dev->socket->pcmcia_pfc) &&
372 (p_dev->socket->device_count > 0) &&
373 (p_dev->device_no == 0))
374 pcmcia_card_remove(p_dev->socket, p_dev);
381 p_drv->remove(p_dev);
384 if (p_dev->_irq || p_dev->_io || p_dev->_locked)
390 if (p_dev->_win & CLIENT_WIN_REQ(i))
396 pcmcia_put_dev(p_dev);
406 static int pcmcia_device_query(struct pcmcia_device *p_dev)
417 if (!pccard_read_tuple(p_dev->socket, BIND_FN_ALL,
419 mutex_lock(&p_dev->socket->ops_mutex);
420 p_dev->manf_id = manf_id.manf;
421 p_dev->card_id = manf_id.card;
422 p_dev->has_manf_id = 1;
423 p_dev->has_card_id = 1;
424 mutex_unlock(&p_dev->socket->ops_mutex);
427 if (!pccard_read_tuple(p_dev->socket, p_dev->func,
429 mutex_lock(&p_dev->socket->ops_mutex);
430 p_dev->func_id = func_id.func;
431 p_dev->has_func_id = 1;
432 mutex_unlock(&p_dev->socket->ops_mutex);
444 if (!pccard_read_tuple(p_dev->socket, p_dev->func,
446 dev_dbg(&p_dev->dev,
449 mutex_lock(&p_dev->socket->ops_mutex);
450 p_dev->func_id = CISTPL_FUNCID_MEMORY;
451 p_dev->has_func_id = 1;
452 mutex_unlock(&p_dev->socket->ops_mutex);
457 if (!pccard_read_tuple(p_dev->socket, BIND_FN_ALL, CISTPL_VERS_1,
459 mutex_lock(&p_dev->socket->ops_mutex);
477 tmp = p_dev->prod_id[i];
478 p_dev->prod_id[i] = new;
481 mutex_unlock(&p_dev->socket->ops_mutex);
492 struct pcmcia_device *p_dev, *tmp_dev;
501 p_dev = kzalloc(sizeof(struct pcmcia_device), GFP_KERNEL);
502 if (!p_dev)
506 p_dev->device_no = (s->device_count++);
510 if ((p_dev->device_no >= 2) && (function == 0))
514 if (p_dev->device_no >= 4)
517 p_dev->socket = s;
518 p_dev->func = function;
520 p_dev->dev.bus = &pcmcia_bus_type;
521 p_dev->dev.parent = s->dev.parent;
522 p_dev->dev.release = pcmcia_release_dev;
524 p_dev->dma_mask = DMA_MASK_NONE;
525 p_dev->dev.dma_mask = &p_dev->dma_mask;
526 dev_set_name(&p_dev->dev, "%d.%d", p_dev->socket->sock, p_dev->device_no);
527 if (!dev_name(&p_dev->dev))
529 p_dev->devname = kasprintf(GFP_KERNEL, "pcmcia%s", dev_name(&p_dev->dev));
530 if (!p_dev->devname)
532 dev_dbg(&p_dev->dev, "devname is %s\n", p_dev->devname);
537 * p_dev->function_config must be the same for all card functions.
542 if (p_dev->func == tmp_dev->func) {
543 p_dev->function_config = tmp_dev->function_config;
544 p_dev->irq = tmp_dev->irq;
545 kref_get(&p_dev->function_config->ref);
549 list_add(&p_dev->socket_device_list, &s->devices_list);
551 if (pcmcia_setup_irq(p_dev))
552 dev_warn(&p_dev->dev,
555 if (!p_dev->function_config) {
557 dev_dbg(&p_dev->dev, "creating config_t\n");
563 p_dev->function_config = c;
566 c->io[i].name = p_dev->devname;
570 c->mem[i].name = p_dev->devname;
575 p_dev->resource[i] = &p_dev->function_config->io[i];
577 p_dev->resource[i] = &p_dev->function_config->mem[i-MAX_IO_WIN];
581 dev_printk(KERN_NOTICE, &p_dev->dev,
583 p_dev->devname, p_dev->irq);
585 pcmcia_device_query(p_dev);
587 if (device_register(&p_dev->dev))
590 return p_dev;
594 list_del(&p_dev->socket_device_list);
603 kfree(p_dev->prod_id[i]);
604 kfree(p_dev->devname);
605 kfree(p_dev);
656 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
657 if (!p_dev->dev.driver) {
659 pcmcia_device_query(p_dev);
894 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
903 if (pcmcia_devmatch(p_dev, &dynid->id)) {
913 if (pcmcia_devmatch(p_dev, did)) {
927 struct pcmcia_device *p_dev;
934 p_dev = to_pcmcia_dev(dev);
938 if (!p_dev->prod_id[i])
940 hash[i] = crc32(0, p_dev->prod_id[i], strlen(p_dev->prod_id[i]));
943 if (add_uevent_var(env, "SOCKET_NO=%u", p_dev->socket->sock))
946 if (add_uevent_var(env, "DEVICE_NO=%02X", p_dev->device_no))
951 p_dev->has_manf_id ? p_dev->manf_id : 0,
952 p_dev->has_card_id ? p_dev->card_id : 0,
953 p_dev->has_func_id ? p_dev->func_id : 0,
954 p_dev->func,
955 p_dev->device_no,
1004 struct pcmcia_device *p_dev = to_pcmcia_dev(dev); \
1005 return p_dev->test ? sprintf(buf, format, p_dev->field) : -ENODEV; \
1011 struct pcmcia_device *p_dev = to_pcmcia_dev(dev); \
1012 return p_dev->field ? sprintf(buf, "%s\n", p_dev->field) : -ENODEV; \
1027 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1032 str += sprintf(str, "%pr\n", p_dev->resource[i]);
1039 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1041 if (p_dev->suspended)
1050 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1056 if ((!p_dev->suspended) && !strncmp(buf, "off", 3))
1058 else if (p_dev->suspended && !strncmp(buf, "on", 2))
1067 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1073 if (!p_dev->prod_id[i])
1075 hash[i] = crc32(0, p_dev->prod_id[i],
1076 strlen(p_dev->prod_id[i]));
1080 p_dev->has_manf_id ? p_dev->manf_id : 0,
1081 p_dev->has_card_id ? p_dev->card_id : 0,
1082 p_dev->has_func_id ? p_dev->func_id : 0,
1083 p_dev->func, p_dev->device_no,
1090 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1095 mutex_lock(&p_dev->socket->ops_mutex);
1096 p_dev->allow_func_id_match = 1;
1097 mutex_unlock(&p_dev->socket->ops_mutex);
1098 pcmcia_parse_uevents(p_dev->socket, PCMCIA_UEVENT_REQUERY);
1123 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1127 mutex_lock(&p_dev->socket->ops_mutex);
1128 if (p_dev->suspended) {
1129 mutex_unlock(&p_dev->socket->ops_mutex);
1132 p_dev->suspended = 1;
1133 mutex_unlock(&p_dev->socket->ops_mutex);
1144 ret = p_drv->suspend(p_dev);
1149 p_dev->devname, p_drv->name, ret);
1150 mutex_lock(&p_dev->socket->ops_mutex);
1151 p_dev->suspended = 0;
1152 mutex_unlock(&p_dev->socket->ops_mutex);
1157 if (p_dev->device_no == p_dev->func) {
1159 pcmcia_release_configuration(p_dev);
1169 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1173 mutex_lock(&p_dev->socket->ops_mutex);
1174 if (!p_dev->suspended) {
1175 mutex_unlock(&p_dev->socket->ops_mutex);
1178 p_dev->suspended = 0;
1179 mutex_unlock(&p_dev->socket->ops_mutex);
1189 if (p_dev->device_no == p_dev->func) {
1191 ret = pcmcia_enable_device(p_dev);
1197 ret = p_drv->resume(p_dev);
1207 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1209 if (p_dev->socket != skt || p_dev->suspended)
1218 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
1220 if (p_dev->socket != skt || !p_dev->suspended)
1305 struct pcmcia_device *p_dev;
1308 p_dev = pcmcia_get_dev(_p_dev);
1309 if (!p_dev)
1312 if (atomic_read(&p_dev->socket->present) != 0)
1313 ret = p_dev;
1315 pcmcia_put_dev(p_dev);