Lines Matching refs:subdev

36 	struct sa_subdev_info	subdev[0];
43 struct sa_subdev_info *subdev = container_of(map, struct sa_subdev_info, map);
49 subdev->plat->set_vpp(1);
52 subdev->plat->set_vpp(0);
57 static void sa1100_destroy_subdev(struct sa_subdev_info *subdev)
59 if (subdev->mtd)
60 map_destroy(subdev->mtd);
61 if (subdev->map.virt)
62 iounmap(subdev->map.virt);
63 release_mem_region(subdev->map.phys, subdev->map.size);
66 static int sa1100_probe_subdev(struct sa_subdev_info *subdev, struct resource *res)
85 subdev->map.bankwidth = (MSC0 & MSC_RBW) ? 2 : 4;
89 subdev->map.bankwidth = ((MSC0 >> 16) & MSC_RBW) ? 2 : 4;
93 if (!request_mem_region(phys, size, subdev->name)) {
98 if (subdev->plat->set_vpp)
99 subdev->map.set_vpp = sa1100_set_vpp;
101 subdev->map.phys = phys;
102 subdev->map.size = size;
103 subdev->map.virt = ioremap(phys, size);
104 if (!subdev->map.virt) {
109 simple_map_init(&subdev->map);
115 subdev->mtd = do_map_probe(subdev->plat->map_name, &subdev->map);
116 if (subdev->mtd == NULL) {
120 subdev->mtd->owner = THIS_MODULE;
123 phys, (unsigned)(subdev->mtd->size >> 20),
124 subdev->map.bankwidth * 8);
129 sa1100_destroy_subdev(subdev);
140 if (info->mtd != info->subdev[0].mtd)
145 sa1100_destroy_subdev(&info->subdev[i]);
191 struct sa_subdev_info *subdev = &info->subdev[i];
198 subdev->map.name = subdev->name;
199 sprintf(subdev->name, "%s-%d", plat->name, i);
200 subdev->plat = plat;
202 ret = sa1100_probe_subdev(subdev, res);
221 strcpy(info->subdev[0].name, plat->name);
222 info->mtd = info->subdev[0].mtd;
230 cdev[i] = info->subdev[i].mtd;