[ RK3566-Android11 ] 关于移植 RK628F 驱动以及后HDMI-IN图像延迟/无声等问题

问题描述

由前一篇文章https://blog.csdn.net/jay547063443/article/details/142059700?fromshare=blogdetail&sharetype=blogdetail&sharerId=142059700&sharerefer=PC&sharesource=jay547063443&sharefrom=from_link,移植HDMI-IN部分驱动后出现:
1.HDMI-IN图形延迟 出图慢 rkCamera2应用自动跳出等问题
2.HDMIN-IN无声


解决方案:

问题一:
kernel\drivers\media\i2c\rk628\rk628_hdmirx.c

int rk628_is_avi_ready(struct rk628 *rk628, bool avi_rcv_rdy)
{u8 i;u32 val, avi_pb = 0;u8 cnt = 0, max_cnt = 2;u32 hdcp_ctrl_val = 0;if (rk628->version >= RK628F_VERSION)return 1;
+
+	if (rk628->version >= RK628D_VERSION)
+		return 1;
+rk628_i2c_read(rk628, HDMI_RX_HDCP_CTRL, &val);if ((val & HDCP_ENABLE_MASK))max_cnt = 5;

问题二:
首先确保上层hardware\rockchip\audio\tinyalsa_hal\audio_hw.c声卡有添加,以我的声卡为例子
在这里插入图片描述
其次这里不要修改为rk628,还是用原来的hdmirx

最后添加如下kernelq驱动部分补丁:

From b027f3089f3a84198788363540dcaae52949c4a2 Mon Sep 17 00:00:00 2001
From: Shunhua Lan <lsh@rock-chips.com>
Date: Fri, 27 Sep 2024 16:47:41 +0800
Subject: [PATCH] media: i2c: rk628: repair cts n interrupt lossChange-Id: I9603a1733555b535f0542ca6677e9cb27647a399
Signed-off-by: Shunhua Lan <lsh@rock-chips.com>
---diff --git a/drivers/media/i2c/rk628/rk628_csi_v4l2.c b/drivers/media/i2c/rk628/rk628_csi_v4l2.c
index 86f35b7..bb91f0c 100644
--- a/drivers/media/i2c/rk628/rk628_csi_v4l2.c
+++ b/drivers/media/i2c/rk628/rk628_csi_v4l2.c
@@ -1567,6 +1567,24 @@return -EINVAL;}+	if (csi->rk628->version < RK628F_VERSION) {
+		if (rk628_audio_ctsnints_enabled(audio_info)) {
+			rk628_i2c_read(csi->rk628, HDMI_RX_PDEC_ISTS, &pdec_ints);
+			if (pdec_ints & (ACR_N_CHG_ICLR | ACR_CTS_CHG_ICLR)) {
+				rk628_csi_isr_ctsn(audio_info, pdec_ints);
+				pdec_ints &= ~(ACR_CTS_CHG_ICLR | ACR_CTS_CHG_ICLR);
+				*handled = true;
+			}
+		}
+		if (rk628_audio_fifoints_enabled(audio_info)) {
+			rk628_i2c_read(csi->rk628, HDMI_RX_AUD_FIFO_ISTS, &fifo_ints);
+			if (fifo_ints & 0x18) {
+				rk628_csi_isr_fifoints(audio_info, fifo_ints);
+				*handled = true;
+			}
+		}
+	}
+if (!csi->vid_ints_en)return 0;@@ -1579,7 +1597,7 @@/* clear interrupts */rk628_i2c_write(csi->rk628, HDMI_RX_MD_ICLR, 0xffffffff);
-	rk628_i2c_write(csi->rk628, HDMI_RX_PDEC_ICLR, 0xffffffff);
+	rk628_i2c_write(csi->rk628, HDMI_RX_PDEC_ICLR, 0xff3fffff);if (!rk628_is_general_isr(csi, md_ints, pdec_ints))return 0;
@@ -1595,22 +1613,6 @@return 0;}-	if (csi->rk628->version < RK628F_VERSION) {
-		if (rk628_audio_ctsnints_enabled(audio_info)) {
-			if (pdec_ints & (ACR_N_CHG_ICLR | ACR_CTS_CHG_ICLR)) {
-				rk628_csi_isr_ctsn(audio_info, pdec_ints);
-				pdec_ints &= ~(ACR_CTS_CHG_ICLR | ACR_CTS_CHG_ICLR);
-				*handled = true;
-			}
-		}
-		if (rk628_audio_fifoints_enabled(audio_info)) {
-			rk628_i2c_read(csi->rk628, HDMI_RX_AUD_FIFO_ISTS, &fifo_ints);
-			if (fifo_ints & 0x18) {
-				rk628_csi_isr_fifoints(audio_info, fifo_ints);
-				*handled = true;
-			}
-		}
-	}v4l2_dbg(1, debug, sd, "%s: md_ints: %#x, pdec_ints:%#x, plugin: %d\n",__func__, md_ints, pdec_ints, plugin);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

