Lines Matching refs:subdev

37 	struct sa_subdev_info	subdev[];  member
44 struct sa_subdev_info *subdev = container_of(map, struct sa_subdev_info, map); in sa1100_set_vpp() local
50 subdev->plat->set_vpp(1); in sa1100_set_vpp()
53 subdev->plat->set_vpp(0); in sa1100_set_vpp()
58 static void sa1100_destroy_subdev(struct sa_subdev_info *subdev) in sa1100_destroy_subdev() argument
60 if (subdev->mtd) in sa1100_destroy_subdev()
61 map_destroy(subdev->mtd); in sa1100_destroy_subdev()
62 if (subdev->map.virt) in sa1100_destroy_subdev()
63 iounmap(subdev->map.virt); in sa1100_destroy_subdev()
64 release_mem_region(subdev->map.phys, subdev->map.size); in sa1100_destroy_subdev()
67 static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *res) in sa1100_probe_subdev() argument
86 subdev->map.bankwidth = (MSC0 & MSC_RBW) ? 2 : 4; in sa1100_probe_subdev()
90 subdev->map.bankwidth = ((MSC0 >> 16) & MSC_RBW) ? 2 : 4; in sa1100_probe_subdev()
94 if (!request_mem_region(phys, size, subdev->name)) { in sa1100_probe_subdev()
99 if (subdev->plat->set_vpp) in sa1100_probe_subdev()
100 subdev->map.set_vpp = sa1100_set_vpp; in sa1100_probe_subdev()
102 subdev->map.phys = phys; in sa1100_probe_subdev()
103 subdev->map.size = size; in sa1100_probe_subdev()
104 subdev->map.virt = ioremap(phys, size); in sa1100_probe_subdev()
105 if (!subdev->map.virt) { in sa1100_probe_subdev()
110 simple_map_init(&subdev->map); in sa1100_probe_subdev()
116 subdev->mtd = do_map_probe(subdev->plat->map_name, &subdev->map); in sa1100_probe_subdev()
117 if (subdev->mtd == NULL) { in sa1100_probe_subdev()
123 phys, (unsigned)(subdev->mtd->size >> 20), in sa1100_probe_subdev()
124 subdev->map.bankwidth * 8); in sa1100_probe_subdev()
129 sa1100_destroy_subdev(subdev); in sa1100_probe_subdev()
140 if (info->mtd != info->subdev[0].mtd) in sa1100_destroy()
145 sa1100_destroy_subdev(&info->subdev[i]); in sa1100_destroy()
191 struct sa_subdev_info *subdev = &info->subdev[i]; in sa1100_setup_mtd() local
198 subdev->map.name = subdev->name; in sa1100_setup_mtd()
199 sprintf(subdev->name, "%s-%d", plat->name, i); in sa1100_setup_mtd()
200 subdev->plat = plat; in sa1100_setup_mtd()
202 ret = sa1100_probe_subdev(subdev, res); in sa1100_setup_mtd()
221 strcpy(info->subdev[0].name, plat->name); in sa1100_setup_mtd()
222 info->mtd = info->subdev[0].mtd; in sa1100_setup_mtd()
237 cdev[i] = info->subdev[i].mtd; in sa1100_setup_mtd()