From 9999e48639b3cecb08ffb37358bcba3b48161b29 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 10 May 2024 08:50:17 +0000 Subject: [PATCH] add ax88772_rst --- kernel/drivers/media/platform/rockchip/ispp/dev.c | 116 ++++++++++++++++++++++++++-------------------------------- 1 files changed, 52 insertions(+), 64 deletions(-) diff --git a/kernel/drivers/media/platform/rockchip/ispp/dev.c b/kernel/drivers/media/platform/rockchip/ispp/dev.c index dfb0d26..a58bf3b 100644 --- a/kernel/drivers/media/platform/rockchip/ispp/dev.c +++ b/kernel/drivers/media/platform/rockchip/ispp/dev.c @@ -132,95 +132,80 @@ stream->linked = true; } source = &stream->vnode.vdev.entity; - ret = media_create_pad_link(source, 0, sink, - RKISPP_PAD_SINK, flags); + ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK, flags); if (ret < 0) return ret; /* params links */ flags = MEDIA_LNK_FL_ENABLED; - source = &ispp_dev->params_vdev[PARAM_VDEV_TNR].vnode.vdev.entity; - ret = media_create_pad_link(source, 0, sink, - RKISPP_PAD_SINK_PARAMS, flags); - if (ret < 0) - return ret; - - flags = MEDIA_LNK_FL_ENABLED; - source = &ispp_dev->params_vdev[PARAM_VDEV_NR].vnode.vdev.entity; - ret = media_create_pad_link(source, 0, sink, - RKISPP_PAD_SINK_PARAMS, flags); - if (ret < 0) - return ret; - - flags = MEDIA_LNK_FL_ENABLED; source = &ispp_dev->params_vdev[PARAM_VDEV_FEC].vnode.vdev.entity; - ret = media_create_pad_link(source, 0, sink, - RKISPP_PAD_SINK_PARAMS, flags); + ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags); if (ret < 0) return ret; + ispp_dev->stream_vdev.module_ens = ISPP_MODULE_FEC; + if (ispp_dev->ispp_ver == ISPP_V10) { + /* params links */ + source = &ispp_dev->params_vdev[PARAM_VDEV_TNR].vnode.vdev.entity; + ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags); + if (ret < 0) + return ret; + source = &ispp_dev->params_vdev[PARAM_VDEV_NR].vnode.vdev.entity; + ret = media_create_pad_link(source, 0, sink, RKISPP_PAD_SINK_PARAMS, flags); + if (ret < 0) + return ret; - /* stats links */ - flags = MEDIA_LNK_FL_ENABLED; - source = &ispp_dev->ispp_sdev.sd.entity; - sink = &ispp_dev->stats_vdev[STATS_VDEV_TNR].vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, - sink, 0, flags); - if (ret < 0) - return ret; + /* stats links */ + source = &ispp_dev->ispp_sdev.sd.entity; + sink = &ispp_dev->stats_vdev[STATS_VDEV_TNR].vnode.vdev.entity; + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, sink, 0, flags); + if (ret < 0) + return ret; + sink = &ispp_dev->stats_vdev[STATS_VDEV_NR].vnode.vdev.entity; + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, sink, 0, flags); + if (ret < 0) + return ret; - flags = MEDIA_LNK_FL_ENABLED; - source = &ispp_dev->ispp_sdev.sd.entity; - sink = &ispp_dev->stats_vdev[STATS_VDEV_NR].vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE_STATS, - sink, 0, flags); - if (ret < 0) - return ret; + /* output stream links */ + stream = &stream_vdev->stream[STREAM_S0]; + stream->linked = flags; + sink = &stream->vnode.vdev.entity; + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags); + if (ret < 0) + return ret; - /* output stream links */ + stream = &stream_vdev->stream[STREAM_S1]; + stream->linked = flags; + sink = &stream->vnode.vdev.entity; + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags); + if (ret < 0) + return ret; + + stream = &stream_vdev->stream[STREAM_S2]; + stream->linked = flags; + sink = &stream->vnode.vdev.entity; + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags); + if (ret < 0) + return ret; + + ispp_dev->stream_vdev.module_ens = ISPP_MODULE_NR | ISPP_MODULE_SHP; + } + flags = rkispp_stream_sync ? 0 : MEDIA_LNK_FL_ENABLED; stream = &stream_vdev->stream[STREAM_MB]; stream->linked = flags; source = &ispp_dev->ispp_sdev.sd.entity; sink = &stream->vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, - sink, 0, flags); - if (ret < 0) - return ret; - - stream = &stream_vdev->stream[STREAM_S0]; - stream->linked = flags; - sink = &stream->vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, - sink, 0, flags); - if (ret < 0) - return ret; - - stream = &stream_vdev->stream[STREAM_S1]; - stream->linked = flags; - sink = &stream->vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, - sink, 0, flags); - if (ret < 0) - return ret; - - stream = &stream_vdev->stream[STREAM_S2]; - stream->linked = flags; - sink = &stream->vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, - sink, 0, flags); + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags); if (ret < 0) return ret; stream = &stream_vdev->stream[STREAM_VIR]; stream->linked = flags; sink = &stream->vnode.vdev.entity; - ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, - sink, 0, flags); + ret = media_create_pad_link(source, RKISPP_PAD_SOURCE, sink, 0, flags); if (ret < 0) return ret; - /* default enable */ - ispp_dev->stream_vdev.module_ens = ISPP_MODULE_NR | ISPP_MODULE_SHP; return 0; } @@ -262,6 +247,8 @@ static const struct of_device_id rkispp_plat_of_match[] = { { .compatible = "rockchip,rv1126-rkispp-vir", + }, { + .compatible = "rockchip,rk3588-rkispp-vir", }, {}, }; @@ -408,3 +395,4 @@ MODULE_AUTHOR("Rockchip Camera/ISP team"); MODULE_DESCRIPTION("Rockchip ISPP platform driver"); MODULE_LICENSE("GPL v2"); +MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver); -- Gitblit v1.6.2