taobao.item_get_appAPI接口原app数据测试指南

在电商竞争日益激烈的当下&#xff0c;数据成为了商家们争夺市场的重要武器。淘宝&#xff0c;作为中国最大的在线零售平台&#xff0c;其庞大的商品库和用户群体为商家提供了巨大的商机。为了帮助商家更好地了解市场动态&#xff0c;优化库存和营销策略&#xff0c;淘宝推出了…

使用WebClient 快速发起请求(不使用WebClientUtils工具类)

使用WebClient发起网络请求_webclient工具类-CSDN博客文章浏览阅读717次&#xff0c;点赞9次&#xff0c;收藏8次。使用WebClient发起网络请求_webclient工具类https://blog.csdn.net/qq_43544074/article/details/137044825这个是使用工具类发起的&#xff0c;下面就不使用工具…

java基础(4)类和对象

目录 1.前言 2.正文 2.1类的定义与使用 2.1.1类的定义 2.1.2类的实例化 2.1.3this引用 2.1.3.1 访问当前对象的成员变量 2.1.3.2调用当前对象的成员方法 2.1.3.3构造函数中的 this 2.1.3.4归纳this 2.2封装 2.2.1封装的定义 2.2.2访问修饰符 2.3static 2.3.1sta…

Kevin‘s notes about Qt---Episode 6 不同类中创建同一对象

问题描述 使用场景 现在在我的Qt界面中需要同时使用采集卡的AI(Analog Input)和AO(Analog Output)功能,均已分别调通,但是像之前一样通过创建两个类,然后分别在两个线程中进行操作的方式并不能实现。 原本写法 头文件 art_ao.h 核心代码如下: #ifndef ART_AO_H #defi…

python自动更新chromedriver

python自动化过程中&#xff0c;经常遇到脚本跑着跑着&#xff0c;就报错&#xff0c;一看&#xff0c;浏览器自动升级了。 共两张解决方案&#xff1a; 1、禁止浏览器自动升级 2、当脚本运行前先去检测当前的chromedriver与浏览器是否匹配&#xff0c;不匹配&#xff0c;就下载…

“卷”智能, 从高质量算力开始

算力即国力&#xff0c;这已是产业共识。 当人工智能浪潮席卷全球之际&#xff0c;大家深刻感受到发展算力产业的重要性和紧迫性&#xff0c;高质量的人工智能算力已经与国家竞争、产业升级和企业转型息息相关。 去年&#xff0c;《算力基础设施高质量发展行动计划》的颁布&a…

前后端传参

文章目录 后端接收参数前端发送请求引入axios实现发送请求引入qs实现传参格式化axios基本写法 前后端传参将数组转化为单个Json字符串传输前端发送后端接收 将数组转换为json对象进行传输前端发送请求后端接受请求 直接传输数组前端发送请求后端接收请求 前后端发送请求格式需要…

Ubuntu 镜像替换为阿里云镜像:简化你的下载体验

Ubuntu&#xff0c;作为一款广受欢迎的Linux发行版&#xff0c;以其稳定性和易用性著称。但你是否曾因为下载速度慢而感到沮丧&#xff1f;现在&#xff0c;你可以通过将Ubuntu的默认下载源替换为阿里云镜像来解决这个问题。本文将指导你如何完成这一过程。 为什么选择阿里云镜…

Docker 安装 ClickHouse 教程

Docker 安装 ClickHouse 教程 创建目录 首先&#xff0c;创建必要的目录用于存放 ClickHouse 的配置、数据和日志文件。 mkdir -p /home/clickhouse/conf mkdir -p /home/clickhouse/data mkdir -p /home/clickhouse/log chmod -R 777 /home/clickhouse/conf chmod -R 777 /…

R语言Shiny包新手教程

