From 9370bb92b2d16684ee45cf24e879c93c509162da Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 19 Dec 2024 01:47:39 +0000
Subject: [PATCH] add wifi6 8852be driver

---
 kernel/drivers/gpu/drm/rockchip/rk628/rk628_hdmi.c |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/kernel/drivers/gpu/drm/rockchip/rk628/rk628_hdmi.c b/kernel/drivers/gpu/drm/rockchip/rk628/rk628_hdmi.c
index 3295086..29b5fcb 100644
--- a/kernel/drivers/gpu/drm/rockchip/rk628/rk628_hdmi.c
+++ b/kernel/drivers/gpu/drm/rockchip/rk628/rk628_hdmi.c
@@ -20,9 +20,8 @@
 #include <linux/regmap.h>
 
 #include <drm/drm_of.h>
-#include <drm/drmP.h>
 #include <drm/drm_atomic_helper.h>
-#include <drm/drm_crtc_helper.h>
+#include <drm/drm_probe_helper.h>
 #include <drm/drm_edid.h>
 #include <sound/hdmi-codec.h>
 
@@ -676,7 +675,8 @@
 	union hdmi_infoframe frame;
 	int rc;
 
-	rc = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi, mode, false);
+	rc = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
+						      &hdmi->connector, mode);
 
 	if (hdmi->hdmi_data.enc_out_format == HDMI_COLORSPACE_YUV444)
 		frame.avi.colorspace = HDMI_COLORSPACE_YUV444;
@@ -1023,8 +1023,8 @@
 };
 
 static void rk628_hdmi_bridge_mode_set(struct drm_bridge *bridge,
-				       struct drm_display_mode *mode,
-				       struct drm_display_mode *adj_mode)
+				       const struct drm_display_mode *mode,
+				       const struct drm_display_mode *adj_mode)
 {
 	struct rk628_hdmi *hdmi = bridge_to_hdmi(bridge);
 
@@ -1047,12 +1047,16 @@
 	rk628_hdmi_set_pwr_mode(hdmi, LOWER_PWR);
 }
 
-static int rk628_hdmi_bridge_attach(struct drm_bridge *bridge)
+static int rk628_hdmi_bridge_attach(struct drm_bridge *bridge,
+				    enum drm_bridge_attach_flags flags)
 {
 	struct rk628_hdmi *hdmi = bridge_to_hdmi(bridge);
 	struct drm_connector *connector = &hdmi->connector;
 	struct drm_device *drm = bridge->dev;
 	int ret;
+
+	if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)
+		return 0;
 
 	connector->polled = DRM_CONNECTOR_POLL_HPD;
 
@@ -1193,7 +1197,8 @@
 	/* do nothing */
 }
 
-static int rk628_hdmi_audio_digital_mute(struct device *dev, void *d, bool mute)
+static int rk628_hdmi_audio_mute(struct device *dev, void *d, bool mute,
+				 int direction)
 {
 	struct rk628_hdmi *hdmi = dev_get_drvdata(dev);
 
@@ -1238,8 +1243,9 @@
 static const struct hdmi_codec_ops audio_codec_ops = {
 	.hw_params = rk628_hdmi_audio_hw_params,
 	.audio_shutdown = rk628_hdmi_audio_shutdown,
-	.digital_mute = rk628_hdmi_audio_digital_mute,
+	.mute_stream = rk628_hdmi_audio_mute,
 	.get_eld = rk628_hdmi_audio_get_eld,
+	.no_capture_mute = 1,
 };
 
 static int rk628_hdmi_audio_codec_init(struct rk628_hdmi *hdmi,
@@ -1558,6 +1564,7 @@
 	hdmi->extcon = devm_extcon_dev_allocate(hdmi->dev, rk628_hdmi_cable);
 	if (IS_ERR(hdmi->extcon)) {
 		dev_err(hdmi->dev, "allocate extcon failed\n");
+		ret = PTR_ERR(hdmi->extcon);
 		goto fail;
 	}
 

--
Gitblit v1.6.2