diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index 219a3f0431b4..0251e4b8270d 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -12892,3 +12892,20 @@ int rkcif_sditf_disconnect(struct video_device *vdev) return ret; } EXPORT_SYMBOL(rkcif_sditf_disconnect); + +void rkcif_external_soft_reset(struct video_device *vdev) +{ + struct rkcif_vdev_node *vnode = NULL; + struct rkcif_stream *stream = NULL; + struct rkcif_device *cifdev = NULL; + + if (!vdev) + return; + + vnode = vdev_to_node(vdev); + stream = to_rkcif_stream(vnode); + cifdev = stream->cifdev; + if (cifdev && cifdev->chip_id >= CHIP_RK3588_CIF) + rkcif_do_soft_reset(cifdev); +} +EXPORT_SYMBOL(rkcif_external_soft_reset); diff --git a/drivers/media/platform/rockchip/cif/rkcif-externel.h b/drivers/media/platform/rockchip/cif/rkcif-externel.h index fe21f5f27fb4..50c5d774373f 100644 --- a/drivers/media/platform/rockchip/cif/rkcif-externel.h +++ b/drivers/media/platform/rockchip/cif/rkcif-externel.h @@ -9,5 +9,6 @@ #include int rkcif_sditf_disconnect(struct video_device *vdev); +void rkcif_external_soft_reset(struct video_device *vdev); #endif