Firefly开源社区

打印 上一主题 下一主题

rk3399pro mipi_dsi输出的问题

53

积分

0

威望

0

贡献

技术小白

积分
53

rk3399pro mipi_dsi输出的问题

发表于 2020-5-19 13:56:07      浏览:9969 | 回复:7        打印      只看该作者   [复制链接] 楼主
你好:
         现在我用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’未定义的引用
请问下,是否有别的配置项没有配置呢。请不瑟吝教,谢谢。


回复

使用道具 举报

2965

积分

12

威望

22

贡献

高级创客

Rank: 6Rank: 6

积分
2965
发表于 2020-5-19 14:49:02        只看该作者  沙发
不需要再配置defconfig,默认的已经支持mipi dsi
回复

使用道具 举报

53

积分

0

威望

0

贡献

技术小白

积分
53
发表于 2020-5-19 15:56:58        只看该作者  板凳
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
回复

使用道具 举报

2965

积分

12

威望

22

贡献

高级创客

Rank: 6Rank: 6

积分
2965
发表于 2020-5-19 17:33:17        只看该作者  地板
这个东西不是这样改 的,其实网上也有一些说明,例如
https://blog.csdn.net/manshq163com/article/details/54598455

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

使用道具 举报

53

积分

0

威望

0

贡献

技术小白

积分
53
发表于 2020-5-20 18:39:53        只看该作者  5#
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
回复

使用道具 举报

2965

积分

12

威望

22

贡献

高级创客

Rank: 6Rank: 6

积分
2965
发表于 2020-5-21 09:37:20        只看该作者  6#
天涯飘雪 发表于 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 的时序来
回复

使用道具 举报

53

积分

0

威望

0

贡献

技术小白

积分
53
发表于 2020-5-21 11:03:41        只看该作者  7#
好的,谢谢
回复

使用道具 举报

49

积分

0

威望

0

贡献

技术小白

积分
49
发表于 2022-3-19 17:37:38        只看该作者  8#

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表