static int fimc_isp_subdev_init(struct fimc_dev *fimc, int index) { struct s3c_fimc_isp_info *isp_info; int ret; ret = fimc_subdev_attach(fimc, index); if (ret) return ret; isp_info = fimc->pdata->isp_info[fimc->vid_cap.input_index]; ret = fimc_hw_set_camera_polarity(fimc, isp_info); if (!ret) { ret = v4l2_subdev_call(fimc->vid_cap.sd, core, s_power, 1); if (!ret) return ret; } fimc_subdev_unregister(fimc); err("ISP initialization failed: %d", ret); return ret; }
static int fimc_isp_subdev_init(struct fimc_dev *fimc, unsigned int index) { struct s5p_fimc_isp_info *isp_info; struct s5p_platform_fimc *pdata = fimc->pdata; int ret; if (index >= pdata->num_clients) return -EINVAL; isp_info = &pdata->isp_info[index]; if (isp_info->clk_frequency) clk_set_rate(fimc->clock[CLK_CAM], isp_info->clk_frequency); ret = clk_enable(fimc->clock[CLK_CAM]); if (ret) return ret; ret = fimc_subdev_attach(fimc, index); if (ret) return ret; ret = fimc_hw_set_camera_polarity(fimc, isp_info); if (ret) return ret; ret = v4l2_subdev_call(fimc->vid_cap.sd, core, s_power, 1); if (!ret) return ret; /* enabling power failed so unregister subdev */ fimc_subdev_unregister(fimc); v4l2_err(&fimc->vid_cap.v4l2_dev, "ISP initialization failed: %d\n", ret); return ret; }