1*501802e2SMichael Riesch /* SPDX-License-Identifier: GPL-2.0 */ 2*501802e2SMichael Riesch /* 3*501802e2SMichael Riesch * Rockchip Camera Interface (CIF) Driver 4*501802e2SMichael Riesch * 5*501802e2SMichael Riesch * Abstraction for the DMA part and the ping-pong scheme (a double-buffering 6*501802e2SMichael Riesch * mechanism) of the different CIF variants. 7*501802e2SMichael Riesch * Each stream is represented as V4L2 device whose corresponding media entity 8*501802e2SMichael Riesch * has one sink pad. 9*501802e2SMichael Riesch * The sink pad is connected to an instance of the INTERFACE/CROP abstraction 10*501802e2SMichael Riesch * in rkcif-interface.c. 11*501802e2SMichael Riesch * 12*501802e2SMichael Riesch * Copyright (C) 2025 Michael Riesch <michael.riesch@wolfvision.net> 13*501802e2SMichael Riesch * Copyright (C) 2025 Collabora, Ltd. 14*501802e2SMichael Riesch */ 15*501802e2SMichael Riesch 16*501802e2SMichael Riesch #ifndef _RKCIF_STREAM_H 17*501802e2SMichael Riesch #define _RKCIF_STREAM_H 18*501802e2SMichael Riesch 19*501802e2SMichael Riesch #include "rkcif-common.h" 20*501802e2SMichael Riesch 21*501802e2SMichael Riesch void rkcif_stream_pingpong(struct rkcif_stream *stream); 22*501802e2SMichael Riesch 23*501802e2SMichael Riesch int rkcif_stream_register(struct rkcif_device *rkcif, 24*501802e2SMichael Riesch struct rkcif_stream *stream); 25*501802e2SMichael Riesch 26*501802e2SMichael Riesch void rkcif_stream_unregister(struct rkcif_stream *stream); 27*501802e2SMichael Riesch 28*501802e2SMichael Riesch const struct rkcif_output_fmt * 29*501802e2SMichael Riesch rkcif_stream_find_output_fmt(struct rkcif_stream *stream, bool ret_def, 30*501802e2SMichael Riesch u32 pixelfmt); 31*501802e2SMichael Riesch 32*501802e2SMichael Riesch #endif 33