解决思路:跟据显示器判断,默认设置1080P60(目前最大只支持到1080P60),若较小尺寸,则按edid信息进行I2C配置

nct@nct-admin:/mnt/nctsdc2/RK3399System/RK3399-JD4-Android7.1/kernel/drivers$ git diff .
diff --git a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw-hdmi.c b/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw-hdmi.c
index 835e78cca6..6f998cf7ea 100644
--- a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw-hdmi.c
+++ b/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw-hdmi.c
@@ -2442,21 +2442,46 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
 
 static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
 {
+       bool isVertical = false;
+       int min = 0;
+       int max = 0;
        struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
                                             connector);
        struct edid *edid;
        struct drm_display_mode *mode;
-       const u8 def_modes[6] = {4, 16, 31, 19, 17, 2};
+       //const u8 def_modes[6] = {4, 16, 31, 19, 17, 2};
+       const u8 def_modes[6] = {16, 4, 31, 19, 17, 2};
        struct hdr_static_metadata *metedata =
                        &connector->display_info.hdmi.hdr_panel_metadata;
        int i, ret = 0;
 
        if (!hdmi->ddc)
                return 0;
-       //@howard 20210604
-       //edid = drm_get_edid(connector, hdmi->ddc);
-       edid = NULL;
-       printk("Howard###hdmi, %s\n", __FUNCTION__);
+
+       printk("Howard###hdmi, %s:\n", __FUNCTION__);
+       
+       edid = drm_get_edid(connector, hdmi->ddc);
+
+       /**
+       * added by howard
+       */
+       if(edid) {
+               printk("Howard###hdmi, %s: %dX%d\n", __FUNCTION__, edid->width_cm, edid->height_cm);
+       }
+
+       if(edid->width_cm < edid->height_cm ){
+               isVertical = true;
+               min = edid->width_cm;
+               max = edid->height_cm;
+       }else{
+               max = edid->width_cm;
+               min = edid->height_cm;
+       }
+       //48X27
+       if(min > 27 && max > 48){
+               edid = NULL;
+       }
+
        if (edid) {
                dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n",
                        edid->width_cm, edid->height_cm);
