Lines Matching refs:subdev
36 struct sa_subdev_info subdev[0]; member
43 struct sa_subdev_info *subdev = container_of(map, struct sa_subdev_info, map); in sa1100_set_vpp() local
49 subdev->plat->set_vpp(1); in sa1100_set_vpp()
52 subdev->plat->set_vpp(0); in sa1100_set_vpp()
57 static void sa1100_destroy_subdev(struct sa_subdev_info *subdev) in sa1100_destroy_subdev() argument
59 if (subdev->mtd) in sa1100_destroy_subdev()
60 map_destroy(subdev->mtd); in sa1100_destroy_subdev()
61 if (subdev->map.virt) in sa1100_destroy_subdev()
62 iounmap(subdev->map.virt); in sa1100_destroy_subdev()
63 release_mem_region(subdev->map.phys, subdev->map.size); in sa1100_destroy_subdev()
66 static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *res) in sa1100_probe_subdev() argument
85 subdev->map.bankwidth = (MSC0 & MSC_RBW) ? 2 : 4; in sa1100_probe_subdev()
89 subdev->map.bankwidth = ((MSC0 >> 16) & MSC_RBW) ? 2 : 4; in sa1100_probe_subdev()
93 if (!request_mem_region(phys, size, subdev->name)) { in sa1100_probe_subdev()
98 if (subdev->plat->set_vpp) in sa1100_probe_subdev()
99 subdev->map.set_vpp = sa1100_set_vpp; in sa1100_probe_subdev()
101 subdev->map.phys = phys; in sa1100_probe_subdev()
102 subdev->map.size = size; in sa1100_probe_subdev()
103 subdev->map.virt = ioremap(phys, size); in sa1100_probe_subdev()
104 if (!subdev->map.virt) { in sa1100_probe_subdev()
109 simple_map_init(&subdev->map); in sa1100_probe_subdev()
115 subdev->mtd = do_map_probe(subdev->plat->map_name, &subdev->map); in sa1100_probe_subdev()
116 if (subdev->mtd == NULL) { in sa1100_probe_subdev()
122 phys, (unsigned)(subdev->mtd->size >> 20), in sa1100_probe_subdev()
123 subdev->map.bankwidth * 8); in sa1100_probe_subdev()
128 sa1100_destroy_subdev(subdev); in sa1100_probe_subdev()
139 if (info->mtd != info->subdev[0].mtd) in sa1100_destroy()
144 sa1100_destroy_subdev(&info->subdev[i]); in sa1100_destroy()
190 struct sa_subdev_info *subdev = &info->subdev[i]; in sa1100_setup_mtd() local
197 subdev->map.name = subdev->name; in sa1100_setup_mtd()
198 sprintf(subdev->name, "%s-%d", plat->name, i); in sa1100_setup_mtd()
199 subdev->plat = plat; in sa1100_setup_mtd()
201 ret = sa1100_probe_subdev(subdev, res); in sa1100_setup_mtd()
220 strcpy(info->subdev[0].name, plat->name); in sa1100_setup_mtd()
221 info->mtd = info->subdev[0].mtd; in sa1100_setup_mtd()
229 cdev[i] = info->subdev[i].mtd; in sa1100_setup_mtd()