Firefly开源社区

标题: RK3399HDMI特殊分辨率输出该怎么设置呢 [打印本页]

作者: carter123456    时间: 2018-3-12 10:07
标题: RK3399HDMI特殊分辨率输出该怎么设置呢
接收端有个比较特殊的分辨率输出,在854*480的样子。应该更改哪个地方呢
作者: 石头    时间: 2018-3-23 16:07
技术支持确实不咋样,问问题没人回答。800*480的显示器在Ubuntu下不设置就能显示,Android下没弄出来
作者: liangguobao    时间: 2018-4-3 10:31
我也遇到了同样的问题,经过一个多星期的努力解决了(我的分辨率是480x800):
diff --git a/device/rockchip/rk3399/resolution_white.xml b/device/rockchip/rk3399/resolution_white.xml
index 040afe5..40f4596 100755
--- a/device/rockchip/rk3399/resolution_white.xml
+++ b/device/rockchip/rk3399/resolution_white.xml
@@ -1,6 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<resolutions>
     <resolution>
+        <clock>32000</clock>
+        <hdisplay>480</hdisplay>
+        <hsync_start>520</hsync_start>
+               <hsync_end>568</hsync_end>
+               <htotal>608</htotal>
+               <hskew>0</hskew>
+               <vdisplay>800</vdisplay>
+               <vsync_start>813</vsync_start>
+               <vsync_end>816</vsync_end>
+               <vtotal>845</vtotal>
+               <vscan>0</vscan>
+               <vrefresh>62</vrefresh>
+               <flags>a</flags>
+               <vic>1</vic>
+    </resolution>
+    <resolution>
         <clock>27000</clock>
         <hdisplay>720</hdisplay>
         <hsync_start>736</hsync_start>
diff --git a/device/rockchip/rk3399/rk3399_firefly_aio_box/system.prop b/device/rockchip/rk3399/rk3399_firefly_aio_box/system.prop
index 1214bf6..5db009d 100755
--- a/device/rockchip/rk3399/rk3399_firefly_aio_box/system.prop
+++ b/device/rockchip/rk3399/rk3399_firefly_aio_box/system.prop
@@ -47,7 +47,7 @@ ro.rk.statusbar=0
ro.rk.displayd.enable=false

# default main framebuffer resolution
-persist.sys.framebuffer.main=1920x1080
+persist.sys.framebuffer.main=480x800

# default primary display
sys.hwc.device.primary=HDMI-A

diff --git a/packages/apps/Settings/res/values/arrays.xml b/packages/apps/Settings/res/values/arrays.xml
index 005fc76..e13853a 100755
--- a/packages/apps/Settings/res/values/arrays.xml
+++ b/packages/apps/Settings/res/values/arrays.xml
@@ -1071,6 +1071,7 @@

     <!-- HDMI -->
     <string-array name="hdmi_resolution_entries">
+        <item>480x800p-62Hz </item>
         <item>1920x1080p-50Hz </item>
         <item>1920x1080p-60Hz</item>
         <item>1280x720p-50Hz</item>
@@ -1079,6 +1080,7 @@
         <item>720x480p-60Hz </item>
     </string-array>
     <string-array name="hdmi_resolution_values">
+        <item>480x800p-62\n</item>
         <item>1920x1080p-50\n</item>
         <item>1920x1080p-60\n</item>
         <item>1280x720p-50\n</item>
@@ -1125,6 +1127,7 @@

         <!-- fly.gao resolution list -->
     <string-array name="resolution_list" translatable="false">
+        <item>480x800p-62</item>
         <item>1920x1080p-60</item>
         <item>1280x720p-60</item>
         <item>720x480p-60</item>


