1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2019 BayLibre, SAS
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
7 #ifndef __MESON_OSD_AFBCD_H
8 #define __MESON_OSD_AFBCD_H
10 #include "meson_drv.h"
12 /* This is an internal address used to transfer pixel from AFBC to the VIU */
13 #define MESON_G12A_AFBCD_OUT_ADDR 0x1000000
15 struct meson_afbcd_ops
{
16 int (*init
)(struct meson_drm
*priv
);
17 int (*reset
)(struct meson_drm
*priv
);
18 int (*enable
)(struct meson_drm
*priv
);
19 int (*disable
)(struct meson_drm
*priv
);
20 int (*setup
)(struct meson_drm
*priv
);
21 int (*fmt_to_blk_mode
)(u64 modifier
, uint32_t format
);
22 bool (*supported_fmt
)(u64 modifier
, uint32_t format
);
25 extern struct meson_afbcd_ops meson_afbcd_gxm_ops
;
26 extern struct meson_afbcd_ops meson_afbcd_g12a_ops
;
28 #endif /* __MESON_OSD_AFBCD_H */