42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
/* 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 <drm/drm_encoder.h>
|
|
#include <drm/amlogic/meson_connector_dev.h>
|
|
|
|
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
|
|
|