GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / gpu / drm / meson / meson_osd_afbcd.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2019 BayLibre, SAS
4  * Author: Neil Armstrong <narmstrong@baylibre.com>
5  */
6
7 #ifndef __MESON_OSD_AFBCD_H
8 #define __MESON_OSD_AFBCD_H
9
10 #include "meson_drv.h"
11
12 /* This is an internal address used to transfer pixel from AFBC to the VIU */
13 #define MESON_G12A_AFBCD_OUT_ADDR       0x1000000
14
15 struct meson_afbcd_ops {
16         int (*init)(struct meson_drm *priv);
17         void (*exit)(struct meson_drm *priv);
18         int (*reset)(struct meson_drm *priv);
19         int (*enable)(struct meson_drm *priv);
20         int (*disable)(struct meson_drm *priv);
21         int (*setup)(struct meson_drm *priv);
22         int (*fmt_to_blk_mode)(u64 modifier, uint32_t format);
23         bool (*supported_fmt)(u64 modifier, uint32_t format);
24 };
25
26 extern struct meson_afbcd_ops meson_afbcd_gxm_ops;
27 extern struct meson_afbcd_ops meson_afbcd_g12a_ops;
28
29 #endif /* __MESON_OSD_AFBCD_H */