From 6778948f9de86c3cfaf36725a7c87dcff9ba247f Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 08:20:59 +0000
Subject: [PATCH] kernel_5.10 no rt

---
 kernel/drivers/media/i2c/lt6911uxc.c |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/kernel/drivers/media/i2c/lt6911uxc.c b/kernel/drivers/media/i2c/lt6911uxc.c
index 23da66e..c801d29 100644
--- a/kernel/drivers/media/i2c/lt6911uxc.c
+++ b/kernel/drivers/media/i2c/lt6911uxc.c
@@ -18,6 +18,7 @@
 #include <linux/module.h>
 #include <linux/of_graph.h>
 #include <linux/rk-camera-module.h>
+#include <linux/rk_hdmirx_class.h>
 #include <linux/slab.h>
 #include <linux/timer.h>
 #include <linux/v4l2-dv-timings.h>
@@ -89,6 +90,7 @@
 	u32 module_index;
 	u32 csi_lanes_in_use;
 	u32 audio_sampling_rate;
+	struct device *classdev;
 };
 
 struct lt6911uxc_mode {
@@ -1279,6 +1281,34 @@
 }
 #endif
 
+static ssize_t audio_rate_show(struct device *dev,
+			       struct device_attribute *attr, char *buf)
+{
+	struct lt6911uxc *lt6911uxc = dev_get_drvdata(dev);
+
+	return snprintf(buf, PAGE_SIZE, "%d", lt6911uxc->audio_sampling_rate);
+}
+
+static ssize_t audio_present_show(struct device *dev,
+				  struct device_attribute *attr, char *buf)
+{
+	struct lt6911uxc *lt6911uxc = dev_get_drvdata(dev);
+
+	return snprintf(buf, PAGE_SIZE, "%d",
+			tx_5v_power_present(&lt6911uxc->sd) ?
+			lt6911uxc->is_audio_present : 0);
+}
+
+static DEVICE_ATTR_RO(audio_rate);
+static DEVICE_ATTR_RO(audio_present);
+
+static struct attribute *lt6911_attrs[] = {
+	&dev_attr_audio_rate.attr,
+	&dev_attr_audio_present.attr,
+	NULL
+};
+ATTRIBUTE_GROUPS(lt6911);
+
 static int lt6911uxc_probe(struct i2c_client *client,
 		const struct i2c_device_id *id)
 {
@@ -1355,6 +1385,14 @@
 		goto err_clean_entity;
 	}
 
+	lt6911uxc->classdev = device_create_with_groups(rk_hdmirx_class(),
+							dev, MKDEV(0, 0),
+							lt6911uxc,
+							lt6911_groups,
+							"lt6911");
+	if (IS_ERR(lt6911uxc->classdev))
+		goto err_clean_entity;
+
 	INIT_DELAYED_WORK(&lt6911uxc->delayed_work_enable_hotplug,
 			lt6911uxc_delayed_work_enable_hotplug);
 	INIT_DELAYED_WORK(&lt6911uxc->delayed_work_res_change,

--
Gitblit v1.6.2