/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2019 BayLibre, SAS * Author: Neil Armstrong <narmstrong@baylibre.com> */ #ifndef __MESON_OSD_AFBCD_H #define __MESON_OSD_AFBCD_H #include "meson_drv.h" /* This is an internal address used to transfer pixel from AFBC to the VIU */ #define MESON_G12A_AFBCD_OUT_ADDR 0x1000000 struct meson_afbcd_ops { int (*init)(struct meson_drm *priv); void (*exit)(struct meson_drm *priv); int (*reset)(struct meson_drm *priv); int (*enable)(struct meson_drm *priv); int (*disable)(struct meson_drm *priv); int (*setup)(struct meson_drm *priv); int (*fmt_to_blk_mode)(u64 modifier, uint32_t format); bool (*supported_fmt)(u64 modifier, uint32_t format); }; extern struct meson_afbcd_ops meson_afbcd_gxm_ops; extern struct meson_afbcd_ops meson_afbcd_g12a_ops; #endif /* __MESON_OSD_AFBCD_H */