下面文件不用修改,但可以根据打印出的mode变量的内容,修改/device/rockchip/rk3399/resolution_white.xml设置的resolution内容(我的打印内容的代码已经删了,这里只是提供打印的地方)。
--- a/kernel/drivers/gpu/drm/drm_probe_helper.c
+++ b/kernel/drivers/gpu/drm/drm_probe_helper.c
@@ -192,7 +192,7 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect
        dev->mode_config.poll_running = drm_kms_helper_poll;

        if (connector->status == connector_status_disconnected) {
-               DRM_DEBUG_KMS("[CONNECTOR:%d:%s] disconnected\n",
+               dev_err(connector->dev->dev, "[CONNECTOR:%d:%s] disconnected\n",
                        connector->base.id, connector->name);
                drm_mode_connector_update_edid_property(connector, NULL);
                verbose_prune = false;
@@ -201,6 +201,7 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect

#ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE
        count = drm_load_edid_firmware(connector);
+       DRM_DEBUG_KMS("[%d] count = %d", __LINE__, count);
        if (count == 0)
#endif
        {
@@ -209,13 +210,16 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect

                        count = drm_add_edid_modes(connector, edid);
                        drm_edid_to_eld(connector, edid);
+                       dev_err(connector->dev->dev, "[%d] count = %d", __LINE__, count);
                } else
                        count = (*connector_funcs->get_modes)(connector);
        }
-
+       dev_err(connector->dev->dev, "[%d] count = %d", __LINE__, count);
        if (count == 0 && connector->status == connector_status_connected)
                count = drm_add_modes_noedid(connector, 1024, 768);
+       dev_err(connector->dev->dev, "[%d] count = %d", __LINE__, count);
        count += drm_helper_probe_add_cmdline_mode(connector);
+       dev_err(connector->dev->dev, "[%d] count = %d", __LINE__, count);
        if (count == 0)
                goto prune;

@@ -260,7 +264,7 @@ prune:
                drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V);
                drm_mode_debug_printmodeline(mode);
        }
-
+       dev_err(connector->dev->dev, "[%d] count = %d", __LINE__, count);
        return count;
}




作者: drydiy    时间: 2018-6-13 12:32
亲测有效,我是T4的开发板,只改了system.prop 文件就可以了
作者: fengyangyang2    时间: 2018-12-10 17:42
drydiy 发表于 2018-6-13 12:32
亲测有效,我是T4的开发板,只改了system.prop 文件就可以了

我个人感觉单纯改这个不行吧,你应该他适应的分辨率的枚举,然后改system.prop 为默认,这样就对了。要不然他适应的枚举里面没有,你该system.prop  也没有反应的
文件路径

~/proj/firefly-rk3399/kernel/drivers/video/rockchip/hdmi#

