From 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 22 Oct 2024 10:36:11 +0000 Subject: [PATCH] 修改4g拨号为QMI,需要在系统里后台执行quectel-CM --- 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