Android 13 LCDIF of display interface can't work

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Android 13 LCDIF of display interface can't work

ソリューションへジャンプ
2,909件の閲覧回数
KyleChang
Contributor I

NXP reference design code base:
i.MX8MQ platform / Android 13.0.0_2.0.0 (L6.1.22_2.0.0 BSP)

 

LCDIF connected to MIPI-DSI on Android 13(GKI) that does not work, but the function can work on Android 11.

Android 11 Log:(Android11_LCDIF_OK.log)

[ 3.511971] nwl-dsi 30a00000.mipi-dsi: [drm:nwl_dsi_probe] Using LCDIF as input source
[ 4.084346] [gm8775c_bridge_attach]
[ 4.084349] [gm8775c_simple_panel_host_register]
[ 4.084353] child node panel, panel@0
[ 4.084609] panel-simple panel0: DMA mask not set
[ 4.084653] [panel_simple_probe]
[ 4.084686] panel-simple panel0: supply power not found, using dummy regulator
[ 4.084862] [gm8775c_attach_dsi]
[ 4.084955] nwl-dsi 30a00000.mipi-dsi: [drm:nwl_dsi_host_attach] lanes=4, format=0x0 flags=0x15
[ 4.085966] [drm] Initialized mxsfb-drm 1.0.0 20160824 for 30320000.lcd-controller on minor 1
[ 4.237089] mxsfb 30320000.lcd-controller: [drm] fb0: mxsfb-drmdrmfb frame buffer device

 

Android 13 Log:(Android13_LCDIF_Fail.log)
[ 2.401658][ T8] nwl-dsi 30a00000.mipi-dsi: [drm:nwl_dsi_probe [nwl_dsi]] Using LCDIF as input source
[ 2.412617][ T8] [gm8775c_bridge_attach] DRM_BRIDGE_ATTACH_NO_CONNECTOR
[ 2.419684][ T8] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@30800000/i2c@30a20000/gm8775c@2C2
[ 2.419734][ T1] __power_supply_register: Expected proper parent device for 'battery'
[ 2.420045][ T1] __power_supply_register: Expected proper parent device for 'usb'
[ 2.432612][ T8] [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/bus@30800000/mipi-dsi@30a00000 to en2
[ 2.460891][ T8] mxsfb 30320000.lcd-controller: error -EINVAL: Failed to attach bridge
[ 2.469098][ T8] mxsfb 30320000.lcd-controller: error -EINVAL: Cannot connect bridge
[ 2.477247][ T8] mxsfb: probe of 30320000.lcd-controller failed with error -22

Attached LCDIF_Log.zip includes both Android11_LCDIF_OK.log and Android13_LCDIF_Fail.log.

Android 11 log shows "Initialized mxsfb-drm", but we can't find the message in Android 13 log.
We also look "mxsfb" up on the Internet:
[ 11.141177] mxsfb 30320000.lcdif: Cannot connect bridge: -22
[ 11.161062] mxsfb: probe of 30320000.lcdif failed with error -22
Does mxsfb equals lcdif ??

 

If mxsfb-drm can be initialized, can the issue be fixed?
If YES, how to enable mxsfb-drm on Android 13(GKI)?
If NO, how to fix the issue?

 

BTW, we thought DSI to LVDS bridge driver (gm8775c) can work, because we use &dcss instead of &lcdif, DCSS connected to MIPI-DSI of Android 13 can work.

Display_Interface.png

eDP_LVDS.jpg

We try to set the U-Boot environment variables as follows, it still can't work though.
u-boot=> setenv append_bootargs androidboot.primary_display=mxsfb-drm
u-boot=> saveenv

 

0 件の賞賛
返信
1 解決策
2,883件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @KyleChang 

Does mxsfb equals lcdif ??

--> The lcdif driver in i.MX8MQ is drivers/gpu/drm/mxsfb/mxsfb_drv.c, so it is mxsfb.  mxsfb-drm can't be initialized because bridge attach failed

It looks like relates to the way of handling DRM_BRIDGE_ATTACH_NO_CONNECTOR flag. Can you check this point?

The mxsfb will not pass the DRM_BRIDGE_ATTACH_NO_CONNECTOR, but dcss driver will.

ret = drm_bridge_attach(&mxsfb->encoder, bridge, NULL, 0);
	if (ret)
		return dev_err_probe(drm->dev, ret, "Failed to attach bridge\n");

	mxsfb->bridge = bridge;

 

Best Regards

Zhiming

元の投稿で解決策を見る

0 件の賞賛
返信
8 返答(返信)
655件の閲覧回数
topkarag
Contributor III

Dear Friends, ı have the similar problem. SN65dsi bridge is used to support lvds. 
Conditions 
1) dcss+lvds works fine 
2) dcss+hdmi works fine 
but lcdif+lvds does not work. I need to support dual display, so lvds should be driven by lcdif and hdmi should be driver by dcss. 

