146 + drm_mode_probed_add(connector, mode); 147 + 148 + connector->display_info.width_mm = mode->width_mm; 149 + connector->display_info.height_mm = mode->height_mm; 150 + 151 + return 1; 152 + } 153 + 154 + static const struct drm_panel_funcs jadard_jd9365da_...
DRM(Direct Rendering Manager)是Linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DRM提供的API,实现3D渲染、视频解码和GPU计算等工作。 可以将Linux下DRM系统分为3部分: DRM相关驱动,可以是LCDC驱动、Panel驱动、GPU驱动。 DRM Core,负责给底层驱动提供功能,对用户空间导出各种接口。 libdrm等上层应用,负责GU...
1 change: 1 addition & 0 deletions 1 drivers/gpu/drm/panel/Makefile Original file line numberDiff line numberDiff line change @@ -18,6 +18,7 @@ obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) += panel-ilitek-ili9881...
a) 获取和上报display热拔插(Hotplug)状态 b) 读取并解析屏 (Panel) 的 EDID 信息 PLANE:硬件图层,有的Display硬件支持多层合成显示,但所有的Display Controller至少 要有1个plane; a) plane是ctrc和framebuffer的连接者 b) 每个crtc至少要有一个plane c) DRM中的Plane和我们常说的YUV/YCbCr图形格式中的plane完...
PS:drm_panel不属于object范畴,只是为了降低LCD驱动与encoder驱动间的耦合,是一堆回调函数集合。 图2.1 DRM核心组件介绍 2.2 DRM抽象硬件如何关联DRM Object DRM的objects并不难理解,重要的是如何将实际的硬件与这些object进行关联,下面会以MIPI DSI接口为例进行介绍软件架构与DRM object的对应关系。
drm_panel drm_panel 不属于 objects 的范畴,它只是一堆回调函数的集合。但它的存在降低了 LCD 驱动与 encoder 驱动之间的耦合度。 耦合的产生: connector 的主要作用就是获取显示参数,所以会在 LCD 驱动中去构造 connector object。但是 connector 初始化时需要 attach 上一个 encoder object,而这个 encoder object...
drm_panel 不属于 objects 的范畴,它只是一堆回调函数的集合。但它的存在降低了 LCD 驱动与 encoder 驱动之间的耦合度。 耦合的产生: connector 的主要作用就是获取显示参数,所以会在 LCD 驱动中去构造 connector object。但是 connector 初始化时需要 attach 上一个 encoder object,而这个 encoder object 往往是在...
drm_panel 不属于 objects 的范畴,它只是一堆回调函数的集合。但它的存在降低了 LCD 驱动与 encoder 驱动之间的耦合度。 耦合的产生: connector 的主要作用就是获取显示参数,所以会在 LCD 驱动中去构造 connector object。但是 connector 初始化时需要 attach 上一个 encoder object,而这个 encoder object 往往是在...
1.1.4 配置panel驱动 panel驱动位于drivers/gpu/drm/panel/panel-simple.c,如果需要使该文件生效,需要配置CONFIG_PWM_ROCKCHIP,具体参考drivers/gpu/drm/panel/Makefile; obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o 因此,我们需要配置内核:
平台驱动 rockchip-drm 匹配到设备树,会到设备树 dts 查找 ports 节点和 iommus 节点,使用 component_master_add_with_match 函数注册自己到 component 框架中,设置了 rockchip_drm_ops,其 component 可以通过 component_add 函数增加,master 匹配上所有 component 后,会调用 master 的 bind 回调函数,最后通过 drm...