linux/drivers/gpu/drm/meson/meson_osd_afbcd.h
Martin Blumenstingl 04b8a5d9cf drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops
Use this to simplify the driver shutdown. It will also come handy when
fixing the error handling in meson_drv_bind_master().

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Fixes: d1b5e41e13a7e9 ("drm/meson: Add AFBCD module driver")
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211230235515.1627522-2-martin.blumenstingl@googlemail.com
2022-01-03 12:28:25 +01:00

30 lines
853 B
C

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