359
359
.priv = &camera_info,
362
static void dummy_release(struct device *dev)
362
static struct platform_device *camera_device;
364
static void ap325rxa_camera_release(struct device *dev)
366
soc_camera_platform_release(&camera_device);
366
static struct platform_device camera_device = {
367
.name = "soc_camera_platform",
369
.platform_data = &camera_info,
370
.release = dummy_release,
374
369
static int ap325rxa_camera_add(struct soc_camera_link *icl,
375
370
struct device *dev)
377
if (icl != &camera_link || camera_probe() <= 0)
380
camera_info.dev = dev;
382
return platform_device_register(&camera_device);
372
int ret = soc_camera_platform_add(icl, dev, &camera_device, &camera_link,
373
ap325rxa_camera_release, 0);
377
ret = camera_probe();
379
soc_camera_platform_del(icl, camera_device, &camera_link);
385
384
static void ap325rxa_camera_del(struct soc_camera_link *icl)
387
if (icl != &camera_link)
390
platform_device_unregister(&camera_device);
391
memset(&camera_device.dev.kobj, 0,
392
sizeof(camera_device.dev.kobj));
386
soc_camera_platform_del(icl, camera_device, &camera_link);
394
388
#endif /* CONFIG_I2C */