Lines Matching refs:rkisp1

121 static int rkisp1_create_links(struct rkisp1_device *rkisp1)  in rkisp1_create_links()  argument
131 list_for_each_entry(sd, &rkisp1->v4l2_dev.subdevs, list) { in rkisp1_create_links()
132 if (sd == &rkisp1->isp.sd || in rkisp1_create_links()
133 sd == &rkisp1->resizer_devs[RKISP1_MAINPATH].sd || in rkisp1_create_links()
134 sd == &rkisp1->resizer_devs[RKISP1_SELFPATH].sd) in rkisp1_create_links()
140 dev_err(rkisp1->dev, "failed to find src pad for %s\n", in rkisp1_create_links()
147 &rkisp1->isp.sd.entity, in rkisp1_create_links()
160 source = &rkisp1->isp.sd.entity; in rkisp1_create_links()
161 sink = &rkisp1->resizer_devs[i].sd.entity; in rkisp1_create_links()
169 sink = &rkisp1->capture_devs[i].vnode.vdev.entity; in rkisp1_create_links()
177 source = &rkisp1->params.vnode.vdev.entity; in rkisp1_create_links()
178 sink = &rkisp1->isp.sd.entity; in rkisp1_create_links()
185 source = &rkisp1->isp.sd.entity; in rkisp1_create_links()
186 sink = &rkisp1->stats.vnode.vdev.entity; in rkisp1_create_links()
195 struct rkisp1_device *rkisp1 = in rkisp1_subdev_notifier_bound() local
203 s_asd->dphy = devm_phy_get(rkisp1->dev, "dphy"); in rkisp1_subdev_notifier_bound()
206 dev_err(rkisp1->dev, "Couldn't get the MIPI D-PHY\n"); in rkisp1_subdev_notifier_bound()
227 struct rkisp1_device *rkisp1 = in rkisp1_subdev_notifier_complete() local
231 ret = rkisp1_create_links(rkisp1); in rkisp1_subdev_notifier_complete()
235 ret = v4l2_device_register_subdev_nodes(&rkisp1->v4l2_dev); in rkisp1_subdev_notifier_complete()
239 dev_dbg(rkisp1->dev, "Async subdev notifier completed\n"); in rkisp1_subdev_notifier_complete()
250 static int rkisp1_subdev_notifier(struct rkisp1_device *rkisp1) in rkisp1_subdev_notifier() argument
252 struct v4l2_async_notifier *ntf = &rkisp1->notifier; in rkisp1_subdev_notifier()
265 ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(rkisp1->dev), in rkisp1_subdev_notifier()
287 dev_dbg(rkisp1->dev, "registered ep id %d with %d lanes\n", in rkisp1_subdev_notifier()
302 dev_dbg(rkisp1->dev, "no remote subdevice found\n"); in rkisp1_subdev_notifier()
304 ret = v4l2_async_nf_register(&rkisp1->v4l2_dev, ntf); in rkisp1_subdev_notifier()
318 struct rkisp1_device *rkisp1 = dev_get_drvdata(dev); in rkisp1_runtime_suspend() local
320 clk_bulk_disable_unprepare(rkisp1->clk_size, rkisp1->clks); in rkisp1_runtime_suspend()
326 struct rkisp1_device *rkisp1 = dev_get_drvdata(dev); in rkisp1_runtime_resume() local
332 ret = clk_bulk_prepare_enable(rkisp1->clk_size, rkisp1->clks); in rkisp1_runtime_resume()
349 static int rkisp1_entities_register(struct rkisp1_device *rkisp1) in rkisp1_entities_register() argument
353 ret = rkisp1_isp_register(rkisp1); in rkisp1_entities_register()
357 ret = rkisp1_resizer_devs_register(rkisp1); in rkisp1_entities_register()
361 ret = rkisp1_capture_devs_register(rkisp1); in rkisp1_entities_register()
365 ret = rkisp1_stats_register(rkisp1); in rkisp1_entities_register()
369 ret = rkisp1_params_register(rkisp1); in rkisp1_entities_register()
373 ret = rkisp1_subdev_notifier(rkisp1); in rkisp1_entities_register()
375 dev_err(rkisp1->dev, in rkisp1_entities_register()
382 rkisp1_params_unregister(rkisp1); in rkisp1_entities_register()
384 rkisp1_stats_unregister(rkisp1); in rkisp1_entities_register()
386 rkisp1_capture_devs_unregister(rkisp1); in rkisp1_entities_register()
388 rkisp1_resizer_devs_unregister(rkisp1); in rkisp1_entities_register()
390 rkisp1_isp_unregister(rkisp1); in rkisp1_entities_register()
461 static void rkisp1_debug_init(struct rkisp1_device *rkisp1) in rkisp1_debug_init() argument
463 struct rkisp1_debug *debug = &rkisp1->debug; in rkisp1_debug_init()
465 debug->debugfs_dir = debugfs_create_dir(dev_name(rkisp1->dev), NULL); in rkisp1_debug_init()
495 struct rkisp1_device *rkisp1; in rkisp1_probe() local
504 rkisp1 = devm_kzalloc(dev, sizeof(*rkisp1), GFP_KERNEL); in rkisp1_probe()
505 if (!rkisp1) in rkisp1_probe()
508 dev_set_drvdata(dev, rkisp1); in rkisp1_probe()
509 rkisp1->dev = dev; in rkisp1_probe()
511 mutex_init(&rkisp1->stream_lock); in rkisp1_probe()
513 rkisp1->base_addr = devm_platform_ioremap_resource(pdev, 0); in rkisp1_probe()
514 if (IS_ERR(rkisp1->base_addr)) in rkisp1_probe()
515 return PTR_ERR(rkisp1->base_addr); in rkisp1_probe()
533 rkisp1->clks[i].id = match_data->clks[i]; in rkisp1_probe()
534 ret = devm_clk_bulk_get(dev, match_data->clk_size, rkisp1->clks); in rkisp1_probe()
537 rkisp1->clk_size = match_data->clk_size; in rkisp1_probe()
541 rkisp1->media_dev.hw_revision = match_data->isp_ver; in rkisp1_probe()
542 strscpy(rkisp1->media_dev.model, RKISP1_DRIVER_NAME, in rkisp1_probe()
543 sizeof(rkisp1->media_dev.model)); in rkisp1_probe()
544 rkisp1->media_dev.dev = &pdev->dev; in rkisp1_probe()
545 strscpy(rkisp1->media_dev.bus_info, RKISP1_BUS_INFO, in rkisp1_probe()
546 sizeof(rkisp1->media_dev.bus_info)); in rkisp1_probe()
547 media_device_init(&rkisp1->media_dev); in rkisp1_probe()
549 v4l2_dev = &rkisp1->v4l2_dev; in rkisp1_probe()
550 v4l2_dev->mdev = &rkisp1->media_dev; in rkisp1_probe()
553 ret = v4l2_device_register(rkisp1->dev, &rkisp1->v4l2_dev); in rkisp1_probe()
557 ret = media_device_register(&rkisp1->media_dev); in rkisp1_probe()
563 ret = rkisp1_entities_register(rkisp1); in rkisp1_probe()
567 rkisp1_debug_init(rkisp1); in rkisp1_probe()
572 media_device_unregister(&rkisp1->media_dev); in rkisp1_probe()
574 v4l2_device_unregister(&rkisp1->v4l2_dev); in rkisp1_probe()
581 struct rkisp1_device *rkisp1 = platform_get_drvdata(pdev); in rkisp1_remove() local
583 v4l2_async_nf_unregister(&rkisp1->notifier); in rkisp1_remove()
584 v4l2_async_nf_cleanup(&rkisp1->notifier); in rkisp1_remove()
586 rkisp1_params_unregister(rkisp1); in rkisp1_remove()
587 rkisp1_stats_unregister(rkisp1); in rkisp1_remove()
588 rkisp1_capture_devs_unregister(rkisp1); in rkisp1_remove()
589 rkisp1_resizer_devs_unregister(rkisp1); in rkisp1_remove()
590 rkisp1_isp_unregister(rkisp1); in rkisp1_remove()
592 media_device_unregister(&rkisp1->media_dev); in rkisp1_remove()
593 v4l2_device_unregister(&rkisp1->v4l2_dev); in rkisp1_remove()
597 debugfs_remove_recursive(rkisp1->debug.debugfs_dir); in rkisp1_remove()