《 》
思路:跟据显示器设置1080P60(目前显示到1080P60),如果显示信息最大的解决P08只进行大小,则按edididI2Cnct
@nct-admin:/mnt/tsdc2/RK3399System/RK3399-JD4 -Android7.1/kernel/drivers$ git diff 。
diff --git a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw-hdmi.cb/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw- hdmi.c
索引 835e78cca6..6f998cf7ea 100644
--- a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/bridge/dw-hdmi.c
+++ b/RK3399-JD4-Android7.1/ kernel/drivers/gpu/drm/bridge/dw-hdmi.c
@@ -2442,21 +2442,46 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
{
+ bool isVertical =假;
+ 整数最小值 = 0;
+ 整数最大值 = 0;
结构 dw_hdmi *hdmi = container_of(连接器,结构 dw_hdmi,
连接器);
结构 edid *edid;
结构 drm_display_mode *mode;
- const u8 def_modes[6] = {4, 16, 31, 19, 17, 2};
+ //const u8 def_modes[6] = {4, 16, 31, 19, 17, 2};
+ 常量 u8 def_modes[6] = {16, 4, 31, 19, 17, 2};
结构 hdr_static_metadata *metedata =
&connector-》display_info.hdmi.hdr_panel_metadata;
int i, ret = 0;
如果 (!hdmi-》ddc)
返回 0;
- //@howard 20210604
- //edid = drm_get_edid(connector, hdmi-》ddc);
- edid = NULL;
- printk(“霍华德###hdmi, %sn”, __FUNCTION__);
+
+ printk(“霍华德###hdmi, %s:n”, __FUNCTION__);
+
+ edid = drm_get_edid(连接器,hdmi-》ddc);
+
+ /**
+ * 由霍华德添加
+ */
+ if(edid) {
+ printk(“Howard###hdmi, %s: %dX%dn”, __FUNCTION__, edid-》width_cm, edid-》高度_厘米);
+ }
+
+ if(edid-》width_cm 《 edid-》height_cm ){
+ isVertical = true;
+ min = edid-》width_cm;
+ 最大 = edid-》height_cm;
+ }else{
+ max = edid-》
+ min = edid-》height_cm;
+ }
+ //48X27
+ if(min 》 27 && max 》 48){
+ edid = NULL;
+ }
+
if (edid) {
dev_dbg(hdmi-》dev, “得到 edid: width[%d] x height[%d]n”,
edid-》width_cm, edid-》height_cm);
diff --git a/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.hb/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip- hdmi.h
index 08e1f9b47e..06f097f7a2 100644
--- a/RK3399-JD4-Android7.1/kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h
+++ b/RK3399-JD4-Android7.1/内核/驱动程序/视频/rockchip/hdmi/rockchip-hdmi.h
@@ -566,8 +566,9 @@结构HDMI {
的#define HDMI_AUTO_CONFIG假
/ *默认HDMI参见模式* /
- #定义HDMI_VIDEO_DEFAULT_MODE HDMI_1280X720P_60HZ
- / * * HDMI_1920X1080P_60HZ /
+ //#限定HDMI_VIDEO_DEFAULT_MODE HDMI_1280X720P_60HZ
+#限定HDMI_VIDEO_DEFAULT_MODE HDMI_1920X1080P_60HZ
+
#define HDMI_VIDEO_DEFAULT_COLORMODE HDMI_COLOR_AUTO
#define HDMI_VIDEO_DEFAULT_COLORDEPTH 8
(END)
diff --git a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.cb/RK3399-JD4-Android7.1/内核/驱动程序/gpu/drm/rockchip/dw_hdmi-rockchip.c
index e1f50de45c..7a3cb8fde5 100644
--- a/RK3399-JD4-Android7.1/kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ b/RK3399-JD4-Android7.1/kernel/drivers /gpu/drm/rockchip/dw_hdmi-rockchip.c
@@ -484,11 +484,14 @@ dw_hdmi_rockchip_mode_valid(struct drm_connector *connector,
* 如果 sink max TMDS clock 《 340MHz, 我们应该检查 mode pixel
* clock 》 340MHz是否为 YCbCr420
*/
+//@howard 20210604 disable
+ printk(“Howard###hdmi, %sn”, __FUNCTION__);
+#if 0
if (mode-》clock 》 340000 &&
connector-》display_info .max_tmds_clock 《 340000 &&
!drm_mode_is_420(&connector-》display_info, mode))
返回 MODE_BAD;
-
+#endif