rk3399pro mipi_dsi输出的问题
你好:现在我用rk3399pro开发板开发项目,其中用到mipi_dsi接口输出视频, mipi_dsi接口接了一个lt8912芯片(mipi转hdmi)。
我现在移植mipi_dsi驱动,如下是我的移植操作:
一.由于要用到mipi接口,所以先要在menuconfig里打开mipi。
(1)-> Device Drivers
| -> Graphics support
| -> Rockchip Misc Video drive
| -> LCD Panel Select (rk mipi dsi lcd)
(2)-> Device Drivers
| -> Graphics support
| -> Rockchip Misc Video driver
| -> RockChip display transmitter support
RK32 RGB to DisplayPort transmitter support
Rockchip MIPI DSI support
配置完上面的驱动保存后,打开.config文件,如果文件里面有如下3条数据,说明配置成功。
CONFIG_LCD_MIPI=y
CONFIG_MIPI_DSI=y
CONFIG_RK32_MIPI_DSI=y
还有个驱动需要勾选上
-> Device Drivers
| -> Graphics support
| -> Display Panels---><*> support for simple panel
二打开mipi后,在kernel 目录下执行
make -j8 ARCH=arm64 rk3399pro-firefly-aiojd4.img 命令,编译内核,编译不成功,报如下错误。drivers/built-in.o:在函数‘edp_psr_state’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1460:对‘rk_fb_poll_wait_frame_complete’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1460:(.text+0x48e38): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_fb_poll_wait_frame_completedrivers/built-in.o:在函数‘rk32_edp_probe’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1762:对‘rk_fb_get_prmry_screen’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1762:(.text+0x491e0): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_fb_get_prmry_screen/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1836:对‘support_uboot_display’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1836:(.text+0x4941c): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 support_uboot_display/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1850:对‘support_uboot_display’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1850:(.text+0x49490): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 support_uboot_display/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1854:对‘support_uboot_display’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1854:(.text+0x494b0): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 support_uboot_display/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1860:对‘rk_fb_trsm_ops_register’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:1860:(.text+0x494e4): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_fb_trsm_ops_registerdrivers/built-in.o:在函数‘rk32_edp_init_edp’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:133:对‘rk_fb_get_prmry_screen’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_dp.c:133:(.text+0x49678): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_fb_get_prmry_screendrivers/built-in.o:在函数‘rk32_dsi_enable’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1610:对‘rk_fb_get_prmry_screen’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1610:(.text+0x4bb84): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_fb_get_prmry_screendrivers/built-in.o:在函数‘rockchip_3399_grf_config’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1731:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1731:(.text+0x4bba8): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_mipi_get_dsi_numdrivers/built-in.o:在函数‘rk32_dsi_enable’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1615:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1615:(.text+0x4bbf0): 截断重寻址至相符: R_AARCH64_CALL26 针对未定义的符号 rk_mipi_get_dsi_num/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1618:对‘rk_mipi_screen_standby’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1618:(.text+0x4bc0c): 从输出所省略的额外重寻址溢出/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1625:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1630:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1634:对‘rk_mipi_get_dsi_num’未定义的引用drivers/built-in.o:在函数‘rk32_mipi_dsi_probe’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:2001:对‘rk_fb_get_prmry_screen’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:2038:对‘rk_mipi_get_dsi_lane’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:2039:对‘rk_mipi_get_dsi_lane’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:2040:对‘rk_mipi_get_dsi_clk’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:2060:对‘rk_fb_trsm_ops_register’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:2074:对‘support_uboot_display’未定义的引用drivers/built-in.o:在函数‘rockchip_mipi_cmd_mode_refresh’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1674:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1687:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1696:对‘rk_mipi_get_dsi_num’未定义的引用drivers/built-in.o:在函数‘rk32_mipi_power_down_DDR’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1819:对‘rk_mipi_get_dsi_num’未定义的引用drivers/built-in.o:在函数‘rk32_mipi_power_up_DDR’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1827:对‘rk_mipi_get_dsi_num’未定义的引用drivers/built-in.o:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1832: 跟着更多未定义的参考到 rk_mipi_get_dsi_numdrivers/built-in.o:在函数‘rk32_dsi_disable’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1706:对‘rk_mipi_screen_standby’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1708:对‘rk_mipi_get_dsi_num’未定义的引用drivers/built-in.o:在函数‘rk_mipi_dsi_init’中:/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1011:对‘rk_fb_get_prmry_screen_pixclock’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1006:对‘rk_mipi_get_dsi_num’未定义的引用/home/wzb/rk3399-pro/Android8.1/AIO-RK3399ProJD4/firenow-oreo-rk3399pro/kernel/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c:1006:对‘rk_mipi_get_dsi_num’未定义的引用
请问下,是否有别的配置项没有配置呢。请不瑟吝教,谢谢。
不需要再配置defconfig,默认的已经支持mipi dsi leung先森 发表于 2020-5-19 14:49
不需要再配置defconfig,默认的已经支持mipi dsi
谢谢,我按默认配置,修改rk3399.dtsi文件,&dsi{status="okay"} 。内核运行后,一直打印下述错误:
[ 25.568853] ff960000.dsi.0 supply power not found, using dummy regulator
[ 25.569610] Rockchip DRM driver version: v1.0.1
[ 25.570918] rockchip-drm display-subsystem: devfreq is ready
[ 25.571295] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.571477] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.571512] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.574467] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.574518] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.574603] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[ 25.574620] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
[ 25.574806] rockchip-drm display-subsystem: master bind failed: -517
[ 25.575045] ff960000.dsi.0 supply power not found, using dummy regulator
[ 25.575605] Rockchip DRM driver version: v1.0.1
[ 25.577054] rockchip-drm display-subsystem: devfreq is ready
[ 25.577437] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.577628] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.577662] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.577750] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[ 25.577767] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
[ 25.583166] rockchip-drm display-subsystem: devfreq is ready
[ 25.583540] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.583718] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.583755] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.583842] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[ 25.583858] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
[ 25.584039] rockchip-drm display-subsystem: master bind failed: -517
[ 25.584276] ff960000.dsi.0 supply power not found, using dummy regulator
[ 25.584838] Rockchip DRM driver version: v1.0.1
[ 25.586191] rockchip-drm display-subsystem: devfreq is ready
[ 25.586567] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.586749] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.586787] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.590034] rockchip-drm display-subsystem: master bind failed: -517
[ 25.590290] ff960000.dsi.0 supply power not found, using dummy regulator
[ 25.590852] Rockchip DRM driver version: v1.0.1
[ 25.592143] rockchip-drm display-subsystem: devfreq is ready
[ 25.592560] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.592740] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.592774] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.592862] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[ 25.592878] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
[ 25.593063] rockchip-drm display-subsystem: master bind failed: -517
[ 25.593306] ff960000.dsi.0 supply power not found, using dummy regulator
[ 25.593861] Rockchip DRM driver version: v1.0.1
[ 25.595158] rockchip-drm display-subsystem: devfreq is ready
[ 25.595525] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.598276] rockchip-drm display-subsystem: devfreq is ready
[ 25.598653] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 25.598838] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 25.598871] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 25.598998] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[ 25.599021] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
[ 25.599212] rockchip-drm display-subsystem: master bind failed: -517
这个东西不是这样改 的,其实网上也有一些说明,例如
https://blog.csdn.net/manshq163com/article/details/54598455
你这个驱动应该就是让他上电初始化,然后dts按照mipi dsi的修改方法去配置1080P的timing以及一些必要的command,具体还是要看这个IC的datasheet。
leung先森 发表于 2020-5-19 17:33
这个东西不是这样改 的,其实网上也有一些说明,例如
https://blog.csdn.net/manshq163com/article/detail ...
rk3399prodsi 配置后,内核运行出现这些错误,这是什么问题呀
Initialized drm 1.1.0 20060810
[ 0.932864] Rockchip DRM driver version: v1.0.1
[ 0.933180] rockchip-drm display-subsystem: defer getting devfreq
[ 0.933465] rockchip-vop ff900000.vop: missing rockchip,grf property
[ 0.933729] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops)
[ 0.933774] rockchip-vop ff8f0000.vop: missing rockchip,grf property
[ 0.933951] rockchip-drm display-subsystem: bound ff8f0000.vop (ops vop_component_ops)
[ 0.933975] rockchip-drm display-subsystem: failed to bind ff960000.dsi (ops dw_mipi_dsi_ops): -517
[ 0.934223] rockchip-drm display-subsystem: master bind failed: -517
[ 0.936487] ff960000.dsi.0 supply power not found, using dummy regulator
[ 0.937229] Unable to detect cache hierarchy for CPU 0 天涯飘雪 发表于 2020-5-20 18:39
rk3399prodsi 配置后,内核运行出现这些错误,这是什么问题呀
Initialized drm 1.1.0 20060810
...
参考kernel/arch/arm64/boot/dts/rockchip/rk3399pro-firefly-aiojd4-lvds-HSX101H40C上面的配置,其余自己网上找资料,具体还是要根据IC 的时序来 好的,谢谢 天涯飘雪 发表于 2020-5-21 11:03
好的,谢谢
兄弟,我也出现这个问题了,咋解决的啊?
页:
[1]