Lines Matching refs:rkisp1

127 	struct rkisp1_device *rkisp1 =  in rkisp1_subdev_notifier_bound()  local
139 dev_err(rkisp1->dev, "failed to find source pad for %s\n", in rkisp1_subdev_notifier_bound()
145 return rkisp1_csi_link_sensor(rkisp1, sd, s_asd, source_pad); in rkisp1_subdev_notifier_bound()
148 &rkisp1->isp.sd.entity, in rkisp1_subdev_notifier_bound()
152 dev_err(rkisp1->dev, "failed to link source pad of %s\n", in rkisp1_subdev_notifier_bound()
162 struct rkisp1_device *rkisp1 = in rkisp1_subdev_notifier_complete() local
165 return v4l2_device_register_subdev_nodes(&rkisp1->v4l2_dev); in rkisp1_subdev_notifier_complete()
182 static int rkisp1_subdev_notifier_register(struct rkisp1_device *rkisp1) in rkisp1_subdev_notifier_register() argument
184 struct v4l2_async_notifier *ntf = &rkisp1->notifier; in rkisp1_subdev_notifier_register()
185 struct fwnode_handle *fwnode = dev_fwnode(rkisp1->dev); in rkisp1_subdev_notifier_register()
209 if (!(rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2)) { in rkisp1_subdev_notifier_register()
210 dev_err(rkisp1->dev, in rkisp1_subdev_notifier_register()
232 dev_err(rkisp1->dev, "failed to parse endpoint %pfw\n", in rkisp1_subdev_notifier_register()
240 dev_err(rkisp1->dev, in rkisp1_subdev_notifier_register()
250 dev_err(rkisp1->dev, in rkisp1_subdev_notifier_register()
277 dev_dbg(rkisp1->dev, "registered ep id %d, bus type %u, %u lanes\n", in rkisp1_subdev_notifier_register()
288 dev_dbg(rkisp1->dev, "no remote subdevice found\n"); in rkisp1_subdev_notifier_register()
290 ret = v4l2_async_nf_register(&rkisp1->v4l2_dev, ntf); in rkisp1_subdev_notifier_register()
305 struct rkisp1_device *rkisp1 = dev_get_drvdata(dev); in rkisp1_runtime_suspend() local
307 clk_bulk_disable_unprepare(rkisp1->clk_size, rkisp1->clks); in rkisp1_runtime_suspend()
313 struct rkisp1_device *rkisp1 = dev_get_drvdata(dev); in rkisp1_runtime_resume() local
319 ret = clk_bulk_prepare_enable(rkisp1->clk_size, rkisp1->clks); in rkisp1_runtime_resume()
336 static int rkisp1_create_links(struct rkisp1_device *rkisp1) in rkisp1_create_links() argument
341 if (rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2) { in rkisp1_create_links()
343 ret = media_create_pad_link(&rkisp1->csi.sd.entity, in rkisp1_create_links()
345 &rkisp1->isp.sd.entity, in rkisp1_create_links()
355 &rkisp1->resizer_devs[i].sd.entity; in rkisp1_create_links()
357 &rkisp1->capture_devs[i].vnode.vdev.entity; in rkisp1_create_links()
359 ret = media_create_pad_link(&rkisp1->isp.sd.entity, in rkisp1_create_links()
375 ret = media_create_pad_link(&rkisp1->params.vnode.vdev.entity, 0, in rkisp1_create_links()
376 &rkisp1->isp.sd.entity, in rkisp1_create_links()
384 return media_create_pad_link(&rkisp1->isp.sd.entity, in rkisp1_create_links()
386 &rkisp1->stats.vnode.vdev.entity, 0, in rkisp1_create_links()
391 static void rkisp1_entities_unregister(struct rkisp1_device *rkisp1) in rkisp1_entities_unregister() argument
393 if (rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2) in rkisp1_entities_unregister()
394 rkisp1_csi_unregister(rkisp1); in rkisp1_entities_unregister()
395 rkisp1_params_unregister(rkisp1); in rkisp1_entities_unregister()
396 rkisp1_stats_unregister(rkisp1); in rkisp1_entities_unregister()
397 rkisp1_capture_devs_unregister(rkisp1); in rkisp1_entities_unregister()
398 rkisp1_resizer_devs_unregister(rkisp1); in rkisp1_entities_unregister()
399 rkisp1_isp_unregister(rkisp1); in rkisp1_entities_unregister()
402 static int rkisp1_entities_register(struct rkisp1_device *rkisp1) in rkisp1_entities_register() argument
406 ret = rkisp1_isp_register(rkisp1); in rkisp1_entities_register()
410 ret = rkisp1_resizer_devs_register(rkisp1); in rkisp1_entities_register()
414 ret = rkisp1_capture_devs_register(rkisp1); in rkisp1_entities_register()
418 ret = rkisp1_stats_register(rkisp1); in rkisp1_entities_register()
422 ret = rkisp1_params_register(rkisp1); in rkisp1_entities_register()
426 if (rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2) { in rkisp1_entities_register()
427 ret = rkisp1_csi_register(rkisp1); in rkisp1_entities_register()
432 ret = rkisp1_create_links(rkisp1); in rkisp1_entities_register()
439 rkisp1_entities_unregister(rkisp1); in rkisp1_entities_register()
516 struct rkisp1_device *rkisp1; in rkisp1_probe() local
522 rkisp1 = devm_kzalloc(dev, sizeof(*rkisp1), GFP_KERNEL); in rkisp1_probe()
523 if (!rkisp1) in rkisp1_probe()
527 rkisp1->info = info; in rkisp1_probe()
529 dev_set_drvdata(dev, rkisp1); in rkisp1_probe()
530 rkisp1->dev = dev; in rkisp1_probe()
532 mutex_init(&rkisp1->stream_lock); in rkisp1_probe()
534 rkisp1->base_addr = devm_platform_ioremap_resource(pdev, 0); in rkisp1_probe()
535 if (IS_ERR(rkisp1->base_addr)) in rkisp1_probe()
536 return PTR_ERR(rkisp1->base_addr); in rkisp1_probe()
554 rkisp1->clks[i].id = info->clks[i]; in rkisp1_probe()
555 ret = devm_clk_bulk_get(dev, info->clk_size, rkisp1->clks); in rkisp1_probe()
558 rkisp1->clk_size = info->clk_size; in rkisp1_probe()
566 cif_id = rkisp1_read(rkisp1, RKISP1_CIF_VI_ID); in rkisp1_probe()
567 dev_dbg(rkisp1->dev, "CIF_ID 0x%08x\n", cif_id); in rkisp1_probe()
571 rkisp1->media_dev.hw_revision = info->isp_ver; in rkisp1_probe()
572 strscpy(rkisp1->media_dev.model, RKISP1_DRIVER_NAME, in rkisp1_probe()
573 sizeof(rkisp1->media_dev.model)); in rkisp1_probe()
574 rkisp1->media_dev.dev = &pdev->dev; in rkisp1_probe()
575 strscpy(rkisp1->media_dev.bus_info, RKISP1_BUS_INFO, in rkisp1_probe()
576 sizeof(rkisp1->media_dev.bus_info)); in rkisp1_probe()
577 media_device_init(&rkisp1->media_dev); in rkisp1_probe()
579 v4l2_dev = &rkisp1->v4l2_dev; in rkisp1_probe()
580 v4l2_dev->mdev = &rkisp1->media_dev; in rkisp1_probe()
583 ret = v4l2_device_register(rkisp1->dev, &rkisp1->v4l2_dev); in rkisp1_probe()
587 ret = media_device_register(&rkisp1->media_dev); in rkisp1_probe()
593 if (rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2) { in rkisp1_probe()
594 ret = rkisp1_csi_init(rkisp1); in rkisp1_probe()
599 ret = rkisp1_entities_register(rkisp1); in rkisp1_probe()
603 ret = rkisp1_subdev_notifier_register(rkisp1); in rkisp1_probe()
607 rkisp1_debug_init(rkisp1); in rkisp1_probe()
612 rkisp1_entities_unregister(rkisp1); in rkisp1_probe()
614 if (rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2) in rkisp1_probe()
615 rkisp1_csi_cleanup(rkisp1); in rkisp1_probe()
617 media_device_unregister(&rkisp1->media_dev); in rkisp1_probe()
619 v4l2_device_unregister(&rkisp1->v4l2_dev); in rkisp1_probe()
627 struct rkisp1_device *rkisp1 = platform_get_drvdata(pdev); in rkisp1_remove() local
629 v4l2_async_nf_unregister(&rkisp1->notifier); in rkisp1_remove()
630 v4l2_async_nf_cleanup(&rkisp1->notifier); in rkisp1_remove()
632 rkisp1_entities_unregister(rkisp1); in rkisp1_remove()
633 if (rkisp1->info->features & RKISP1_FEATURE_MIPI_CSI2) in rkisp1_remove()
634 rkisp1_csi_cleanup(rkisp1); in rkisp1_remove()
635 rkisp1_debug_cleanup(rkisp1); in rkisp1_remove()
637 media_device_unregister(&rkisp1->media_dev); in rkisp1_remove()
638 v4l2_device_unregister(&rkisp1->v4l2_dev); in rkisp1_remove()