From 151fecfb72a0d602dfe79790602ef64b4e241574 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 19 Feb 2024 01:51:07 +0000
Subject: [PATCH] export RK_PA3
---
kernel/include/drm/bridge/analogix_dp.h | 48 +++++++++++++++++++++++-------------------------
1 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/kernel/include/drm/bridge/analogix_dp.h b/kernel/include/drm/bridge/analogix_dp.h
index 7207fae..09f0dfe 100644
--- a/kernel/include/drm/bridge/analogix_dp.h
+++ b/kernel/include/drm/bridge/analogix_dp.h
@@ -1,12 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Analogix DP (Display Port) Core interface driver.
*
* Copyright (C) 2015 Rockchip Electronics Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
*/
#ifndef _ANALOGIX_DP_H_
#define _ANALOGIX_DP_H_
@@ -19,64 +15,64 @@
enum analogix_dp_devtype {
EXYNOS_DP,
RK3288_DP,
- RK3368_EDP,
RK3399_EDP,
RK3568_EDP,
+ RK3588_EDP,
};
static inline bool is_rockchip(enum analogix_dp_devtype type)
{
switch (type) {
case RK3288_DP:
- case RK3368_EDP:
case RK3399_EDP:
case RK3568_EDP:
+ case RK3588_EDP:
return true;
default:
return false;
}
}
-struct analogix_dp_plat_data;
-struct analogix_dp_property_ops {
- int (*attach_properties)(struct drm_connector *connector);
- int (*get_property)(struct drm_connector *connector,
- const struct drm_connector_state *state,
- struct drm_property *property,
- u64 *val,
- struct analogix_dp_plat_data *data);
-};
-
struct analogix_dp_plat_data {
enum analogix_dp_devtype dev_type;
struct drm_panel *panel;
+ struct drm_bridge *bridge;
struct drm_encoder *encoder;
struct drm_connector *connector;
bool skip_connector;
bool ssc;
+
+ bool split_mode;
+
+ /* split with other display interface */
+ bool dual_connector_split;
+ bool left_display;
+
+ struct analogix_dp_device *left;
+ struct analogix_dp_device *right;
int (*power_on_start)(struct analogix_dp_plat_data *);
int (*power_on_end)(struct analogix_dp_plat_data *);
int (*power_off)(struct analogix_dp_plat_data *);
int (*attach)(struct analogix_dp_plat_data *, struct drm_bridge *,
struct drm_connector *);
+ void (*detach)(struct analogix_dp_plat_data *, struct drm_bridge *);
int (*get_modes)(struct analogix_dp_plat_data *,
struct drm_connector *);
- /* Vendor Property support */
- const struct analogix_dp_property_ops *property_ops;
+ void (*convert_to_split_mode)(struct drm_display_mode *);
+ void (*convert_to_origin_mode)(struct drm_display_mode *);
};
-
-int analogix_dp_psr_enabled(struct analogix_dp_device *dp);
-int analogix_dp_enable_psr(struct analogix_dp_device *dp);
-int analogix_dp_disable_psr(struct analogix_dp_device *dp);
int analogix_dp_resume(struct analogix_dp_device *dp);
int analogix_dp_suspend(struct analogix_dp_device *dp);
+int analogix_dp_runtime_resume(struct analogix_dp_device *dp);
+int analogix_dp_runtime_suspend(struct analogix_dp_device *dp);
struct analogix_dp_device *
-analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
- struct analogix_dp_plat_data *plat_data);
+analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data);
+int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev);
void analogix_dp_unbind(struct analogix_dp_device *dp);
+void analogix_dp_remove(struct analogix_dp_device *dp);
int analogix_dp_start_crc(struct drm_connector *connector);
int analogix_dp_stop_crc(struct drm_connector *connector);
@@ -88,5 +84,7 @@
int analogix_dp_audio_startup(struct analogix_dp_device *dp);
int analogix_dp_audio_get_eld(struct analogix_dp_device *dp,
u8 *buf, size_t len);
+int analogix_dp_loader_protect(struct analogix_dp_device *dp);
+void analogix_dp_disable(struct analogix_dp_device *dp);
#endif /* _ANALOGIX_DP_H_ */
--
Gitblit v1.6.2