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(<6911uxc->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(<6911uxc->delayed_work_enable_hotplug, lt6911uxc_delayed_work_enable_hotplug); INIT_DELAYED_WORK(<6911uxc->delayed_work_res_change, -- Gitblit v1.6.2