Firefly开源社区

标题: rk3399pro mipi_dsi输出的问题 [打印本页]

作者: 天涯飘雪    时间: 2020-5-19 13:56
标题: 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’未定义的引用
请问下,是否有别的配置项没有配置呢。请不瑟吝教,谢谢。



作者: leung先森    时间: 2020-5-19 14:49
不需要再配置defconfig,默认的已经支持mipi dsi
作者: 天涯飘雪    时间: 2020-5-19 15:56
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] [drm] 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] [drm] 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] [drm] 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] [drm] 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] [drm] 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

作者: leung先森    时间: 2020-5-19 17:33
这个东西不是这样改 的,其实网上也有一些说明,例如
https://blog.csdn.net/manshq163com/article/details/54598455

你这个驱动应该就是让他上电初始化,然后dts按照mipi dsi的修改方法去配置1080P的timing以及一些必要的command,具体还是要看这个IC的datasheet。

作者: 天涯飘雪    时间: 2020-5-20 18:39
leung先森 发表于 2020-5-19 17:33
这个东西不是这样改 的,其实网上也有一些说明,例如
https://blog.csdn.net/manshq163com/article/detail ...

rk3399pro  dsi 配置后,内核运行出现这些错误,这是什么问题呀
[drm] Initialized drm 1.1.0 20060810

[ 0.932864] [drm] 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
作者: leung先森    时间: 2020-5-21 09:37
天涯飘雪 发表于 2020-5-20 18:39
rk3399pro  dsi 配置后,内核运行出现这些错误,这是什么问题呀
[drm] Initialized drm 1.1.0 20060810
...

参考kernel/arch/arm64/boot/dts/rockchip/rk3399pro-firefly-aiojd4-lvds-HSX101H40C上面的配置,其余自己网上找资料,具体还是要根据IC 的时序来
作者: 天涯飘雪    时间: 2020-5-21 11:03
好的,谢谢
作者: RobinXu    时间: 2022-3-19 17:37
天涯飘雪 发表于 2020-5-21 11:03
好的,谢谢

兄弟,我也出现这个问题了,咋解决的啊?




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1