文章的主要目的是为了记录,其次希望自己做的东西越来越多以后,可以把这些东西整合、重塑,让自己的知识体系更加的立体、完整
文章目录
参考文档
https://blog.csdn.net/dahailinan/article/details/111309692
https://blog.csdn.net/qq_30624591/article/details/106840966
https://blog.csdn.net/m0_38022615/article/details/109378391
涉及文件
kernel/drivers/gpu/drm/drm_edid.c
kernel/drivers/gpu/drm/rockchip/inno_hdmi.c
kernel/drivers/gpu/drm/rockchip/inno_hdmi.h
kernel/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
kernel/drivers/video/rockchip/hdmi/rockchip-hdmi.h
kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
device/rockchip/rk3399/rk3399_all/system.prop
frameworks/base/services/core/jni/com_android_server_rkdisplay_RkDisplayModes.cpp
kernel部分代码
edid相关代码
kernel/drivers/gpu/drm/drm_edid.c
/*
* Probably taken from CEA-861 spec.
* This table is converted from xorg's hw/xfree86/modes/xf86EdidModes.c.
*
* Index using the VIC.
*/
static const struct drm_display_mode edid_cea_modes[] = {
...
/* 5 - 1920x1080i@60Hz */
{
DRM_MODE("1920x1080i", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2008,
2052, 2200, 0, 1080, 1084, 1094, 1125, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_INTERLACE),
.vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
...
------------------
drm_add_edid_modes
add_detailed_modes
do_detailed_mode
drm_mode_detailed
include/drm/drm_edid.h
struct edid {
u8 header[8];
/* Vendor & product info */
u8 mfg_id[2];
u8 prod_code[2];
u32 serial; /* FIXME: byte order */
u8 mfg_week;
u8 mfg_year;
/* EDID version */
u8 version;
u8 revision;
/* Display info: */
u8 input;
u8 width_cm;
u8 height_cm;
u8 gamma;
u8 features;
/* Color characteristics */
u8 red_green_lo;
u8 black_white_lo;
u8 red_x;
u8 red_y;
u8 green_x;
u8 green_y;
u8 blue_x;
u8 blue_y;
u8 white_x;
u8 white_y;
/* Est. timings and mfg rsvd timings*/
struct est_timings established_timings;
/* Standard timings 1-8*/
struct std_timing standard_timings[8];
/* Detailing timings 1-4 */
struct detailed_timing detailed_timings[4
Linux内核与HDMI相关代码及功能记录

最低0.47元/天 解锁文章
1870

被折叠的 条评论
为什么被折叠?



