Lines Matching refs:imxmd

133 static int create_internal_link(struct imx_media_dev *imxmd,  in create_internal_link()  argument
145 dev_dbg(imxmd->md.dev, "%s:%d -> %s:%d\n", in create_internal_link()
152 v4l2_err(&imxmd->v4l2_dev, "%s failed: %d\n", __func__, ret); in create_internal_link()
157 static int create_ipu_internal_links(struct imx_media_dev *imxmd, in create_ipu_internal_links() argument
179 sink = imxmd->sync_sd[ipu_id][link->remote]; in create_ipu_internal_links()
181 ret = create_internal_link(imxmd, sd, sink, link); in create_ipu_internal_links()
190 int imx_media_register_ipu_internal_subdevs(struct imx_media_dev *imxmd, in imx_media_register_ipu_internal_subdevs() argument
201 v4l2_err(&imxmd->v4l2_dev, "invalid IPU device!\n"); in imx_media_register_ipu_internal_subdevs()
207 v4l2_err(&imxmd->v4l2_dev, "invalid IPU id %d!\n", ipu_id); in imx_media_register_ipu_internal_subdevs()
211 mutex_lock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
214 if (!imxmd->ipu[ipu_id]) in imx_media_register_ipu_internal_subdevs()
215 imxmd->ipu[ipu_id] = ipu; in imx_media_register_ipu_internal_subdevs()
221 sd = imxmd->sync_sd[ipu_id][i]; in imx_media_register_ipu_internal_subdevs()
230 mutex_unlock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
231 sd = intsd->sync_register(&imxmd->v4l2_dev, ipu_dev, ipu, in imx_media_register_ipu_internal_subdevs()
233 mutex_lock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
239 imxmd->sync_sd[ipu_id][i] = sd; in imx_media_register_ipu_internal_subdevs()
252 sd = imxmd->sync_sd[ipu_id][i]; in imx_media_register_ipu_internal_subdevs()
257 ret = create_ipu_internal_links(imxmd, intsd, sd, ipu_id); in imx_media_register_ipu_internal_subdevs()
259 mutex_unlock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
260 imx_media_unregister_ipu_internal_subdevs(imxmd); in imx_media_register_ipu_internal_subdevs()
265 mutex_unlock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
271 sd = imxmd->sync_sd[ipu_id][i]; in imx_media_register_ipu_internal_subdevs()
274 mutex_unlock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
276 mutex_lock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
279 mutex_unlock(&imxmd->mutex); in imx_media_register_ipu_internal_subdevs()
283 void imx_media_unregister_ipu_internal_subdevs(struct imx_media_dev *imxmd) in imx_media_unregister_ipu_internal_subdevs() argument
289 mutex_lock(&imxmd->mutex); in imx_media_unregister_ipu_internal_subdevs()
294 sd = imxmd->sync_sd[i][j]; in imx_media_unregister_ipu_internal_subdevs()
299 mutex_unlock(&imxmd->mutex); in imx_media_unregister_ipu_internal_subdevs()
301 mutex_lock(&imxmd->mutex); in imx_media_unregister_ipu_internal_subdevs()
305 mutex_unlock(&imxmd->mutex); in imx_media_unregister_ipu_internal_subdevs()