日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

尝试新增特殊分辨率(800x480)HDMI屏到RK3328(记录)

發布時間:2024/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尝试新增特殊分辨率(800x480)HDMI屏到RK3328(记录) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考鏈接

https://www.cnblogs.com/lialong1st/p/9174475.html

https://www.forlinx.com/article-new-c22/341.html

https://www.cnblogs.com/zlh840/archive/2012/08/01/2618819.html

https://blog.csdn.net/weixin_42569429/article/details/112950569

https://www.cnblogs.com/xahsxd/p/14682195.html

https://bbs.t-firefly.com/forum.php?mod=viewthread&tid=2726&extra=page%3D1

https://blog.csdn.net/wowo1109/article/details/8805045

https://blog.csdn.net/dearsq/article/details/75645480

http://www.atmcu.com/1200.html

https://usermanual.wiki/Document/RK3399ClockGuidelinux44.1970364756/html

https://blog.csdn.net/wuweidonggmail/article/details/112057675

一,得到屏幕的EDID

1.打開EDID調試信息(查看LCD參數)

# vi ./kernel/drivers/video/fbdev/core/fbmon.c

//#undef DEBUG? /* define this for verbose EDID parsing output */

#define DEBUG

失敗

2.在ububtuPC上安裝read-edid查看該LCD參數

# sudo get-edid | parse-edid
...

Section "Monitor"
?? ?Identifier ""
?? ?ModelName ""
?? ?VendorName "ADA"
?? ?# Monitor Manufactured week 1 of 2007
?? ?# EDID version 1.3
?? ?# Digital Display
?? ?DisplaySize 150 100
?? ?Gamma 1.00
?? ?Option "DPMS" "false"
?? ?Modeline ?? ?"Mode 0" 32.00 800 840 888 928 480 493 496 525 -hsync -vsync

二.嘗試修改內核文件

1.在rockchip-hdmi.h (/kernel/drivers/video/rockchip/hdmi)

- enum hdmi_video_information_code 尾部增加vic枚舉值

? HDMI_800x480P_60HZ

2.在rockchip-hdmi-lcdc.c (/kernel/drivers/video/rockchip/hdmi)

-struct hdmi_video_timing hdmi_mode增加LCD參數(由上面modeline計算得到)

??? {
?? ??? ?.mode = {
?? ??? ??? ?.name = "800x480p@60Hz",//名稱
?? ??? ??? ?.refresh = 60,?? ??? ?//刷新頻率
?? ??? ??? ?.xres = 800,?? ??? ?//行像素 thd
?? ??? ??? ?.yres = 480,?? ??? ?//列像素 tvd
?? ??? ??? ?.pixclock = 32000000,?? ?//像素時鐘
?? ??? ??? ?.left_margin = 40,?? ?//水平后沿hb
?? ??? ??? ?.right_margin = 40,?? ?//水平前沿hfb
?? ??? ??? ?.upper_margin = 29,?? ?//垂直后沿vb
?? ??? ??? ?.lower_margin = 13,?? ?//垂直前沿 vfb
?? ??? ??? ?.hsync_len = 48,?? ?//行同步脈寬hpw
?? ??? ??? ?.vsync_len = 3,??????? //列同步脈寬vpw?? ?
?? ??? ??? ?.sync = 0,?? ??? ?//水平/垂直同步
?? ??? ??? ?.vmode = 0,
?? ??? ??? ?.flag = 0,
?? ??? ?},
?? ??? ?.vic = HDMI_800x480P_60HZ,
?? ??? ?.vic_2nd = 0,
?? ??? ?.pixelrepeat = 1,
?? ??? ?.interface = OUT_P888,
?? ?},

3.增加LCD參數到drm edid_cea_modes (kernel\drivers\gpu\drm\drm_edid.c)

以上更改都不能成功驅動屏幕

4.繼續測試,過程中發現是可以成功讀到LEDedid的,順便學習了一下

解析edid

[root@rk3328:/sys/devices/platform/display-subsystem/drm/card0/card0-HDMI-A-1]# od -x ./edid
0000000???????? ff00 ffff ffff 00ff 8104 0004 0001 0000
0000020 ????????1101 0301 0f80 000a 000a 0000 0000 0000
0000040 ????????0000 0000 0000 0101 0101 0101 0101 0101
0000060 ????????0101 0101 0101 0c80 8020 e030 102d 3028
0000100 ????????00d3 446c 0000 1800 0000 1000 0000 0000
0000120 ????????0000 0000 0000 0000 0000 0000 1000 0000
0000140 ????????0000 0000 0000 0000 0000 0000 0000 1000
0000160 ????????0000 0000 0000 0000 0000 0000 0000 1700

