Lines Matching refs:dev

85 	struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1;  in remap_window()  local
90 if (!pcmcia_dev_present(dev->p_dev)) { in remap_window()
95 offset = to & ~(dev->win_size-1); in remap_window()
96 if (offset != dev->offset) { in remap_window()
98 dev->offset, offset); in remap_window()
99 ret = pcmcia_map_mem_page(dev->p_dev, win, offset); in remap_window()
102 dev->offset = offset; in remap_window()
104 return dev->win_base + (to & (dev->win_size-1)); in remap_window()
140 struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1; in pcmcia_copy_from_remap() local
141 unsigned long win_size = dev->win_size; in pcmcia_copy_from_remap()
189 struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1; in pcmcia_copy_to_remap() local
190 unsigned long win_size = dev->win_size; in pcmcia_copy_to_remap()
301 struct pcmciamtd_dev *dev = (struct pcmciamtd_dev *)map->map_priv_1; in pcmciamtd_set_vpp() local
302 struct pcmcia_device *link = dev->p_dev; in pcmciamtd_set_vpp()
304 pr_debug("dev = %p on = %d vpp = %d\n\n", dev, on, dev->vpp); in pcmciamtd_set_vpp()
308 pcmcia_fixup_vpp(link, dev->vpp); in pcmciamtd_set_vpp()
319 struct pcmciamtd_dev *dev = link->priv; in pcmciamtd_release() local
324 if(dev->win_base) { in pcmciamtd_release()
325 iounmap(dev->win_base); in pcmciamtd_release()
326 dev->win_base = NULL; in pcmciamtd_release()
368 struct pcmciamtd_dev *dev = priv_data; in pcmciamtd_cistpl_device() local
377 dev->pcmcia_map.size = t->dev[0].size; in pcmciamtd_cistpl_device()
380 pr_debug("Region %d, type = %u\n", i, t->dev[i].type); in pcmciamtd_cistpl_device()
381 pr_debug("Region %d, wp = %u\n", i, t->dev[i].wp); in pcmciamtd_cistpl_device()
382 pr_debug("Region %d, speed = %u ns\n", i, t->dev[i].speed); in pcmciamtd_cistpl_device()
383 pr_debug("Region %d, size = %u bytes\n", i, t->dev[i].size); in pcmciamtd_cistpl_device()
392 struct pcmciamtd_dev *dev = priv_data; in pcmciamtd_cistpl_geo() local
400 dev->pcmcia_map.bankwidth = t->geo[0].buswidth; in pcmciamtd_cistpl_geo()
414 static void card_settings(struct pcmciamtd_dev *dev, struct pcmcia_device *p_dev, int *new_name) in card_settings() argument
419 dev->mtd_name[0] = '\0'; in card_settings()
422 strcat(dev->mtd_name, " "); in card_settings()
424 strcat(dev->mtd_name, p_dev->prod_id[i]); in card_settings()
426 pr_debug("Found name: %s\n", dev->mtd_name); in card_settings()
431 pcmcia_loop_tuple(p_dev, CISTPL_DEVICE, pcmciamtd_cistpl_device, dev); in card_settings()
432 pcmcia_loop_tuple(p_dev, CISTPL_DEVICE_GEO, pcmciamtd_cistpl_geo, dev); in card_settings()
434 if(!dev->pcmcia_map.size) in card_settings()
435 dev->pcmcia_map.size = MAX_PCMCIA_ADDR; in card_settings()
437 if(!dev->pcmcia_map.bankwidth) in card_settings()
438 dev->pcmcia_map.bankwidth = 2; in card_settings()
441 dev->pcmcia_map.size = force_size << 20; in card_settings()
446 dev->pcmcia_map.bankwidth = bankwidth; in card_settings()
450 dev->pcmcia_map.name = dev->mtd_name; in card_settings()
451 if(!dev->mtd_name[0]) { in card_settings()
452 strcpy(dev->mtd_name, "PCMCIA Memory card"); in card_settings()
457 dev->pcmcia_map.size, in card_settings()
458 dev->pcmcia_map.bankwidth << 3, dev->mtd_name); in card_settings()
464 struct pcmciamtd_dev *dev = link->priv; in pcmciamtd_config() local
473 card_settings(dev, link, &new_name); in pcmciamtd_config()
475 dev->pcmcia_map.phys = NO_XIP; in pcmciamtd_config()
476 dev->pcmcia_map.copy_from = pcmcia_copy_from_remap; in pcmciamtd_config()
477 dev->pcmcia_map.copy_to = pcmcia_copy_to_remap; in pcmciamtd_config()
478 if (dev->pcmcia_map.bankwidth == 1) { in pcmciamtd_config()
479 dev->pcmcia_map.read = pcmcia_read8_remap; in pcmciamtd_config()
480 dev->pcmcia_map.write = pcmcia_write8_remap; in pcmciamtd_config()
482 dev->pcmcia_map.read = pcmcia_read16_remap; in pcmciamtd_config()
483 dev->pcmcia_map.write = pcmcia_write16_remap; in pcmciamtd_config()
486 dev->pcmcia_map.set_vpp = pcmciamtd_set_vpp; in pcmciamtd_config()
495 link->resource[2]->flags |= (dev->pcmcia_map.bankwidth == 1) ? in pcmciamtd_config()
500 dev->win_size = 0; in pcmciamtd_config()
508 pr_debug("ret = %d dev->win_size = %d\n", ret, dev->win_size); in pcmciamtd_config()
518 dev->win_size = resource_size(link->resource[2]); in pcmciamtd_config()
523 pr_debug("dev->win_size = %d\n", dev->win_size); in pcmciamtd_config()
525 if(!dev->win_size) { in pcmciamtd_config()
526 dev_err(&dev->p_dev->dev, "Cannot allocate memory window\n"); in pcmciamtd_config()
530 pr_debug("Allocated a window of %dKiB\n", dev->win_size >> 10); in pcmciamtd_config()
533 dev->win_base = ioremap(link->resource[2]->start, in pcmciamtd_config()
535 if(!dev->win_base) { in pcmciamtd_config()
536 dev_err(&dev->p_dev->dev, "ioremap(%pR) failed\n", in pcmciamtd_config()
542 dev, link->resource[2], dev->win_base); in pcmciamtd_config()
544 dev->offset = 0; in pcmciamtd_config()
545 dev->pcmcia_map.map_priv_1 = (unsigned long)dev; in pcmciamtd_config()
546 dev->pcmcia_map.map_priv_2 = (unsigned long)link->resource[2]; in pcmciamtd_config()
548 dev->vpp = (vpp) ? vpp : link->socket->socket.Vpp; in pcmciamtd_config()
550 link->vpp = dev->vpp; in pcmciamtd_config()
559 if (dev->win_base) { in pcmciamtd_config()
560 iounmap(dev->win_base); in pcmciamtd_config()
561 dev->win_base = NULL; in pcmciamtd_config()
567 mtd = do_map_probe("map_ram", &dev->pcmcia_map); in pcmciamtd_config()
569 mtd = do_map_probe("map_rom", &dev->pcmcia_map); in pcmciamtd_config()
573 mtd = do_map_probe(probes[i], &dev->pcmcia_map); in pcmciamtd_config()
587 dev->mtd_info = mtd; in pcmciamtd_config()
603 snprintf(dev->mtd_name, sizeof(dev->mtd_name), "%d%ciB %s", size, unit, "PCMCIA Memory card"); in pcmciamtd_config()
608 if(mtd->size <= dev->win_size) { in pcmciamtd_config()
610 dev->pcmcia_map.map_priv_2 = (unsigned long)dev->win_base; in pcmciamtd_config()
611 if (dev->pcmcia_map.bankwidth == 1) { in pcmciamtd_config()
612 dev->pcmcia_map.read = pcmcia_read8; in pcmciamtd_config()
613 dev->pcmcia_map.write = pcmcia_write8; in pcmciamtd_config()
615 dev->pcmcia_map.read = pcmcia_read16; in pcmciamtd_config()
616 dev->pcmcia_map.write = pcmcia_write16; in pcmciamtd_config()
618 dev->pcmcia_map.copy_from = pcmcia_copy_from; in pcmciamtd_config()
619 dev->pcmcia_map.copy_to = pcmcia_copy_to; in pcmciamtd_config()
624 dev->mtd_info = NULL; in pcmciamtd_config()
625 dev_err(&dev->p_dev->dev, in pcmciamtd_config()
630 dev_info(&dev->p_dev->dev, "mtd%d: %s\n", mtd->index, mtd->name); in pcmciamtd_config()
635 static int pcmciamtd_suspend(struct pcmcia_device *dev) in pcmciamtd_suspend() argument
644 static int pcmciamtd_resume(struct pcmcia_device *dev) in pcmciamtd_resume() argument
656 struct pcmciamtd_dev *dev = link->priv; in pcmciamtd_detach() local
660 if(dev->mtd_info) { in pcmciamtd_detach()
661 mtd_device_unregister(dev->mtd_info); in pcmciamtd_detach()
662 dev_info(&dev->p_dev->dev, "mtd%d: Removing\n", in pcmciamtd_detach()
663 dev->mtd_info->index); in pcmciamtd_detach()
664 map_destroy(dev->mtd_info); in pcmciamtd_detach()
673 struct pcmciamtd_dev *dev; in pcmciamtd_probe() local
676 dev = kzalloc(sizeof(*dev), GFP_KERNEL); in pcmciamtd_probe()
677 if (!dev) return -ENOMEM; in pcmciamtd_probe()
678 pr_debug("dev=0x%p\n", dev); in pcmciamtd_probe()
680 dev->p_dev = link; in pcmciamtd_probe()
681 link->priv = dev; in pcmciamtd_probe()