R语言Shiny包新手教程 1. 简介 Shiny 是一个 R 包&#xff0c;用于创建交互式网页应用。它非常适合展示数据分析结果和可视化效果。 2. 环境准备 安装R和RStudio 确保你的计算机上安装了 R 和 RStudio。你可以从 CRAN 下载 R&#xff0c;或从 RStudio 官网 下载 RStudio。…

网络安全中的 EDR 是什么:概述和功能

专业知识&#xff1a;EDR、XDR、NDR 和 MDR_xdr edr ndr-CSDN博客 端点检测和响应 (EDR) 是一种先进的安全系统&#xff0c;用于检测、调查和解决端点上的网络攻击。它可以检查事件、检查行为并将系统恢复到攻击前的状态。EDR 使用人工智能、机器学习和威胁情报来避免再次发生攻…

CentOS7 离线部署docker和docker-compose环境

一、Docker 离线安装 1. 下载docker tar.gz包 下载地址&#xff1a; Index of linux/static/stable/x86_64/ 本文选择版本&#xff1a;23.0.6 2.创建docker.service文件 vi docker.service文件内容如下&#xff1a; [Unit] DescriptionDocker Application Container Engi…

Python鸭子类型解释

Python 的 鸭子类型&#xff08;Duck Typing&#xff09; 是一种动态类型机制&#xff0c;源于一句幽默的编程哲学&#xff1a;“如果它走起来像鸭子&#xff0c;叫起来像鸭子&#xff0c;那么它就可以被认为是鸭子”&#xff08;“If it walks like a duck and quacks like a …

【MySQL】数据库的介绍以及数据库基础

目录 &#x1f333;介绍 &#x1f384;数据库操作 &#x1f6a9;显示当前数据库 &#x1f6a9;创建数据库 ​编辑&#x1f6a9;使用/选中 数据库 &#x1f6a9;删除数据库 &#x1f334;常用的数据类型 &#x1f6a9;数值类型 &#x1f6a9;字符串类型 &#x1f6a9…

【自用软件】IDM下载器 Internet Download Manager v6.42 Build 10

下载IDM&pj安装教程 Internet Download Manager&#xff0c;简称 IDM&#xff0c;是国外的一款优秀下载工具。目前凭借着下载计算的速度优势在外媒网站中均受好评&#xff0c;现在已被多数国人熟知。Internet Download Manager 提升你的下载速度最多达5倍&#xff0c;安排下…

【HarmonyOS】深入理解LocalStorage之逻辑处理存取

【HarmonyOS】深入理解LocalStorage 一、前言 鸿蒙应用中关于状态管理的处理机制有很多。从状态装饰器State prop等&#xff0c;LocalStrong&#xff0c;AppStrong到首选项&#xff0c;再到数据库。内存到持久化。轻量级到重量级。全方位覆盖。 学习和记忆技术点&#xff0c…

Java-数据结构-Map和Set-(二)-哈希表 |ू・ω・` )

文本目录&#xff1a; ❄️一、哈希表&#xff1a; ☑ 1、概念&#xff1a; ☑ 2、冲突-概念&#xff1a; ☑ 3、冲突-避免&#xff1a; ☞ 1&#xff09;、避免冲突-哈希函数的设计&#xff1a; ☞ 2&#xff09;、避免冲突-负载因子调节(重点)&#xff1a; ☑ 4、冲突-解决&…

那年我双手插兜,使用IPv6+DDNS动态域名解析访问NAS

估计有很多科技宅和我一样&#xff0c;会买一个NAS存储或者自己折腾刷一下黑群晖玩玩&#xff0c;由于运营商不给分配固定的公网IP&#xff0c;就导致我在外出的时候无法访问家里的NAS&#xff0c;于是远程访问常常受到IP地址频繁变动的困扰。为了解决这一问题&#xff0c;结合…

Python 统计学

Python 统计学 Python 是一种广泛使用的编程语言,尤其在数据科学和统计学领域。它提供了丰富的库和工具,使得进行统计分析变得更加容易和高效。本文将介绍 Python 在统计学中的应用,包括基本统计概念、常用的统计函数和库,以及如何使用 Python 进行数据分析。 基本统计概…

git本地分支落后于远程分支,因此推送被拒绝怎么办?

error: failed to push some refs to https:// 这个错误提示表明你的本地分支落后于远程分支&#xff0c;因此推送被拒绝。你需要先将远程分支的更改合并到本地分支&#xff0c;然后再推送。 以下是解决方法&#xff1a; 拉取远程分支的更改并合并&#xff1a; git pull orig…