/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ /* * Copyright (c) 2019 Amlogic, Inc. All rights reserved. */ #ifndef __MESON_PANEL_H #define __MESON_PANEL_H #include "meson_drv.h" #include #include struct meson_panel { struct meson_connector base; struct drm_encoder encoder; struct drm_device *drm; struct meson_panel_dev *panel_dev; struct drm_property *panel_type_prop; struct drm_property *panel_ready_prop; int panel_type; bool panel_ready; /* vrr related */ int num_vrr_group; struct drm_vrr_mode_group groups[MAX_VRR_MODE_GROUP]; struct meson_connector_dev *con_dev; }; #define connector_to_meson_panel(x) \ container_of(connector_to_meson_connector(x), struct meson_panel, base) #define encoder_to_meson_panel(x) container_of(x, struct meson_panel, encoder) #define drm_panel_to_meson_panel(x) container_of(x, struct meson_panel, panel) int meson_panel_dev_bind(struct drm_device *drm, int type, struct meson_connector_dev *intf); int meson_panel_dev_unbind(struct drm_device *drm, int type, struct meson_connector_dev *intf); #endif