Errro while adding DSI panel support

Hi,

I am trying to add DSI panel support in Linux kernel version 5.4.17. I have added panel driver and required changes in device tree. Panel driver is getting probed but i am getting below error regarding MDP and GPU firmware:

[    6.718499] bam-dma-engine 17184000.bamdma: Adding to iommu group 8
[    6.780100] msm ae00000.mdss: bound ae01000.mdp (ops dpu_ops)
[    6.804648] msm_dsi ae94000.dsi: ae94000.dsi supply gdsc not found, using dummy regulator
[    6.851963] msm ae00000.mdss: bound ae94000.dsi (ops dsi_ops)
[    6.876476] msm_dsi ae96000.dsi: ae96000.dsi supply gdsc not found, using dummy regulator
[    6.968257] panel-truly-nt36850 ae94000.dsi.0: ae94000.dsi.0 supply vdda not found, using dummy regulator
[    6.985645] panel-truly-nt36850 ae94000.dsi.0: ae94000.dsi.0 supply vdispp not found, using dummy regulator
[    6.995489] panel-truly-nt36850 ae94000.dsi.0: ae94000.dsi.0 supply vdispn not found, using dummy regulator
[    7.048181] msm ae00000.mdss: bound ae96000.dsi (ops dsi_ops)
[    7.058856] adreno 5000000.gpu: 5000000.gpu supply vdd not found, using dummy regulator
[    7.066958] adreno 5000000.gpu: 5000000.gpu supply vddcx not found, using dummy regulator
[    7.075279] msm ae00000.mdss: [drm:msm_gpu_init] A630: using IOMMU
[    7.082425] platform 506a000.gmu: Adding to iommu group 9
[    7.088322] msm ae00000.mdss: bound 5000000.gpu (ops a3xx_ops)
[    7.105987] msm_dpu ae01000.mdp: [drm:msm_ioremap] *ERROR* failed to get memory resource: vbif_nrt
[    7.115043] [drm:dpu_kms_hw_init:861] dpu hardware revision:0x40000000
[    7.149490] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    7.161013] [drm] No driver support for vblank timestamp query.
[    7.169825] [drm] Initialized msm 1.5.0 20130625 for ae00000.mdss on minor 0
[    7.177048] msm ae00000.mdss: Direct firmware load for qcom/a630_sqe.fw failed with error -2
[    7.185566] msm ae00000.mdss: Falling back to sysfs fallback for: qcom/a630_sqe.fw
[   56.477621] random: crng init done
[   68.574313] msm ae00000.mdss: [drm:adreno_request_fw] *ERROR* failed to load a630_sqe.fw
[   69.067705] Console: switching to colour frame buffer device 180x160
[   69.157100] msm ae00000.mdss: fb0: msmdrmfb frame buffer device
[   69.166848] ufshcd-qcom 1d84000.ufshc: ufshcd_populate_vreg: Unable to find vdd-hba-supply regulator, assuming enabled
[   69.177750] ufshcd-qcom 1d84000.ufshc: ufshcd_populate_vreg: Unable to find vccq-supply regulator, assuming enabled
[   69.188370] ufshcd-qcom 1d84000.ufshc: ufshcd_populate_vreg: Unable to find vccq2-supply regulator, assuming enabled 

It wait too long before crng init done and no data is coming on the DSI panel. I think because of firmware getting failed to load, Panel is not working. In my board this firmware present at /lib/firmware/a630_sqe.fw path.

So can anyone suggest what is the problem here and why DSI panel is not working, and how can i resolve firmware loading error?

Thanks,
Hiren

Hi Hiren,

The one thing from the log is that the a630_sqe.fw is supposed to live in /lib/firmware/qcom, not just /lib/firmware. Please move your firmware files and let us know how it works out.

Regards,
Bjorn

Hi,

I get to know that later on boot, this firmware is getting loaded from legacy location

[   71.906423] Bluetooth: hci0: QCA controller version 0x02140201
[   71.906439] Bluetooth: hci0: QCA Downloading qca/crbtfw21.tlv
[   71.914249] systemd-journald[358]: File /var/log/journal/11708ee2c7264f6387d5a7433bd3a1c9/system.journal corrupted or uncleanly shut down, .
[   72.801290] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   72.813322] Bluetooth: hci0: QCA Downloading qca/crnv21.bin
[   72.817994] Bluetooth: BNEP filters: protocol multicast
[   72.835150] Bluetooth: BNEP socket layer initialized
[   72.911292] Bluetooth: hci0: QCA setup on UART is completed
[   73.747956] msm ae00000.mdss: [drm:adreno_request_fw] loaded qcom/a630_sqe.fw from legacy location
[   73.801179] msm ae00000.mdss: [drm:adreno_request_fw] loaded qcom/a630_gmu.bin from legacy location
[   73.903103] msm ae00000.mdss: [drm:adreno_request_fw] loaded qcom/a630_zap.mdt from legacy location
[   75.619241] Bluetooth: RFCOMM TTY layer initialized
[   75.619273] Bluetooth: RFCOMM socket layer initialized
[   75.619288] Bluetooth: RFCOMM ver 1.11
[  101.341593] LT9611_1V8: disabling
[  101.341612] LT9611_3V3: disabling
[  101.341618] PCIE0_1.05V: disabling
[  101.341622] VLDO_3V3: disabling
[  101.341628] V5P0_HDMIOUT: disabling
[  101.341652] ldo14: disabling

/dev/fb0 is created (msmdrmfb) And i think GPU is also get enabled:

root@linaro-alip:~# dmesg | grep gpu
[    3.300132] adreno 5000000.gpu: Adding to iommu group 0
[    7.237106] adreno 5000000.gpu: 5000000.gpu supply vdd not found, using dummy regulator
[    7.245199] adreno 5000000.gpu: 5000000.gpu supply vddcx not found, using dummy regulator
[    7.253528] msm ae00000.mdss: [drm:msm_gpu_init] A630: using IOMMU
[    7.266516] msm ae00000.mdss: bound 5000000.gpu (ops a3xx_ops)

But still my DSI panel is not working. I am not sure but i think there is problem with my panel driver, mostly panel timing related.

Can we confirm that because fb0 dev is created and GPU is enabled it is problem with panel driver only?

Is there any way that we know that GPU is enabled or not. I have tried glxinfo but it shows below message:

root@linaro-alip:~# DISPLAY=:0 glxinfo 
No protocol specified
Error: unable to open display :0