blob: a62eab476d58c838c74e8530f9099966cd26f9ac [file] [log] [blame]
Thomas Gleixnerc942fdd2019-05-27 08:55:06 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Philipp Zabelb0444f12017-01-20 12:00:20 -02002/*
3 * Copyright (C) 2016 Pengutronix
Philipp Zabelb0444f12017-01-20 12:00:20 -02004 */
5
6#ifndef IMX_VDOA_H
7#define IMX_VDOA_H
8
9struct vdoa_data;
10struct vdoa_ctx;
11
12#if (defined CONFIG_VIDEO_IMX_VDOA || defined CONFIG_VIDEO_IMX_VDOA_MODULE)
13
14struct vdoa_ctx *vdoa_context_create(struct vdoa_data *vdoa);
15int vdoa_context_configure(struct vdoa_ctx *ctx,
16 unsigned int width, unsigned int height,
17 u32 pixelformat);
18void vdoa_context_destroy(struct vdoa_ctx *ctx);
19
20void vdoa_device_run(struct vdoa_ctx *ctx, dma_addr_t dst, dma_addr_t src);
21int vdoa_wait_for_completion(struct vdoa_ctx *ctx);
22
23#else
24
25static inline struct vdoa_ctx *vdoa_context_create(struct vdoa_data *vdoa)
26{
27 return NULL;
28}
29
30static inline int vdoa_context_configure(struct vdoa_ctx *ctx,
31 unsigned int width,
32 unsigned int height,
33 u32 pixelformat)
34{
35 return 0;
36}
37
38static inline void vdoa_context_destroy(struct vdoa_ctx *ctx) { };
39
40static inline void vdoa_device_run(struct vdoa_ctx *ctx,
41 dma_addr_t dst, dma_addr_t src) { };
42
43static inline int vdoa_wait_for_completion(struct vdoa_ctx *ctx)
44{
45 return 0;
46};
47
48#endif
49
50#endif /* IMX_VDOA_H */