diff options
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/s5p-fimc/fimc-mdevice.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/drivers/media/video/s5p-fimc/fimc-mdevice.c b/drivers/media/video/s5p-fimc/fimc-mdevice.c index d558ae79e32..fc81f6faa39 100644 --- a/drivers/media/video/s5p-fimc/fimc-mdevice.c +++ b/drivers/media/video/s5p-fimc/fimc-mdevice.c | |||
@@ -385,20 +385,28 @@ static void fimc_md_unregister_entities(struct fimc_md *fmd) | |||
385 | 385 | ||
386 | static int fimc_md_register_video_nodes(struct fimc_md *fmd) | 386 | static int fimc_md_register_video_nodes(struct fimc_md *fmd) |
387 | { | 387 | { |
388 | struct video_device *vdev; | ||
388 | int i, ret = 0; | 389 | int i, ret = 0; |
389 | 390 | ||
390 | for (i = 0; i < FIMC_MAX_DEVS && !ret; i++) { | 391 | for (i = 0; i < FIMC_MAX_DEVS && !ret; i++) { |
391 | if (!fmd->fimc[i]) | 392 | if (!fmd->fimc[i]) |
392 | continue; | 393 | continue; |
393 | 394 | ||
394 | if (fmd->fimc[i]->m2m.vfd) | 395 | vdev = fmd->fimc[i]->m2m.vfd; |
395 | ret = video_register_device(fmd->fimc[i]->m2m.vfd, | 396 | if (vdev) { |
396 | VFL_TYPE_GRABBER, -1); | 397 | ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1); |
397 | if (ret) | 398 | if (ret) |
398 | break; | 399 | break; |
399 | if (fmd->fimc[i]->vid_cap.vfd) | 400 | v4l2_info(&fmd->v4l2_dev, "Registered %s as /dev/%s\n", |
400 | ret = video_register_device(fmd->fimc[i]->vid_cap.vfd, | 401 | vdev->name, video_device_node_name(vdev)); |
401 | VFL_TYPE_GRABBER, -1); | 402 | } |
403 | |||
404 | vdev = fmd->fimc[i]->vid_cap.vfd; | ||
405 | if (vdev == NULL) | ||
406 | continue; | ||
407 | ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1); | ||
408 | v4l2_info(&fmd->v4l2_dev, "Registered %s as /dev/%s\n", | ||
409 | vdev->name, video_device_node_name(vdev)); | ||
402 | } | 410 | } |
403 | 411 | ||
404 | return ret; | 412 | return ret; |
@@ -746,9 +754,6 @@ static int __devinit fimc_md_probe(struct platform_device *pdev) | |||
746 | struct fimc_md *fmd; | 754 | struct fimc_md *fmd; |
747 | int ret; | 755 | int ret; |
748 | 756 | ||
749 | if (WARN(!pdev->dev.platform_data, "Platform data not specified!\n")) | ||
750 | return -EINVAL; | ||
751 | |||
752 | fmd = kzalloc(sizeof(struct fimc_md), GFP_KERNEL); | 757 | fmd = kzalloc(sizeof(struct fimc_md), GFP_KERNEL); |
753 | if (!fmd) | 758 | if (!fmd) |
754 | return -ENOMEM; | 759 | return -ENOMEM; |
@@ -786,9 +791,11 @@ static int __devinit fimc_md_probe(struct platform_device *pdev) | |||
786 | if (ret) | 791 | if (ret) |
787 | goto err3; | 792 | goto err3; |
788 | 793 | ||
789 | ret = fimc_md_register_sensor_entities(fmd); | 794 | if (pdev->dev.platform_data) { |
790 | if (ret) | 795 | ret = fimc_md_register_sensor_entities(fmd); |
791 | goto err3; | 796 | if (ret) |
797 | goto err3; | ||
798 | } | ||
792 | ret = fimc_md_create_links(fmd); | 799 | ret = fimc_md_create_links(fmd); |
793 | if (ret) | 800 | if (ret) |
794 | goto err3; | 801 | goto err3; |