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 */ |
30 | |