/* HDMI video information code according CEA-861-F */
enum hdmi_video_information_code {
        HDMI_640X480P_60HZ = 1,
        HDMI_720X480P_60HZ_4_3,
        HDMI_720X480P_60HZ_16_9,
        HDMI_1280X720P_60HZ,
        HDMI_1920X1080I_60HZ,                /*5*/
        HDMI_720X480I_60HZ_4_3,
        HDMI_720X480I_60HZ_16_9,
        HDMI_720X240P_60HZ_4_3,
        HDMI_720X240P_60HZ_16_9,
        HDMI_2880X480I_60HZ_4_3,        /*10*/
        HDMI_2880X480I_60HZ_16_9,
        HDMI_2880X240P_60HZ_4_3,
        HDMI_2880X240P_60HZ_16_9,
        HDMI_1440X480P_60HZ_4_3,
        HDMI_1440X480P_60HZ_16_9,        /*15*/
        HDMI_1920X1080P_60HZ,
        HDMI_720X576P_50HZ_4_3,
        HDMI_720X576P_50HZ_16_9,
        HDMI_1280X720P_50HZ,
        HDMI_1920X1080I_50HZ,                /*20*/
        HDMI_720X576I_50HZ_4_3,
        HDMI_720X576I_50HZ_16_9,
        HDMI_720X288P_50HZ_4_3,
        HDMI_720X288P_50HZ_16_9,
        HDMI_2880X576I_50HZ_4_3,        /*25*/
        HDMI_2880X576I_50HZ_16_9,
        HDMI_2880X288P_50HZ_4_3,
        HDMI_2880X288P_50HZ_16_9,
        HDMI_1440X576P_50HZ_4_3,
        HDMI_1440X576P_50HZ_16_9,        /*30*/
        HDMI_1920X1080P_50HZ,
        HDMI_1920X1080P_24HZ,
        HDMI_1920X1080P_25HZ,
        HDMI_1920X1080P_30HZ,
        HDMI_2880X480P_60HZ_4_3,        /*35*/
        HDMI_2880X480P_60HZ_16_9,
        HDMI_2880X576P_50HZ_4_3,
        HDMI_2880X576P_50HZ_16_9,
        HDMI_1920X1080I_50HZ_1250,        /* V Line 1250 total*/
        HDMI_1920X1080I_100HZ,                /*40*/
        HDMI_1280X720P_100HZ,
        HDMI_720X576P_100HZ_4_3,
        HDMI_720X576P_100HZ_16_9,
        HDMI_720X576I_100HZ_4_3,
        HDMI_720X576I_100HZ_16_9,        /*45*/
        HDMI_1920X1080I_120HZ,
        HDMI_1280X720P_120HZ,
        HDMI_720X480P_120HZ_4_3,
        HDMI_720X480P_120HZ_16_9,
        HDMI_720X480I_120HZ_4_3,        /*50*/
        HDMI_720X480I_120HZ_16_9,
        HDMI_720X576P_200HZ_4_3,
        HDMI_720X576P_200HZ_16_9,
        HDMI_720X576I_200HZ_4_3,
        HDMI_720X576I_200HZ_16_9,        /*55*/
        HDMI_720X480P_240HZ_4_3,
        HDMI_720X480P_240HZ_16_9,
        HDMI_720X480I_240HZ_4_3,
        HDMI_720X480I_240HZ_16_9,
        HDMI_1280X720P_24HZ,                /*60*/
        HDMI_1280X720P_25HZ,
        HDMI_1280X720P_30HZ,
        HDMI_1920X1080P_120HZ,
        HDMI_1920X1080P_100HZ,
        HDMI_1280X720P_24HZ_21_9,        /*65*/
        HDMI_1280X720P_25HZ_21_9,
        HDMI_1280X720P_30HZ_21_9,
        HDMI_1280X720P_50HZ_21_9,
        HDMI_1280X720P_60HZ_21_9,
        HDMI_1280X720P_100HZ_21_9,        /*70*/
        HDMI_1280X720P_120HZ_21_9,
        HDMI_1920X1080P_24HZ_21_9,
        HDMI_1920X1080P_25HZ_21_9,
        HDMI_1920X1080P_30HZ_21_9,
        HDMI_1920X1080P_50HZ_21_9,        /*75*/
        HDMI_1920X1080P_60HZ_21_9,
        HDMI_1920X1080P_100HZ_21_9,
        HDMI_1920X1080P_120HZ_21_9,
        HDMI_1680X720P_24HZ,
        HDMI_1680X720P_25HZ,                /*80*/
        HDMI_1680X720P_30HZ,
        HDMI_1680X720P_50HZ,
        HDMI_1680X720P_60HZ,
        HDMI_1680X720P_100HZ,
        HDMI_1680X720P_120HZ,                /*85*/
        HDMI_2560X1080P_24HZ,
        HDMI_2560X1080P_25HZ,
        HDMI_2560X1080P_30HZ,
        HDMI_2560X1080P_50HZ,
        HDMI_2560X1080P_60HZ,                /*90*/
        HDMI_2560X1080P_100HZ,
        HDMI_2560X1080P_120HZ,
        HDMI_3840X2160P_24HZ,
        HDMI_3840X2160P_25HZ,
        HDMI_3840X2160P_30HZ,                /*95*/
        HDMI_3840X2160P_50HZ,
        HDMI_3840X2160P_60HZ,
        HDMI_4096X2160P_24HZ,
        HDMI_4096X2160P_25HZ,
        HDMI_4096X2160P_30HZ,                /*100*/
        HDMI_4096X2160P_50HZ,
        HDMI_4096X2160P_60HZ,
        HDMI_3840X2160P_24HZ_21_9,
        HDMI_3840X2160P_25HZ_21_9,
        HDMI_3840X2160P_30HZ_21_9,        /*105*/
        HDMI_3840X2160P_50HZ_21_9,
        HDMI_3840X2160P_60HZ_21_9,
};

作者: ayk    时间: 2019-6-19 08:58
drydiy 发表于 2018-6-13 12:32
亲测有效,我是T4的开发板,只改了system.prop 文件就可以了

你好,改完需要编译什么才能生效
作者: ach    时间: 2019-10-21 11:33
全部编译才可以吧。
作者: 13501132347    时间: 2019-11-6 13:10
本帖最后由 13501132347 于 2021-3-15 14:21 编辑


作者: 五个炸    时间: 2019-11-21 20:43
liangguobao 发表于 2018-4-3 10:31
我也遇到了同样的问题,经过一个多星期的努力解决了(我的分辨率是480x800):
diff --git a/device/rockch ...

您好  屏幕参数怎么获得的?
@@ -1,6 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<resolutions>
     <resolution>
+        <clock>32000</clock>
+        <hdisplay>480</hdisplay>
+        <hsync_start>520</hsync_start>
+               <hsync_end>568</hsync_end>
+               <htotal>608</htotal>
+               <hskew>0</hskew>
+               <vdisplay>800</vdisplay>
+               <vsync_start>813</vsync_start>
+               <vsync_end>816</vsync_end>
+               <vtotal>845</vtotal>
+               <vscan>0</vscan>
+               <vrefresh>62</vrefresh>
+               <flags>a</flags>
+               <vic>1</vic>
+    </resolution>
作者: MR.Vinson    时间: 2019-12-7 23:57
多谢分享。




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