瑞芯微Rockchip开发者社区
直播中

的乏味而

12年用户 801经验值
私信 关注
[问答]

怎样去修改RK3288平台HDMI默认的显示分辨率呢

怎样去修改RK3288平台HDMI默认的显示分辨率呢?如何去实现呢?

回帖(1)

王凯

2022-3-3 14:35:27
[RK3288][Android7.1] 修改HDMI默认显示分辨率

Platform: Rockchip
OS: Android 7.1.2
Kernel: 4.4

需求:

在使用RK3288平台时,HDMI使用4K大屏幕做显示时,4K视频播放会受到影响,声音和视频会出现不同步的情况,因些需要屏蔽掉HDMI输出分辨率选择项中4K分辨率选项,默认输出设置到1080P。

实现:

RK平台4.4驱动上,HDMI显示放弃了原来的显示方式,从驱动3.10版本路径下
kerneldriversvideorockchiphdmirockchip-hdmiv2部分切换到了4.4版本下的
kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c文件中。

第一步:首先屏蔽掉4K以上分辨率选项

static enum drm_mode_status
dw_hdmi_rockchip_mode_valid(struct drm_connector *connector,
                            struct drm_display_mode *mode)
{
        struct drm_encoder *encoder = connector->encoder;
        enum drm_mode_status status = MODE_OK;
        struct drm_device *dev = connector->dev;
        struct rockchip_drm_private *priv = dev->dev_private;
        struct drm_crtc *crtc;
        struct rockchip_hdmi *hdmi;

        /*
         * Pixel clocks we support are always < 2GHz and so fit in an
         * int.  We should make sure source rate does too so we don't get
         * overflow when we multiply by 1000.
         */
+        if(!strcmp(mode->name, "4096x2160") || !strcmp(mode->name, "3840x2160")){
+    printk(KERN_ERR"bad mode:%s, vrefresh:%dn",mode->name, mode->vrefresh);
+    return MODE_BAD;
+  }

第二步:修改默认输出分辨率到1920x1080
RK 7.1.2系统在./base/services/core/jni/com_android_server_rkdisplay_RkDisplayModes.cpp文件中会根据persist.sys.resolution.aux属性值来配置输出分辨率,因此在device目录下根据系统找到对应的system.prop文件,新加属性即可。

  ro.adb.secure=0
  ro.rk.displayd.enable=false
+ persist.sys.resolution.aux=1920x1080p60
举报

更多回帖

发帖
×
20
完善资料,
赚取积分