Ec-r3588spc-fd,如何修改分辨率

主机EC-R3588SPC-FD,主板为ROC-RK3588S-PC,系统为Android12
请问如何修改分辨率?
Firefly Android 使用手册里面没有说明怎么修改分辨率

HDMI分辨率设置可以在设置里更改分辨率

zhangzhenzhao 发表于 2025-8-28 14:41
HDMI分辨率设置可以在设置里更改分辨率

能不能通过代码的方式修改,就像修改开机logo那样

zhangzhenzhao 发表于 2025-8-28 14:41
HDMI分辨率设置可以在设置里更改分辨率

我们采购的另一款主机,EC-A3399ProC,就可以通过代码修改分辨率,在烧录固件就解决了问题
那么EC-R3588SPC-FD,应该也可以采用同样的方式

3399你们通过代码修改分辨率,是什么层面的代码,应用层还是底层,应用层应该直接搬过来就能用

zhangzhenzhao 发表于 2025-8-28 15:19
3399你们通过代码修改分辨率,是什么层面的代码,应用层还是底层,应用层应该直接搬过来就能用

From 84baf1462717484072d19483cbae17447bbcdaca Mon Sep 17 00:00:00 2001
From: lkd <lkd@t-chip.com.cn>
Date: Mon, 3 Apr 2023 16:31:58 +0800
Subject: [PATCH] kernel->drm: default HDMI support 1920x1200@60 special
resolution


kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 3 +±
kernel/drivers/gpu/drm/drm_edid.c | 5 +++++
kernel/drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 8 +++±—
3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index d248a2074b..f59983e8c7 100644
— a/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2572,7 +2572,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
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] = {108, 16, 31, 19, 17, 2};
    struct drm_display_info *info = &connector->display_info;
    struct hdr_static_metadata *metedata =
    &connector->display_info.hdmi.hdr_panel_metadata;
    @@ -2582,6 +2582,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
    return 0;

    edid = drm_get_edid(connector, hdmi->ddc);

  • 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/kernel/drivers/gpu/drm/drm_edid.c b/kernel/drivers/gpu/drm/drm_edid.c
    index 7e1d60fe77..65d435fbfd 100644
    — a/kernel/drivers/gpu/drm/drm_edid.c
    +++ b/kernel/drivers/gpu/drm/drm_edid.c
    @@ -1220,6 +1220,11 @@ static const struct drm_display_mode edid_cea_modes = {
    4104, 4400, 0, 2160, 2168, 2178, 2250, 0,
    DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
    .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },

  •    /* 0x108 - 1920x1200@60Hz RB */
    
  •    { DRM_MODE("1920x1200", DRM_MODE_TYPE_DRIVER, 154000, 1920, 1968,
    
  •               2000, 2080, 0, 1200, 1203, 1209, 1235, 0,
    
  •               DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC),
    
  • .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE, },
    

};

/*
diff --git a/kernel/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/kernel/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 9632374e40..d5513f69d9 100644
— a/kernel/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/kernel/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -2314,10 +2314,10 @@ vop_crtc_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode mode,
/

* Hdmi or DisplayPort request a Accurate clock.
*/

  • if (output_type == DRM_MODE_CONNECTOR_HDMIA ||
  •   output_type == DRM_MODE_CONNECTOR_DisplayPort)
    
  •   if (clock != request_clock)
    
  •   	return MODE_CLOCK_RANGE;
    
  • //if (output_type == DRM_MODE_CONNECTOR_HDMIA ||

  • // output_type == DRM_MODE_CONNECTOR_DisplayPort)

  • // if (clock != request_clock)

  • // return MODE_CLOCK_RANGE;

    return MODE_OK;
    }

    2.28.0

上面这段,是修改分辨率的代码,修改后再编辑Android 固件,再烧录到板子上的
你看看这段代码在 EC-R3588SPC-FD上可以使用不

可以,参照这个改到3588上就可以了,驱动差不多