@aw20221130 怎么配置成横屏的,一般应用上可以用g2d进行旋转
anruliu 发布的帖子
-
回复: A133 LCD fps异常,越来越小
@wyz1226 这个不是问题,画面更新(如快速滑动界面)的时候,这个fps会上去的,或者你把cpu调频模式改成performance也可以
-
回复: 关于全志disp
DISP_LAYER_SET_CONFIG
主要是送显示的buf管理不一样
DISP_LAYER_SET_CONFIG 直接传送显示的buf物理地址,上层释放buf后,图层没有关闭可能会有一些异常
DISP_LAYER_SET_CONFIG2 需要传iommu申请的fd,disp驱动中会对这个fd增加一个引用计数,上层释放这个buf后,图层没有关闭情况下,buf是没有释放的,等到关闭图层后,减少引用计数才会释放buf -
回复: LVDS显示有锯齿
@godzhou0909 不确定,你看下芯片user manual 的tcon部分,LCD_LVDS_EVEN_ODD_DIR寄存器修改下有没有用
-
回复: LVGL8打开G2D报错
@waterworld 大概率是lvgl中用的g2d头文件与内核中的g2d头文件有些差异导致
lv_drivers/display/sunxig2d.h
-
回复: 请问 H616的安卓10(TV) 有办法吧屏幕旋转90度嘛
@godphp 可以检查下有没有这个配置
# set primary display orientation to 0 PRODUCT_PROPERTY_OVERRIDES += \ ro.surface_flinger.primary_display_orientation=ORIENTATION_90
-
回复: D1-H的SDK内的GUI框架有flutter?官方镜像支持flutter开发gui吗?
@whycanservice flutter也支持纯软件渲染,可以在arm上运行,但是不支持rv
-
回复: d1 lvds dual
@sogen 首先在dts中配置lvds1的gpio,大致是下面这样的
lvds1_pins_a: lvds1@0 { pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19"; function = "lvds1"; drive-strength = <30>; bias-disable; }; lvds1_pins_b: lvds1@1 { pins = "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PD18", "PD19"; function = "io_disabled"; drive-strength = <30>; bias-disable; };
然后在dts中配置dual lvds,主要是lcd_lvds_if与pinctrl-0
&lcd0 { lcd_used = <1>; lcd_driver_name = "default_lcd"; lcd_backlight = <50>; lcd_if = <3>; lcd_x = <640>; lcd_y = <2560>; lcd_width = <150>; lcd_height = <94>; lcd_dclk_freq = <117>; lcd_pwm_used = <0>; lcd_pwm_ch = <7>; lcd_pwm_freq = <50000>; lcd_pwm_pol = <1>; lcd_pwm_max_limit = <255>; lcd_hbp = <40>; lcd_ht = <720>; lcd_hspw = <20>; lcd_vbp = <20>; lcd_vt = <2600>; lcd_vspw = <10>; lcd_lvds_if = <1>; lcd_lvds_colordepth = <0>; lcd_lvds_mode = <0>; lcd_frm = <0>; lcd_hv_clk_phase = <0>; lcd_hv_sync_polarity= <0>; lcd_gamma_en = <0>; lcd_bright_curve_en = <0>; lcd_cmap_en = <0>; deu_mode = <0>; lcdgamma4iep = <22>; smart_color = <90>; pinctrl-0 = <&lvds0_pins_a &lvds1_pins_a>; pinctrl-1 = <&lvds0_pins_b &lvds1_pins_b>; };
-
回复: A133适配AMOLED屏幕,LCD时序参数过小导致无法进入U-Boot
lcd_dclk_freq = <38>;
lcd_x = <720>;
lcd_y = <800>;lcd_hbp = <52>;
lcd_ht = <774>;
lcd_hspw = <32>;
lcd_vbp = <16>;
lcd_vt = <828>;
lcd_vspw = <4>;不行的话,lcd_ht以2为挡位慢慢网上加试试
-
回复: LVGL如何显示摄像头采集的数据?
@cruise33 要应用你设置的风格啊
lv_obj_add_style(lv_scr_act(), &style_scr_act, 0);
-
回复: LVGL如何显示摄像头采集的数据?
@cruise33 用virvi2vo显示摄像头图像后,再加上LVGL,显示就被LVGL覆盖了,是因为UI是在最上层,需要挖空摄像头部分的数据,可以清空framebuffer后,设置背景为透明的,参考如下代码
if (lv_obj_has_state(btn, LV_STATE_CHECKED)) { lv_label_set_text(label, "Stop"); lv_disp_get_default()->driver->screen_transp = 1; lv_disp_set_bg_opa(lv_disp_get_default(), LV_OPA_TRANSP); /* Empty the buffer, not emptying will cause the UI to be opaque */ lv_memset_00(lv_disp_get_default()->driver->draw_buf->buf_act, lv_disp_get_default()->driver->draw_buf->size * sizeof(lv_color32_t)); lv_style_set_bg_opa(&style_scr_act, LV_OPA_TRANSP); lv_obj_report_style_change(&style_scr_act); } else { lv_label_set_text(label, "Play"); lv_disp_get_default()->driver->screen_transp = 0; lv_disp_set_bg_opa(lv_disp_get_default(), LV_OPA_COVER); lv_style_set_bg_opa(&style_scr_act, LV_OPA_COVER); lv_obj_report_style_change(&style_scr_act); }
并且lv_conf.h中#define LV_COLOR_SCREEN_TRANSP 1
-
回复: A133适配AMOLED屏幕,LCD时序参数过小导致无法进入U-Boot
@ceoifung 看这个
@anruliu 在 D1H支持1920*1200分辨率,但是1080*1920竖屏支持吗 中说:你是怎么互换的,如果计算出现负数肯定进不去
lcd_x = 屏厂给的实际的x lcd_hbp = 屏厂给的实际的hbp + 屏厂给的实际的hsync lcd_ht = 屏厂给的实际的lcd_h + 屏厂给的实际的hsync + 屏厂给的实际的hbp + 屏厂给的实际的hfp lcd_hspw = 屏厂给的实际的hsync lcd_y = 屏厂给的实际的y lcd_vpp = 屏厂给的实际的vbp + 屏厂给的实际的vsync lcd_vt = 屏厂给的实际的lcd_y + 屏厂给的实际的vsync + 屏厂给的实际的vbp + 屏厂给的实际的vfp lcd_vspw = 屏厂给的实际的vsync
-
回复: T113-pro如何替换开机启动Logo
@techxie123 device/config/chips/芯片/configs/方案/linux-5.4/sys_partition.fex中boot-resource分区
-
回复: tina d1 开机屏上下反
@chdeng1 tslib印象中不带旋转功能,你想要tp旋转,有几种方式。
1、tp驱动自己旋转,如drivers/input/touchscreen/gt9xxnew/gt9xx.c中revert_x_flag,revert_y_flag,exchange_x_y_flag
2、使用ui框架中的tp旋转,如果用的是lvgl,那么设置disp_drv.rotated = rotated;后,lvgl会自动旋转tp坐标 -
回复: f133 tina4.0 sdk,发现一个很奇怪的现象,大佬们知道的帮忙解答一下,非常感谢
@wyljkl 在 f133 tina4.0 sdk,发现一个很奇怪的现象,大佬们知道的帮忙解答一下,非常感谢 中说:
reset脚和lcd_en
上面说过了,dts中reset脚和lcd_en的默认电平是不是配置为低电平了?因为内核disp驱动初始化的时候会获取gpio并设置默认电平。
-
回复: f133 tina4.0 sdk,发现一个很奇怪的现象,大佬们知道的帮忙解答一下,非常感谢
@wyljkl 用示波器量下lcd各个脚,如reset是否跌落,电源是否有变化
-
回复: f133 tina4.0 sdk,发现一个很奇怪的现象,大佬们知道的帮忙解答一下,非常感谢
@wyljkl uboot开屏后,kernel不会再走开屏流程,只会保存一些状态,因为uboot已经开过屏了,如果uboot开屏后,kernel初始化disp阶段屏黑了,首先可以确定背光是否存在,到内核后能否显示colorbar,还有如上面说的lcd_gpio_0和lcd_gpio_1默认电平是否配置为高电平。
内核想要重新初始化屏,可以单独休眠唤醒lcd测试下能否恢复显示
mount -t debugfs none /sys/kernel/debug cd /sys/kernel/debug/dispdbg //休眠 echo suspend > command; echo disp0 > name; echo 1 > start //唤醒 echo resume > command; echo disp0 > name; echo 1 > start
// colorbar彩条 echo 1 > /sys/class/disp/disp/attr/colorbar
-
回复: r328想要使用lcd7789驱动,但配置里面打不开
@chris98 你要先确认lcd7789是什么协议驱动的lcd,r328没有disp模块,不能驱动rgb,lvds,mipi dsi等协议的lcd
-
回复: tina d1 开机屏上下反
@chdeng1 可以拍照看下是怎么相反的,如果只是需要旋转屏幕的功能,可以在应用层旋转。
RGB的LCD一般是通过default_pannel.c点亮,去掉当然不行了。一般uboot和kernel显示开机log,可以自己把开机log旋转后再打包放进去,应用层的旋转一般是用UI框架来旋转。如果是用lvgl,那么就可以选上LVGL8_USE_SUNXIFB_G2D_ROTATE 这个配置,应用初始化的时候调用sunxifb_init(rotated),rotated就是要旋转的角度
-
回复: D1H支持1920*1200分辨率,但是1080*1920竖屏支持吗
你是怎么互换的,如果计算出现负数肯定进不去
lcd_x = 屏厂给的实际的x lcd_hbp = 屏厂给的实际的hbp + 屏厂给的实际的hsync lcd_ht = 屏厂给的实际的lcd_h + 屏厂给的实际的hsync + 屏厂给的实际的hbp + 屏厂给的实际的hfp lcd_hspw = 屏厂给的实际的hsync lcd_y = 屏厂给的实际的y lcd_vpp = 屏厂给的实际的vbp + 屏厂给的实际的vsync lcd_vt = 屏厂给的实际的lcd_y + 屏厂给的实际的vsync + 屏厂给的实际的vbp + 屏厂给的实际的vfp lcd_vspw = 屏厂给的实际的vsync
-
回复: D1H支持1920*1200分辨率,但是1080*1920竖屏支持吗
@xiaoxiao
1920x1200=2304000 > 1080x1920=2073600,所以是支持这个分辨率的,开机卡死可能是配置有问题,或者是有bug,可以把board.dts与开机log发出来看下 -
回复: lvgl 使用g2d加速性能问题
1、首先LV_USE_PERF_MONITOR统计的不是真实的fps,lvgl可以没有限制的一直刷画面,看起来帧率的确高,但是滑动场景下,比较容易看到画面撕裂,不想看到撕裂就只能开双缓冲,像QT,MiniGUI这些框架也是如此,默认是没有用上双缓冲的,可以传入下面的宏看fps打印
TARGET_CFLAGS+=-DLV_USE_SUNXIFB_DEBUG
2、开启LVGL8_USE_SUNXIFB_DOUBLE_BUFFER后,可以解决画面撕裂的问题,但是需要做整屏buffer的拷贝,这里会比较耗时
3、开启LVGL8_USE_SUNXIFB_G2D后,就是把整屏buffer的拷贝从用cpu拷贝,切换到g2d拷贝
4、开启LVGL8_USE_SUNXIFB_G2D_ROTATE后,就可以用G2D旋转整个屏幕,会比原来的CPU旋转快很多
5、G2D的优势在于blend,scale,rotate,lv_g2d_test在使能g2d的场景下,会传入宏
TARGET_CFLAGS+=-DLV_USE_SUNXIFB_G2D_FILL \ -DLV_USE_SUNXIFB_G2D_BLEND \ -DLV_USE_SUNXIFB_G2D_BLIT \ -DLV_USE_SUNXIFB_G2D_SCALE
6、lv_demo_benchmark、lv_example不能使能第5步的宏,因为其中的图片不是申请的物理连续内存,不能使用g2d来进行blend等功能,但是可以使能LVGL8_USE_SUNXIFB_DOUBLE_BUFFER,LVGL8_USE_SUNXIFB_G2D,LVGL8_USE_SUNXIFB_G2D_ROTATE来加速双缓冲情况下的拷贝与屏幕旋转功能,但是整体还是单缓冲的帧率要高
-
回复: OLED的MIPI屏幕实时亮度改变问题
@tevet
中断中不要加入太多打印,读取和写寄存器前后要调用dsi_read_mode_enstatic s32 lcd_set_oled_bright(u32 sel,u32 bright) { s32 ret = 0; u8 result[16] = {0}; s32 nump = 1; dsi_read_mode_en(0, 1); ret = sunxi_lcd_dsi_dcs_read(0, 0x54, result,&nump); dsi_dcs_wr_1para(sel, 0xFE, 0x00); //{ 0xFE,1,{0x00} }, dsi_dcs_wr_1para(sel, 0x51, 0x50); dsi_read_mode_en(0, 0); return 0; }
中断处理函数中,调用背光设置的代码要放在前面,满足cur_line < 2,并且尽量减少这里面的代码调用
if (cur_line < 2 && panel_extend_modify_oledbright == 1 && lcdp->lcd_panel_fun.set_oled_bright) { lcdp->lcd_panel_fun.oled_set_bright(lcd->disp, fix_bright); }
这样修改后应该就不用再重新触发中断
-
回复: OLED的MIPI屏幕实时亮度改变问题
@tevet 可以翻一下lcd调试说明文档,里面有esd这个章节,显示驱动中也有esd相关代码,做esd就是在中断的消隐区间去读mipi的寄存器,判断屏的状态。可以读那么就可以写了
-
回复: OLED的MIPI屏幕实时亮度改变问题
@tevet 发送命令要处于LP模式,在送帧(HP模式)的时候去切换模式肯定会导致黑屏的,需要在中断的消隐区间去设置背光
-
回复: minigui使用g2d加速模块,出错
@jhj001 minigui中直接引用g2d_driver.h即可,不过某些结构体可能不一样,要改下minigui中的代码
-
回复: 请教关于D1-H_Tina_open V2.0的LCD驱动未加载问题
@dyd2022 这是开机logo的大小,你替换一张开机logo和你lcd匹配的分辨率即可
-
回复: 求教,关于LicheeRV 86 Panel在tina2.0配置lcd的问题
@lbuque 开机过程中在uboot初始化lcd后,kernel是不是走lcd初始化流程的,进入内核后,休眠唤醒一下lcd,看看pin脚状态有没有变化
mount -t debugfs none /sys/kernel/debug cd /sys/kernel/debug/dispdbg //休眠 echo suspend > command; echo disp0 > name; echo 1 > start //唤醒 echo resume > command; echo disp0 > name; echo 1 > start
-
回复: 求教,关于LicheeRV 86 Panel在tina2.0配置lcd的问题
@lbuque lcd rgb gpio是在你们屏驱动st7701s_rgb中调用sunxi_lcd_pin_cfg(sel, 1);初始化的,可以跟下调用流程
-
回复: 求助:关于tina tplayer库
@mhcsoft 播放的时候,可以执行以下命令,看图层是否设置正确
cat /sys/class/disp/disp/attr/sys
-
回复: T113奇怪的屏幕刷新问题
@peter_yyp 看起是fb0有开cache,但是写完一帧数据后,没有刷cache导致的,检查内核申请fb时看看是不是带了cache标志
-
回复: 【已解决】D1s 调试 MIPI LCD 不亮
@yuzukitsuru
调用多次lcd_open_flow是正常的,是在u-boot-2018/drivers/video/sunxi/disp2/disp/dev_disp.c的drv_lcd_open_callback函数中bsp_disp_lcd_get_open_flow调用的,主要是为了获取lcd_power_on、lcd_bl_open这些函数句柄。没有背光还是要检查供电情况,另外uboot的显示用的是uboot-board.dts,需要注意相关配置有没有配好。
-
回复: lvgl 桌面系统移植问题
@yelong98 以package/gui/littlevgl-8/lv_examples为例
package/gui/littlevgl-8/lv_examples/Makefile是openwrt中应用包的,主要负责资源解压与传递交叉编译配置
package/gui/littlevgl-8/lv_examples/src/Makefile是实际编译时用到的Makefile,其中部分变量会被openwrt传递进来的值替换把相关文件复制到src目录,可参考下面的流程
define Build/Prepare
$(INSTALL_DIR) $(PKG_BUILD_DIR)/
$(CP) ./src $(PKG_BUILD_DIR)/
$(CP) ./../lvgl $(PKG_BUILD_DIR)/src/
$(CP) ./../lv_drivers $(PKG_BUILD_DIR)/src/
$(CP) ./../lv_demos $(PKG_BUILD_DIR)/src/
endef在src目录下执行make命令即可,下面是交叉编译需要传递的变量
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR)/src
ARCH="$(TARGET_ARCH)"
AR="$(TARGET_AR)"
CC="$(TARGET_CC)"
CXX="$(TARGET_CXX)"
CFLAGS="$(TARGET_CFLAGS)"
LDFLAGS="$(TARGET_LDFLAGS)"
INSTALL_PREFIX="$(PKG_INSTALL_DIR)"
all
endef -
回复: 在TinaV2.2 D1s上面搞LVGL8去调用G2D旋转让LVGL8的软件旋转再见
@tevet 不用这么麻烦的,board.dts的旋转配置是用内核驱动代码来旋转的,不用修改,还原回去即可,下面这种方式是在应用层进行旋转
选上lvgl-8.0.1 use sunxifb g2d rotate之后,如果需要旋转,修改lv_examples/src/main.c即可
uint32_t rotated = LV_DISP_ROT_NONE; //这句代码会传递旋转角度到引擎中 sunxifb_init(rotated);
改成你想要的旋转角度
typedef enum { LV_DISP_ROT_NONE = 0, LV_DISP_ROT_90, LV_DISP_ROT_180, LV_DISP_ROT_270 } lv_disp_rot_t;
这种旋转方式,是在lvgl中进行旋转,并且tp的触摸也会旋转
-
回复: 哪吒板上用display显示yuv格式数据直接蓝屏
@honey130602 可以用package/utils/yuview来测试显示一张yuv图片。另外蓝屏的时候可以执行cat /sys/class/disp/disp/attr/sys看看图层信息哪里有异常。
-
回复: 请问怎么把2D加速整合到Qt?
@lyr2021 全屏buffer只是相对于lvgl的,送给LCD始终都是一个buffer,在滑动方向和LCD刷新方向不一致情况下比较能明显看到撕裂,可以参考https://os.51cto.com/article/646550.html
-
回复: 请问怎么把2D加速整合到Qt?
@lyr2021
1、首先LV_USE_PERF_MONITOR统计的不是真实的fps,lvgl可以没有限制的一直刷画面,看起来帧率的确高,但是滑动场景下,比较容易看到画面撕裂,不想看到撕裂就只能开双缓冲,像QT,MiniGUI这些框架也是如此,默认是没有用上双缓冲的
2、开启LVGL8_USE_SUNXIFB_DOUBLE_BUFFER后,可以解决画面撕裂的问题,但是需要做整屏buffer的拷贝,这里会比较耗时
3、开启LVGL8_USE_SUNXIFB_G2D后,就是把整屏buffer的拷贝从用cpu拷贝,切换到g2d拷贝
4、开启LVGL8_USE_SUNXIFB_G2D_ROTATE后,就可以用G2D旋转整个屏幕,会比原来的CPU旋转快很多
5、G2D的优势在于blend,scale,rotate,当前版本没有完全实现这些接口,也体现不出来 -
回复: 全志D1s 使用 tplayerdemo播放 mp4视频出现错误。请各位大佬们帮着看看。问题出在什么哪?谢谢!
@lmjlzyljy 很明显报内存申请失败的log了,播放前可以执行free看剩余内存多少
-
回复: 请问 D1 的硬件DE 0 / 1 对应的就是 SCREEN 0 / 1 吗?
@memory 可以大致这么理解,一般de0对应tcon0对应screen 0,de1对应tcon1对应screen 1
-
回复: 第一次调MIPI接口的显示屏,都是什么套路?
@xiaochusheng 这里分享一个竖屏转成横屏的方法,这种方式会用g2d硬件来旋转,注意这种方法只能修改FB0的旋转角度,视频播放不受影响,并且开机后到内核可能不会显示开机logo,因为需要调用ioctl FBIOPAN_DISPLAY才能显示,可以选上Utilities-->directfb-examples,板子上执行df_andi测试
-
回复: 终于在D1哪吒上面把跑InfoNES framebuffer 模拟器跑起来了
@memory frambuffer 默认是 ARGB8888 格式的,board.dts中的fb0_format可以配置,0是ARGB8888,8是RGB888,10是RGB565
-
回复: 请问 screen0/1 与 fb0/1 怎么理解? 有什么差别呢?
@memory
修改linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c#define SUNXI_FB_MAX 1
改成
#define SUNXI_FB_MAX 2
这样fb1就会生成出来
在display_fb_request函数中
for (sel = 0; sel < num_screens; sel++)
是判断显示到哪个screen
建议不熟悉驱动不要修改,修改后可能出现其他异常
-
回复: 请问 screen0/1 与 fb0/1 怎么理解? 有什么差别呢?
@memory
screen0/1和board.dts中定义的screen0/1一致,默认screen0为lcd,screen1为hdmi
fb0默认显示在screen0上,fb1目前没有使用 -
回复: MCU通过以太网(UDP)发送图片到哪吒开发板进行处理
@aldfaaa 参考下面的链接
https://bbs.aw-ol.com/topic/77/d1设置hdmi分辨率按照帖子最后修改uboot-board.dts中的参数即可
-
回复: MCU通过以太网(UDP)发送图片到哪吒开发板进行处理
@aldfaaa 显示的demo是有的
显示一张bmp/jpg/png的demo在package/utils/fbviewer路径下,命令是
fbviewer /mnt/UDISK/xx.bmp
显示一张nv21数据的demo在package/utils/yuview,yuview中是的代码是最简单的调用显示接口显示一张裸数据的示例,命令如下
yuview -format nv21 -size 640 480 -buffer_num 1 -file /mnt/UDISK/pic_nv21_640x480.dat
-
回复: 请问哪吒 D1 开发板拔插 HDMI 显示器, 提示sink do not support this mode 是什么问题? 换了两台显示器了.
@tigger /sys/devices/virtual/hdmi/hdmi/attr是hdmi的调试节点,可以在这里看下hdmi_sink节点,正常会有类似输出
root@TinaLinux:~# cat /sys/class/hdmi/hdmi/attr/hdmi_sink Video Mode: 640x480P 720x480P 720x480P 1080I60 480I 480I 1080P60 576P 576P 720P50 1080I50 576I 576I 1080P50 720P60 Only Support YUV420: Also Support YUV420: Pixel Format: RGB YUV444 YUV422 Deep Color: Basic Audio Support: YES Audio Code: LPCM HDCP Tpye:
-
回复: D1设置hdmi分辨率
@dianjixz @xushengrui 更新如下, dev0_output_type应该配置成4,开机默认分辨率为1920*1080
diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts index 793dec2..d95a320 100644 --- a/configs/nezha/uboot-board.dts +++ b/configs/nezha/uboot-board.dts @@ -229,15 +229,15 @@ screen1_output_scan = <0>; screen1_output_aspect_ratio = <8>; - dev0_output_type = <1>; - dev0_output_mode = <4>; + dev0_output_type = <4>; + dev0_output_mode = <10>; dev0_screen_id = <0>; - dev0_do_hpd = <0>; + dev0_do_hpd = <1>; - dev1_output_type = <4>; - dev1_output_mode = <10>; + dev1_output_type = <1>; + dev1_output_mode = <4>; dev1_screen_id = <1>; - dev1_do_hpd = <1>; + dev1_do_hpd = <0>; def_output_dev = <0>; hdmi_mode_check = <1>;
还需要注意一点是默认开机logo分辨率为800*1280,改了默认HDMI输出后,logo会显示不正常
开机logo位于device/config/chips/d1/configs/nezha/configs/bootlogo.bmp -
回复: D1设置hdmi分辨率
1、关于显示不全的原因是fb0在内核显示驱动初始化的时候会申请fb0的buffer,这时就指定了fb0的分辨率,因此后面通过命令去切换成HDMI显示的时候,分辨率基本上就对应不上,修改方法有一种,就是开机的时候就指定默认HDMI输出,如下所示,修改完毕后需要重新编译uboot,在lichee/brandy-2.0/u-boot-2018目录下执行make clean && muboot
diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts index 793dec2..d95a320 100644 --- a/configs/nezha/uboot-board.dts +++ b/configs/nezha/uboot-board.dts @@ -229,15 +229,15 @@ screen1_output_scan = <0>; screen1_output_aspect_ratio = <8>; - dev0_output_type = <1>; - dev0_output_mode = <4>; + dev0_output_type = <3>; + dev0_output_mode = <10>; dev0_screen_id = <0>; - dev0_do_hpd = <0>; + dev0_do_hpd = <1>; - dev1_output_type = <4>; - dev1_output_mode = <10>; + dev1_output_type = <1>; + dev1_output_mode = <4>; dev1_screen_id = <1>; - dev1_do_hpd = <1>; + dev1_do_hpd = <0>; def_output_dev = <0>; hdmi_mode_check = <1>;
2、param参数信息中4 10分别代表DISP_OUTPUT_TYPE_HDMI和DISP_TV_MOD_1080P_60HZ,后面的参数一般不用关心,可以在linux-5.4/include/video/sunxi_display2.h看到相关宏定义
enum disp_output_type { DISP_OUTPUT_TYPE_NONE = 0, DISP_OUTPUT_TYPE_LCD = 1, DISP_OUTPUT_TYPE_TV = 2, DISP_OUTPUT_TYPE_HDMI = 4, /***/ };
enum disp_tv_mode { DISP_TV_MOD_480I = 0, DISP_TV_MOD_576I = 1, DISP_TV_MOD_480P = 2, DISP_TV_MOD_576P = 3, DISP_TV_MOD_720P_50HZ = 4, DISP_TV_MOD_720P_60HZ = 5, DISP_TV_MOD_1080I_50HZ = 6, DISP_TV_MOD_1080I_60HZ = 7, DISP_TV_MOD_1080P_24HZ = 8, DISP_TV_MOD_1080P_50HZ = 9, DISP_TV_MOD_1080P_60HZ = 0xa, /***/