解析128字節 (和pc讀到的匹配) 0000000 ff00 ffff ffff 00ff 頭 (大小端)8104 生產商0004 產品ID0001 0000 序列號 0000020(10) 1101 生產時間 17年1月0301 版本號80 信號類型0f 寬度 1600a 高度 100 00 gamma0a DPMS屬性00 0000 0000 //色度信息0000 0000040(20) 0000 00(23) 0000000101 0101 0101 0101 0101// 0000060(30) 0101 0101 0101//詳細信息描述1 每18字節 0c80 //像素時鐘 800*480(0320 01e0)8020 //水平像素低8(20),水平像素balnking e030 //水平像素高4位(03)&水平像素balnking高四位 垂直像素低8(e0)102d //垂直像素balnking(2d) 垂直像素高4位(01)&垂直像素balnking高四位3028 //水平信號偏移 水平脈寬 0000100(40) 00d3 //垂直偏移+垂直脈寬446c //水平像素低8 垂直像素低8 尺寸mm0000 //高4位1800 //標志位 水平垂直同步0000 1000 0000 0000 //詳細信息描述2 0000120(50) 0000 0000 0000 0000 00000000 1000 0000 //詳細信息描述3 0000140(60) 0000 0000 0000 0000 0000 00000000 1000 //詳細信息描述4 0000160 0000 0000 0000 0000 0000 0000 000000 是否存在擴展edid17 校驗和

5.查看drm相關的dmesg 發現有CLOCK_RANGE(時鐘頻率出錯)報錯

//打開drm調試開關echo 0x1f > /sys/module/drm/parameters/debug dmesg | grep drm [ 7500.812744] [drm:drm_helper_hpd_irq_event] [CONNECTOR:69:HDMI-A-1] status updated from disconnected to connected [ 7500.812771] [drm:drm_sysfs_hotplug_event] generating hotplug event [ 7500.812876] [drm:drm_fb_helper_hotplug_event] [ 7500.812899] [drm:drm_helper_probe_single_connector_modes_merge_bits] [CONNECTOR:69:HDMI-A-1] [ 7500.919079] [drm:drm_edid_to_eld] ELD: no CEA Extension found [ 7500.919113] [drm:drm_property_unreference_blob] ffffffc07cd62a80: blob ID: 117 (1) [ 7500.919168] [drm:drm_mode_debug_printmodeline] Modeline 77:"800x480" 66 32000 800 840 888 928 480 493 496 525 0x48 0xa [ 7500.919188] [drm:drm_mode_prune_invalid] Not using 800x480 mode: CLOCK_RANGE [ 7500.919216] [drm:drm_setup_crtcs] [ 7500.919237] [drm:drm_enable_connectors] connector 69 enabled? yes [ 7500.919258] [drm:drm_target_preferred] looking for cmdline mode on connector 69 [ 7500.919341] [drm:drm_target_preferred] looking for preferred mode on connector 69 0 [ 7500.919359] [drm:drm_target_preferred] found mode none [ 7500.919378] [drm:drm_setup_crtcs] picking CRTCs for 8192x8192 config [ 7500.920372] [drm:drm_atomic_state_init] Allocated atomic state ffffffc07cd62280 [ 7500.920404] [drm:drm_atomic_get_plane_state] Added [PLANE:58] ffffffc05d7c8200 state to ffffffc07cd62280 [ 7500.920429] [drm:drm_atomic_get_plane_state] Added [PLANE:61] ffffffc05d7c8300 state to ffffffc07cd62280 [ 7500.920449] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane state ffffffc05d7c8300 [ 7500.920473] [drm:drm_atomic_get_plane_state] Added [PLANE:65] ffffffc05d7c8d00 state to ffffffc07cd62280 [ 7500.920492] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane state ffffffc05d7c8d00 [ 7500.920518] [drm:drm_atomic_get_crtc_state] Added [CRTC:64] ffffffc07b54a400 state to ffffffc07cd62280 [ 7500.920538] [drm:drm_atomic_set_mode_for_crtc] Set [NOMODE] for CRTC state ffffffc07b54a400 [ 7500.920556] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane state ffffffc05d7c8200 [ 7500.920578] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:64] to ffffffc07cd62280 [ 7500.920598] [drm:drm_atomic_check_only] checking ffffffc07cd62280 [ 7500.920634] [drm:drm_atomic_commit] commiting ffffffc07cd62280 [ 7500.920678] [drm:drm_atomic_state_default_clear] Clearing atomic state ffffffc07cd62280 [ 7500.920703] [drm:drm_atomic_state_free] Freeing atomic state ffffffc07cd62280

