Lines Matching refs:info
134 static void sa1100_destroy(struct sa_info *info, struct flash_platform_data *plat)
138 if (info->mtd) {
139 mtd_device_unregister(info->mtd);
140 if (info->mtd != info->subdev[0].mtd)
141 mtd_concat_destroy(info->mtd);
144 for (i = info->num_subdev - 1; i >= 0; i--)
145 sa1100_destroy_subdev(&info->subdev[i]);
146 kfree(info);
155 struct sa_info *info;
175 info = kzalloc(size, GFP_KERNEL);
176 if (!info) {
191 struct sa_subdev_info *subdev = &info->subdev[i];
207 info->num_subdev = i;
212 if (ret != 0 && !(ret == -ENXIO && info->num_subdev > 0))
220 if (info->num_subdev == 1) {
221 strcpy(info->subdev[0].name, plat->name);
222 info->mtd = info->subdev[0].mtd;
224 } else if (info->num_subdev > 1) {
236 for (i = 0; i < info->num_subdev; i++)
237 cdev[i] = info->subdev[i].mtd;
239 info->mtd = mtd_concat_create(cdev, info->num_subdev,
242 if (info->mtd == NULL) {
247 info->mtd->dev.parent = &pdev->dev;
250 return info;
253 sa1100_destroy(info, plat);
263 struct sa_info *info;
269 info = sa1100_setup_mtd(pdev, plat);
270 if (IS_ERR(info)) {
271 err = PTR_ERR(info);
278 mtd_device_parse_register(info->mtd, part_probes, NULL, plat->parts,
281 platform_set_drvdata(pdev, info);
290 struct sa_info *info = platform_get_drvdata(pdev);
293 sa1100_destroy(info, plat);