Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 273691
b: refs/heads/master
c: 489759c
h: refs/heads/master
i:
  273689: bb97e30
  273687: 0a25225
v: v3
  • Loading branch information
Guennadi Liakhovetski authored and Mauro Carvalho Chehab committed Nov 3, 2011
1 parent a82f5e2 commit 25a58eb
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7ae77ee92fea7c115324096372a2a125d8bc26d7
refs/heads/master: 489759c0ca26bcd405c82966bdce7ff7fec5a110
20 changes: 15 additions & 5 deletions trunk/drivers/media/video/sh_mobile_ceu_camera.c
Original file line number Diff line number Diff line change
Expand Up @@ -566,16 +566,24 @@ static int sh_mobile_ceu_add_device(struct soc_camera_device *icd)
ret = sh_mobile_ceu_soft_reset(pcdev);

csi2_sd = find_csi2(pcdev);
if (csi2_sd)
csi2_sd->grp_id = (long)icd;

ret = v4l2_subdev_call(csi2_sd, core, s_power, 1);
if (ret != -ENODEV && ret != -ENOIOCTLCMD && ret < 0) {
if (ret < 0 && ret != -ENOIOCTLCMD && ret != -ENODEV) {
pm_runtime_put_sync(ici->v4l2_dev.dev);
} else {
pcdev->icd = icd;
ret = 0;
return ret;
}

return ret;
/*
* -ENODEV is special: either csi2_sd == NULL or the CSI-2 driver
* has not found this soc-camera device among its clients
*/
if (ret == -ENODEV && csi2_sd)
csi2_sd->grp_id = 0;
pcdev->icd = icd;

return 0;
}

/* Called with .video_lock held */
Expand All @@ -588,6 +596,8 @@ static void sh_mobile_ceu_remove_device(struct soc_camera_device *icd)
BUG_ON(icd != pcdev->icd);

v4l2_subdev_call(csi2_sd, core, s_power, 0);
if (csi2_sd)
csi2_sd->grp_id = 0;
/* disable capture, disable interrupts */
ceu_write(pcdev, CEIER, 0);
sh_mobile_ceu_soft_reset(pcdev);
Expand Down

0 comments on commit 25a58eb

Please sign in to comment.