Firefly开源社区

标题: TypeC的DP口接5K屏,分辨率设置里最大只能到4K [打印本页]

作者: 可乐123    时间: 2023-5-5 17:49
标题: TypeC的DP口接5K屏,分辨率设置里最大只能到4K
ITX-3588J主板烧录的ITX-3588J_Android12_HDMI_230227系统,使用TypeC接口接到5K屏上,桌面显示图标有形变,显示设置里只能到3840*2160

5K屏的分辨率是5120*2160
tchip_askquestions

log.log

2.79 MB, 下载次数: 2, 下载积分: 灯泡 -1 , 经验 -1


作者: zhangzhenzhao    时间: 2023-5-6 09:43
1 你这个属于特殊分辨率,要改代码才能支持;
2 先确定edid是否要读到5120*2160
cat /sys/class/drm/card0-DP-1/modes
3 如果读到的话可以试下
3.1 添加特殊分辨率相关参数到白名单(device/rockchip/common/resolution_white.xml),重编固件测试;
3.2 如果3.1方法不行,就需要改代码,抛弃edid读取的分辨率,写死你想要显示的特殊分辨率;
作者: zhangzhenzhao    时间: 2023-5-6 11:47
另外关于DP 默认sdk最高只支持到4k,如需支持4K以上,查看wiki修改

https://wiki.t-firefly.com/zh_CN ... y.html#display-port
作者: 可乐123    时间: 2023-5-8 11:08
zhangzhenzhao 发表于 2023-5-6 11:47
另外关于DP 默认sdk最高只支持到4k,如需支持4K以上,查看wiki修改

https://wiki.t-firefly.com/zh_CN/C ...

按照wiki内的说明将改为dp0_in_vp0后,可以识别到屏幕是5120*2160了,显示路径状态如下。
但是设置页面里最大还是只能到3840*2160.
rk3588_firefly_itx_3588j:/ $ cat /d/dri/0/summary
Video Port0: ACTIVE
    Connector: DP-1
        bus_format[100a]: RGB888_1X24
        overlay_mode[0] output_mode[f] color_space[0], eotf:0
    Display mode: 5120x2160p75
        clk[906780] real_clk[906780] type[48] flag[6]
        H: 5120 5216 5280 5440
        V: 2160 2163 2173 2220
    Cluster0-win0: ACTIVE
        win_id: 0
        format: AB24 little-endian (0x34324241)[AFBC] SDR[0] color_space[0] glb_alpha[0xff]
        rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
        csc: y2r[0] r2y[0] csc mode[0]
        zpos: 0
        src: pos[0, 0] rect[3840 x 2160]
        dst: pos[0, 0] rect[5120 x 2160]
        buf[0]: addr: 0x00000000f4020000 pitch: 15360 offset: 0
Video Port1: DISABLED
Video Port2: DISABLED
Video Port3: DISABLED

rk3588_firefly_itx_3588j:/ $ cat /sys/class/drm/card0-DP-1/modes
5120x2160
5120x2160
3840x2160
5120x2160
5120x2160
5120x2160
2560x1440
1920x1080
1920x1080
1920x1080
1920x1080
1680x1050
1280x1024
1440x900
1280x960
1280x800
1280x720
1280x720
1280x720
1280x720
1024x768
800x600
800x600
800x600
720x576
720x480
720x480
720x480
720x480
640x480
640x480
640x480
作者: zhangzhenzhao    时间: 2023-5-8 11:39
可乐123 发表于 2023-5-8 11:08
按照wiki内的说明将改为dp0_in_vp0后,可以识别到屏幕是5120*2160了,显示路径状态如下。
但是设置页面 ...

1 cat /d/dri/0/summary来看已经是5K分辨率了
2 setting分辨率设置没有5K的话,就是setting app这边有点问题咯,但是不影响实际显示5K,
3 如果要改setting就自行看看源码怎么改咯
packages/apps/Settings/
作者: 可乐123    时间: 2023-5-10 17:26
zhangzhenzhao 发表于 2023-5-8 11:39
1 cat /d/dri/0/summary来看已经是5K分辨率了
2 setting分辨率设置没有5K的话,就是setting app这边有点 ...

如果缩小垂直方向的分辨率,增加水平方向上的分辨率,能达到8440*1260的分辨率吗?
作者: zhangzhenzhao    时间: 2023-5-10 18:03
可乐123 发表于 2023-5-10 17:26
如果缩小垂直方向的分辨率,增加水平方向上的分辨率,能达到8440*1260的分辨率吗?

没验证过,但是应该是不行的
作者: 可乐123    时间: 2023-8-31 17:39
zhangzhenzhao 发表于 2023-5-10 18:03
没验证过,但是应该是不行的

我使用预设edid的方式,并且修改了rockchip_vop2.c文件
--- a/kernel-5.10/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
+++ b/kernel-5.10/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
@@ -1221,7 +1221,7 @@ static const struct vop2_video_port_data rk3588_vop_video_ports[] = {
         .gamma_lut_len = 1024,
         .cubic_lut_len = 729, /* 9x9x9 */
         .dclk_max = 600000000,
-        .max_output = { 9000, 2320 },
+        .max_output = { 7680, 4320 },
         /* hdr2sdr sdr2hdr hdr2hdr sdr2sdr */
         .pre_scan_max_dly = { 76, 65, 65, 54 },
         .intr = &rk3568_vp0_intr,


目前可以得到
rk3588_firefly_itx_3588j:/ # cat /sys/kernel/debug/dri/0/summary
Video Port0: ACTIVE
    Connector: DP-1
        bus_format[1018]: RGB101010_1X30
        overlay_mode[0] output_mode[f] color_space[0], eotf:0
    Display mode: 8176x1264p54
        clk[694000] real_clk[694000] type[48] flag[6]
        H: 8176 8356 8386 8776
        V: 1264 1324 1334 1464
Video Port1: DISABLED
Video Port2: DISABLED
Video Port3: DISABLED

目前接口已经可以输出8176x1264的分辨率,但是没有图层信息,无法绘制UI

这个麻烦帮忙看下,给指个处理思路




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1