},
};
-static void tegra_camera_activate(struct tegra_camera_dev *cam)
+static int tegra_camera_activate(struct tegra_camera_dev *cam)
{
struct tegra_camera_ops *cam_ops = cam->ops;
int ret;
- nvhost_module_busy_ext(cam->ndev);
+ ret = nvhost_module_busy_ext(cam->ndev);
+ if (ret) {
+ dev_err(&cam->ndev->dev, "nvhost module is busy\n");
+ return ret;
+ }
/* Enable external power */
if (cam->reg) {
if (cam_ops->save_syncpts)
cam_ops->save_syncpts(cam);
+
+ return 0;
}
static void tegra_camera_deactivate(struct tegra_camera_dev *cam)
{
struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
struct tegra_camera_dev *cam = ici->priv;
+ int ret;
if (!cam->enable_refcnt) {
- tegra_camera_activate(cam);
+ ret = tegra_camera_activate(cam);
+ if (ret)
+ return ret;
cam->num_frames = 0;
}
cam->enable_refcnt++;