Could you please share your devicetree configuration for dual display on your Android11 device ? I checked the logs, it is similar. 

 

0 件の賞賛
返信
2,884件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @KyleChang 

Does mxsfb equals lcdif ??

--> The lcdif driver in i.MX8MQ is drivers/gpu/drm/mxsfb/mxsfb_drv.c, so it is mxsfb.  mxsfb-drm can't be initialized because bridge attach failed

It looks like relates to the way of handling DRM_BRIDGE_ATTACH_NO_CONNECTOR flag. Can you check this point?

The mxsfb will not pass the DRM_BRIDGE_ATTACH_NO_CONNECTOR, but dcss driver will.

ret = drm_bridge_attach(&mxsfb->encoder, bridge, NULL, 0);
	if (ret)
		return dev_err_probe(drm->dev, ret, "Failed to attach bridge\n");

	mxsfb->bridge = bridge;

 

Best Regards

Zhiming

0 件の賞賛
返信
2,854件の閲覧回数
KyleChang
Contributor I

Dear Zhiming_Liu,

We will check the bridge driver again, because we porting GM8775C driver refer to imx8mp_ite6151_mipi2edp_linux_5.4.24_20200921.patch for Android 11 provided by NXP and adv7511 bridge driver on Android 13 BSP, so we are going to focus on DRM_BRIDGE_ATTACH_NO_CONNECTOR flag.

BTW, you said "mxsfb-drm can't be initialized because bridge attach failed"
=>Do you mean if bridge attach successfully, mxsfb-drm will be initialized in kernel space.
If yes, we want to use mxsfb in u-boot for Android boot animation(logo), do you have Android-13 doucuments for us to study and implement? thanks.
Please correct me if I'm wrong.

 

0 件の賞賛
返信
2,836件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Do you mean if bridge attach successfully, mxsfb-drm will be initialized in kernel space.

-->Yes, we don't have such document, you can refer uboot and kernel source code.

0 件の賞賛
返信
2,806件の閲覧回数
KyleChang
Contributor I

Dear Zhiming,

We look up "primary_display", and Android_Quick_Start_Guide.pdf is not quite descriptive as the picture below.
Would you please organize what the terms of NXP proprietary mean? Thanks.

primary_display=mxsfb-drm
primary_display=imx-dcss
primary_display=imx-drm
primary_display=imx-dcnano

primary_display.png

 

0 件の賞賛
返信
2,795件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

For i.MX8MQ, mxsfb is lcdif driver, lcdif can only ouput MIPI DSI. DCSS can both output DSI and HDMI.

Zhiming_Liu_0-1711677495978.png

 

imx-dcnano and imx-drm are also display controller driver in  other i.MX platform.

0 件の賞賛
返信
2,781件の閲覧回数
KyleChang
Contributor I
Thank you very much, LCDIF connected to MIPI-DSI on Android 13 can work.
0 件の賞賛
返信
433件の閲覧回数
topkarag
Contributor III
Hello HyleChang, ı have similar problem. Could you please share me devicetree files, ı would like to solve the problem. I have succesfully drive lvds by dcss, but lcdif driven lvds is not worked. I have changed panel size, driver code etc. Also ı have changed the hardware to be sure that problem in software side but still there is no progress. I need help.
This is my problem definition on forum.
https://community.nxp.com/t5/i-MX-Processors/IMX8MQ-Android-11-LCDIF-Display-Not-Working-by-MIPI-DSI...

Best Regards
0 件の賞賛
返信