[RK3566-Android11] 关于2K (2560x1440)分辨率支持问题

问题描述

使用2K-2560x1440显示器,发现设置->显示->HDMI->分辨率里面只有1920x1080 1280x720 720x480。没有2560x1440分辨率显示。

根据文档我在kernel\drivers\gpu\drm\drm_edid.c中添加了2560x1440分辨率信息,如下:

c 复制代码
/* 2560x1440@60Hz */ { DRM_MODE("2560x1440", DRM_MODE_TYPE_DRIVER, 268500, 2560, 2608,
2640, 2720, 0, 1440, 1441, 1444, 1500, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC) },

/* 128 - 2560x1440@100Hz 64:27 */
{ DRM_MODE("2560x1440", DRM_MODE_TYPE_DRIVER, 268500, 2560, 2608,
           2640, 2720, 0, 1440, 1441, 1444, 1500, 0,
           DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
      .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },

在device\rockchip\common\resolution_white.xml和device\rockchip\rk356x\rk3566_r\resolution_white.xml分辨率白名单中分别添加了对应分辨率,如下

c 复制代码
<resolution> <!-- 2560x1440@60Hz -->
<clock>268500</clock>
<hdisplay>2560</hdisplay>
<hsync_start>2608</hsync_start>
<hsync_end>2640</hsync_end>
<htotal>2720</htotal>
<hskew>0</hskew>
<vdisplay>1440</vdisplay>
<vsync_start>1441</vsync_start>
<vsync_end>1444</vsync_end>
<vtotal>1500</vtotal>
<vscan>0</vscan>
<vrefresh>60</vrefresh>
<flags>5</flags>
<vic>128</vic>
</resolution>

加入以上修改后,重新烧录软件,设置->显示->HDMI->分辨率中还是没有2560x1440的分辨率。

此时cat /sys/class/drm/card0-HDMI-A-1/modes,edid信息中有2560x1440分辨率,如下:

c 复制代码
130|console:/ # cat /sys/class/drm/card0-HDMI-A-1/modes
2560x1440
1920x1200
1920x1080
1920x1080
1920x1080
1920x1080i
1920x1080i
1920x1080i
1920x1080
1920x1080
1920x1080i
1680x1050
1600x900
1280x1024
1280x1024
1440x900
1152x864
1280x720
1280x720
1280x720
1280x720
1024x768
1024x768
1024x768
800x600
800x600
800x600
800x600
720x576
720x576
720x480
720x480
720x480
720x480
720x480
640x480
640x480
640x480
640x480
640x480
640x480
720x400

那么如何在设置->显示->HDMI->分辨率中增加2K-2560x1440分辨率支持呢?


解决方案:

我们只需要不编译device\rockchip\common\resolution_white.xml和device\rockchip\rk356x\rk3566_r\resolution_white.xml 这个分辨率白名单,去掉分辨率过滤功能就可以。这样所有分辨率都会显示出来。将device/rockchip/common/device.mk中与resolution_white.xml相关的代码屏蔽了就可以了。

c 复制代码
# ifneq ($(filter atv box, $(strip $(TARGET_BOARD_PLATFORM_PRODUCT))), )
#     PRODUCT_COPY_FILES += \
#       $(LOCAL_PATH)/resolution_white.xml:/system/usr/share/resolution_white.xml \
#       $(LOCAL_PATH)/tv/permissions/privapp-permissions-tv-common.xml:system/etc/permissions/privapp-permissions-tv-common.xml
# endif
c 复制代码
# USE_PRODUCT_RESOLUTION_WHITE := $(shell test -f $(TARGET_DEVICE_DIR)/resolution_white.xml && echo true)
# ifeq ($(strip $(USE_PRODUCT_RESOLUTION_WHITE)), true)
#   PRODUCT_COPY_FILES += \
#       $(TARGET_DEVICE_DIR)/resolution_white.xml:/system/usr/share/resolution_white.xml
# else
#   PRODUCT_COPY_FILES += \
#       $(LOCAL_PATH)/resolution_white.xml:/system/usr/share/resolution_white.xml
# endif
相关推荐
Coding小公仔1 小时前
C++ bitset 模板类
开发语言·c++
雨白1 小时前
Jetpack系列(二):Lifecycle与LiveData结合,打造响应式UI
android·android jetpack
菜鸟看点1 小时前
自定义Cereal XML输出容器节点
c++·qt
悲伤小伞3 小时前
linux_git的使用
linux·c语言·c++·git
kk爱闹3 小时前
【挑战14天学完python和pytorch】- day01
android·pytorch·python
ysa0510303 小时前
数论基础知识和模板
数据结构·c++·笔记·算法
每次的天空5 小时前
Android-自定义View的实战学习总结
android·学习·kotlin·音视频
恋猫de小郭5 小时前
Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
android·flutter·ios
小小小小王王王6 小时前
求猪肉价格最大值
数据结构·c++·算法
断剑重铸之日6 小时前
Android自定义相机开发(类似OCR扫描相机)
android