meson_osd_afbcd.h 853 B

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