CLOCK_RANGE報錯對應的接口添加打印信息發現申請32M得到的時鐘是24M

drivers/gpu/drm/rockchip/rockchip_drm_vop.c-vop_crtc_mode_valid

?三.修改hdmi時鐘配置?

查看系統時鐘

[root@rk3328:~]# cat /sys/kernel/debug/clk/clk_summary

1.嘗試新增hdmiphy頻率到? pre_pll_cfg_table(kernel\drivers\phy\rockchip\phy-rockchip-inno-hdmi-phy.c )添加頻率32M

{ 32000000,? 32000000, 1,? 64, 2, 2, 2, 12, 2, 2,? 2, 0, 0}, //自行嘗試 可以成功驅動屏幕

2.咨詢廠商,根據RK提供的分頻工具得到分頻參數

hdmi配置指引和工具(https://download.csdn.net/download/mialo163/21130511)

總結: 對于我這個情況,只要添加一個pll配置即可驅動hdmi屏幕(800x480)

總結

以上是生活随笔為你收集整理的尝试新增特殊分辨率(800x480)HDMI屏到RK3328(记录)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品电影 | 久久精品视频在线播放 | 中国av毛片| free性丰满69性欧美 | 中文字幕 亚洲一区 | 激情导航 | 亚洲天堂一区在线观看 | 疯狂伦交 | 亚洲爱色 | 99国产精品99久久久久久粉嫩 | 美女色诱男人激情视频 | 免费91网站 | 九九热视频这里只有精品 | www.爆操| 日本xxxwww | 亚洲伊人av | 四季av中文字幕 | 怡红院久久 | 午夜精品在线 | 精品久久免费 | 久久久ww | 国产黄色特级片 | 男生吃小头头的视频 | 日韩一二三区在线观看 | 日韩在线一级 | 亚洲AV永久无码国产精品国产 | 国产精品精 | 麻豆精品自拍 | 视频免费1区二区三区 | xxxxwwww在线观看 | 国产精品乱码久久久久久久久 | 天天综合射 | www国产亚洲精品久久麻豆 | 理论片国产 | 91视频在线观看视频 | 久久久久成人精品无码中文字幕 | 男女扒开双腿猛进入爽爽免费 | 日本精品视频 | 成年人免费网址 | 国产成人午夜精华液 | 中日韩免费毛片 | 亚洲中文在线一区 | 天天综合精品 | 国产乱码久久久久 | 女裸全身无奶罩内裤内衣内裤 | 狂野欧美性猛交xxⅹ李丽珍 | jizz18国产| 久久久久久久久亚洲 | av亚洲在线观看 | 国产中文字幕在线免费观看 | 欧美黄色成人 | 高清一区二区在线 | 成人黄色免费在线观看 | 国产h视频 | jizz黄色片 | 99这里| 男人插女人网站 | 国产午夜大片 | 午夜国产一级 | 天天天干 | 久久精品视频91 | 国产亚洲视频在线观看 | 国产精品熟女视频 | 欧美激情在线免费观看 | 欧美色一区二区三区在线观看 | 国产ts人妖系列高潮 | 蜜臂av | 久久99久久精品 | 亚洲激情第一页 | 日韩毛片一区 | 五月婷婷综合网 | 午夜高清视频 | 国产精品久久久久免费 | 黄色精品网站 | 中文天堂在线观看 | 免费在线观看av网站 | 青青草超碰 | 蜜桃视频在线观看一区二区 | 国产精品视频一 | 中文字幕第一区 | 亚洲4438| 欧美精品乱码久久久久久 | 日韩亚洲欧美精品 | 日韩不卡免费视频 | 人妻偷人精品一区二区三区 | 在线免费h | 色婷婷狠狠爱 | 麻豆精品视频免费观看 | av55 | 免费高清av在线看 | 国产成人无码一区二区在线观看 | 国产毛片aaa| 国产视频一区在线播放 | 欧美日韩999 | 国产精品无码专区av免费播放 | 朝桐光一区二区三区 | 夜色伊人| 嫩草一区二区 | 精国产人伦一区二区三区 | 欧美性受黑人性爽 |