I2C与DRM启动顺序异常

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

I2C与DRM启动顺序异常

1,212 Views
gjw217
Contributor I

你好,

问题:我使用4.14.98版本的kernel,i2c先后drm启动,这样使用bridge(it6161)可以正常工作,启动流程如附件。当我使用5.4.70版本的kernel时,drm启动先于i2c,这样导致 it6161不能加入drm中,也就不能创建fb设备,显示失败,启动流程如附件所示

分析:我查看了他们的system.map文件,i2c_adapter是init4,

ffff00000924f418 t __initcall_i2c_adap_imx_init4

而it6161和imx drm是init6,2个system.map如附件

ffff00000924fdf0 t __initcall_it6161_i2c_driver_init6
ffff00000924fdf8 t __initcall_it6263_driver_init6
ffff00000924fe00 t __initcall_imx_nwl_dsi_driver_init6
ffff00000924fe08 t __initcall_seiko_adapter_driver_init6
ffff00000924fe10 t __initcall_imx_drm_pdrv_init6
ffff00000924fe18 t __initcall_imx_pd_driver_init6
ffff00000924fe20 t __initcall_imx_tve_driver_init6
ffff00000924fe28 t __initcall_imx_ldb_driver_init6
ffff00000924fe30 t __initcall_dw_hdmi_imx_platform_driver_init6
ffff00000924fe38 t __initcall_imx_nwl_dsi_driver_init6
ffff00000924fe40 t __initcall_imx_sec_dsim_driver_init6

疑问:

问题1:为什么在5.4内核中,init6会在init4前启动呢?

问题2:我应该怎样配置5.4.70,才能类似kernel4.14.98,让i2c_adap_imx_init4先执行,imx_xxx_init6后执行?

关键打印:

kernel5.4.70

[ 1.161527] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.168161] [drm] No driver support for vblank timestamp query.
[ 1.174172] imx-drm soc@0:bus@32c00000:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 1.183451] imx_sec_dsim_drv 32e10000.mipi_dsi: failed to get blk_ctl
[ 1.190040] imx_sec_dsim_drv 32e10000.mipi_dsi: version number is 0x1060200
[ 1.197054] imx_sec_dsim_drv 32e10000.mipi_dsi: Failed to attach bridge: 32e10000.mipi_dsi
[ 1.205331] imx_sec_dsim_drv 32e10000.mipi_dsi: failed to bind sec dsim bridge: -19
[ 1.213007] imx-drm soc@0:bus@32c00000:display-subsystem: bound 32e10000.mipi_dsi (ops imx_sec_dsim_ops)
[ 1.222680] [drm] Initialized imx-drm 1.0.0 2

.....................................

[ 2.368897] i2c i2c-0: IMX I2C adapter registered
[ 2.374074] gpio-144 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 3.628938] adv-wdt-i2c 1-0029: Advantech Watchdog Timer enabled. timeout=60s (nowayout=0), Ver.17
[ 3.647630] rtc-s35390a 1-0030: registered as rtc0
[ 3.665999] tpm_tis_i2c 1-002e: 2.0 TPM (device-id 0x0, rev-id 78)
[ 3.672842] tpm_tis_i2c 1-002e: TPM 2.0 / Interface : I2C)
[ 3.684867] tpm tpm0: A TPM error (256) occurred attempting the self test
[ 3.691680] tpm tpm0: starting up the TPM manually
[ 3.778780] usb251xb 1-002c: Hub configuration was successful.
[ 3.784643] usb251xb 1-002c: Hub probed successfully
[ 3.789856] i2c i2c-1: IMX I2C adapter registered
[ 3.797382] gpio-148 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 3.810824] sgtl5000 3-000a: 3-000a supply VDDA not found, using dummy regulator
[ 3.818754] sgtl5000 3-000a: 3-000a supply VDDIO not found, using dummy regulator
[ 3.829038] sgtl5000 3-000a: sgtl5000 revision 0x11
[ 3.837887] sgtl5000 3-000a: Using internal LDO instead of VDDD: check ER1 erratum
[ 3.935860] pca953x 3-0070: using no AI
[ 3.940781] pca953x 3-0070: failed writing register
[ 3.946327] i2c i2c-3: IMX I2C adapter registered
[ 3.954104] gpio-146 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 3.969117] ov5640_mipi 4-003c: 4-003c supply DOVDD not found, using dummy regulator
[ 3.977314] ov5640_mipi 4-003c: 4-003c supply DVDD not found, using dummy regulator
[ 3.985087] ov5640_mipi 4-003c: 4-003c supply AVDD not found, using dummy regulator
[ 4.066622] ov5640_mipi 4-003c: Read reg error: reg=300a
[ 4.071965] ov5640_mipi 4-003c: Camera is not found
[ 4.077934] i2c i2c-2: Added multiplexed i2c bus 4
[ 4.085597] DRM:it6161_i2c_probe
[ 4.085599] DRM:it6161_i2c_probed
[ 4.130101] DRM:it6161_parse_dt
[ 4.138317] DRM:Find 6161 revision: 0xd0
[ 4.146676] i2c i2c-2: Added multiplexed i2c bus 5
[ 4.157603] i2c i2c-2: Added multiplexed i2c bus 6

 

kernel4.14.98

[ 0.738597] i2c i2c-0: IMX I2C adapter registered
[ 0.740457] i2c i2c-0: can't use DMA, using PIO instead.
[ 0.746606] i2c i2c-1: IMX I2C adapter registered
[ 0.750554] i2c i2c-1: can't use DMA, using PIO instead.
[ 0.756367] i2c i2c-2: IMX I2C adapter registered
[ 0.760623] i2c i2c-2: can't use DMA, using PIO instead.
[ 0.766653] pca953x 3-0070: 3-0070 supply vcc not found, using dummy regulator
[ 0.777359] pca953x 3-0070: failed reading register
[ 0.779475] i2c i2c-3: IMX I2C adapter registered
[ 0.784131] i2c i2c-3: can't use DMA, using PIO instead.
[ 0.793802] i2c i2c-2: Added multiplexed i2c bus 4
[ 0.795966] i2c i2c-2: Added multiplexed i2c bus 5
[ 0.800671] i2c i2c-2: Added multiplexed i2c bus 6
[ 0.805624] pca953x 7-0073: 7-0073 supply vcc not found, using dummy regulator
[ 0.837025] random: fast init done
[ 0.865343] i2c i2c-2: Added multiplexed i2c bus 7
....................................................
[ 1.895889] DRM:it6161_parse_dt
[ 1.899625] DRM:Find 6161 revision: 0xd0
[ 1.908067] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.918668] [drm] No driver support for vblank timestamp query.
[ 1.924672] imx-drm display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 1.932348] imx_sec_dsim_drv 32e10000.mipi_dsi: version number is 0x1060200
[ 1.939442] DRM:it6161_bridge_attach, ret:0
[ 1.989447] DRM:it6161_bridge_attach finish
[ 1.993649] imx-drm display-subsystem: bound 32e10000.mipi_dsi (ops imx_sec_dsim_ops)
[ 2.006330] DRM:hpd:high

Tags (1)
0 Kudos
1 Reply

1,174 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

 

In 5.4.70 and up does not implement the DRM stars on I2C, this is bug in our system, you would have to stay in 4.14.98 or wait for the bug fix.

Regards

0 Kudos