|
我也遇到了同样的问题,经过一个多星期的努力解决了(我的分辨率是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;
}
|
|