diff --git a/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h b/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h
index 08e1f9b47e..06f097f7a2 100644
--- a/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h
+++ b/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h
@@ -566,8 +566,9 @@ struct hdmi {
 #define HDMI_AUTO_CONFIG               false
 
 /* HDMI default vide mode */
-#define HDMI_VIDEO_DEFAULT_MODE                        HDMI_1280X720P_60HZ
-                                               /*HDMI_1920X1080P_60HZ*/
+//#define HDMI_VIDEO_DEFAULT_MODE                      HDMI_1280X720P_60HZ
+#define HDMI_VIDEO_DEFAULT_MODE                        HDMI_1920X1080P_60HZ
+
 #define HDMI_VIDEO_DEFAULT_COLORMODE           HDMI_COLOR_AUTO
 #define HDMI_VIDEO_DEFAULT_COLORDEPTH          8
 
(END)

diff --git a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
index e1f50de45c..7a3cb8fde5 100644
--- a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ b/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
@@ -484,11 +484,14 @@ dw_hdmi_rockchip_mode_valid(struct drm_connector *connector,
         * If sink max TMDS clock < 340MHz, we should check the mode pixel
         * clock > 340MHz is YCbCr420 or not.
         */
+//@howard 20210604 disable
+       printk("Howard###hdmi, %s\n", __FUNCTION__);
+#if 0
        if (mode->clock > 340000 &&
            connector->display_info.max_tmds_clock < 340000 &&
            !drm_mode_is_420(&connector->display_info, mode))
                return MODE_BAD;
-
+#endif

RK3399 HDMI接部分4K显示器不停重启的问题解决相关推荐

  1. [RK3399] HDMI正常输出4K

    Platform: ROCKCHIP Chip: RK3399 OS: Android7.1.2 Kernel: 4.4.126* 未改动源码时设备输出如下 VOPB模式接入的是eDP 3K60hz ...

  2. 2021-03-17 RK3288 接PHILIPS 4K显示器HDMI开机概率性不显示的问题

    RK3288 接PHILIPS 4K显示器HDMI开机概率性不显示的问题 一.测试发现在philips显示器休眠的情况下,rk3288 开机后hmdi无法唤醒显示器.  cat /d/dw-hdmi/ ...

  3. 2021-02-26 RK3399 HDMI 部分显示器默认不显示最佳分辨率的问题

    RK3399 HDMI 部分显示器默认不显示最佳分辨率的问题 一.我们这有一台显示器是支持1920x1080P@60 的,但是默认情况hdmi只显示1360x768p60. 二.为什么呢?客户需求是现 ...

  4. KCEVE HDMI KVM Type-C切换器有源显示器鼠标键盘HDMI切换器4K@30Hz适用于笔记本电脑,PC,PS4,Xbox,可连接USB HUB,更新外接开关按钮

    KCEVE HDMI KVM切换器,Type-C切换器有源显示器鼠标键盘HDMI切换器4K@30Hz适用于笔记本电脑,PC,PS4,Xbox,可连接USB HUB,更新外接开关按钮 Met deze ...

  5. 202-03-01 RK3399 HDMI部分显示器显示偏绿的问题

    RK3399 HDMI部分显示器显示偏绿的问题 一.现象如下,只是很少部分显示器这样. 二.解决方案,修改颜色输出格式为*color_format = DRM_HDMI_OUTPUT_DEFAULT_ ...

  6. Macbook用HDMI(非HDMI2.0)外接4K显示器1080p只能30Hz的解决方法

    这个问题困扰我很久了,我用的是比较老的4K显示器,不支持HDMI2.0,接上Macbook的时候4K分辨率不支持60Hz,最高只能30Hz,用起来卡卡的,这个也是正常的.但我调到1080p还是只能选择 ...

  7. Opencore-黑苹果:外接4K显示器却只能选择2K或以下分辨率

    记一次黑苹果的坑 配置如下: Motherboard Gigabyte z390 i aorus pro wifi (F8C) CPU: i7-9700 Memory: Asgard 16Gx1 St ...

  8. 修改RK3399 HDMI显示分辨率

    转载自: [RK3399] HDMI正常输出4K30帧 无法输出60帧以及设置分辨率的流程分析 ** Platform: ROCKCHIP Chip: RK3399 OS: Android7.1.2 ...

  9. 14英寸电脑长宽多少_连接4K显示器流行,带雷电3雷电4接口的笔记本要多少钱?...

    我们都知道,现在很多笔记本电脑都具备了4K 60p视频的播放能力,效果不俗,但笔记本本身屏幕是4K的比较少,并且也没那么大,连接显示器成了必须. 而说到接口中,现在最时髦的要数雷电3.雷电4了,达到4 ...

最新文章

  1. asp从后台调出的公式怎么参与运算_SEOr怎么写一个快速排名的标题
  2. 清除linux缓存命令
  3. matlab绘图z=sin(x_「matlab画三维图」Matlab 应用之绘制三维图形(基础篇) - seo实验室...
  4. PaddleOCR——CUDA9.0环境中训练运行错误【Cudnn error, CUDNN_STATUS_BAD_PARAM】解决方案
  5. mysql查询补丁更新_OS:服务器系统补丁及数据库补丁更新说明
  6. 在厚度仅十几微米的电池隔膜找缺陷?人工智能说,能行(人工智能应用案例)
  7. 每日一题(46)—— volatile
  8. Qt 自定义事件的实现
  9. 吴恩达|机器学习作业4.0神经网络反向传播(BP算法)
  10. NAACL2021 | 苏大阿里提出:一种统一的基于跨度的意见挖掘方法
  11. 计算机三级数据库2020年试题,2015年计算机三级数据库试题及答案
  12. 【MM32F5270开发板试用】四、SPI的驱动,先点个屏幕
  13. 微录音--Android通话录音(vluyin-callrecorder)一款安卓通话录音软件
  14. 语音信号处理基础知识-常用特征及预处理
  15. 论文阅读笔记:Neural Belief Tracker: Data-Driven Dialogue State Tracking
  16. underfined 与 null 的区别
  17. anyRTC 重磅推出在线实时 K 歌解决方案
  18. html5画布画出折线图,canvas 画出动态折线图
  19. 1分钟读懂猫咪免疫流程:怎么打疫苗,必须打的疫苗有哪些
  20. 1143-最长公共子序列(最长公共子序列)

热门文章

  1. GitHub 上的 12306 抢票神器,助力回家过年
  2. Django Web框架的使用
  3. flink CEP检测温度事件微型示例
  4. 数字乡村建设方案智慧乡村建设方案智慧农村解决方案
  5. Bugku_Misc_悲伤的故事
  6. 拼多多API接口的实践案例
  7. Python爬虫入门教程02:小说爬取
  8. Jeff Dean强推:可视化Bert网络,发掘其中的语言、语法树与几何学
  9. 使用some和any来表面数量_27
  10. java游戏应龙女魃转世_女魃和应龙真的有故事?应龙与女魃的爱情故事揭秘