drm panel driver is not loaded or found

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

drm panel driver is not loaded or found

跳至解决方案
42,385 次查看
electronic15
Contributor III

Hello Community, 

I've written a drm panel driver for a MIPI DSI TFT display which has a Himax HX8394-A01 controller inside. We are using a SOM from the company Variscite based on the i.mx8 mini processor (imx8mm-var-som) running AOSP 9.

I followed more or less the same steps as described in 

https://community.nxp.com/t5/i-MX-Processors/how-to-add-a-new-panel-with-imx8mm-evk-I-got-some-probl...

1- I wrote the diver "panel-himax-HX8394-A01.c" using the "panel-raydium-rm67191.c" as a template.

2 - I modified the corresponding Makefile and Kconfig files to include this driver.

3- I modified the defconfig file (imx8_var_android_defconfig in my case)

4- I modified the DT adding the MIPI DSI panel node like this

&mipi_dsi {
panel@0 {
status = "okay";
compatible = "himax,hx8394";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi_en>;
reset-gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
dsi-lanes = <4>;
video-mode = <0>;
/* 0: burst mode
* 1: non-burst mode with sync event
* 2: non-burst mode with sync pulse
*/
panel-width-mm = <68>;
panel-height-mm = <121>;
//status = "okay";
};
};

I can compile the Android image without a problem but when I load it to my board and start it, it seems the kernel does not find the corresponding driver and I got this message on the debug console

...

[ 1.466163] bootconsole [ec_imx6q0] disabled
[ 1.476337] msm_serial: driver initialized
[ 1.494005] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.500663] [drm] No driver support for vblank timestamp query.
[ 1.506702] imx-drm display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 1.514301] [drm] Cannot find any crtc or sizes
[ 1.519660] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 1.541280] brd: module loaded
[ 1.550682] loop: module loaded...

Attached you can find the whole console log, the driver, and the device tree.

As far as I know, the .probe function is the first function from the driver to be called 

static struct mipi_dsi_driver hx8394_panel_driver = {
     .driver = {
    .name = "panel-himax-HX8394-A01",
    .of_match_table = hx8394_of_match,
     },
     .probe = hx8394_panel_probe,
     .remove = hx8394_panel_remove,
    .shutdown = hx8394_panel_shutdown,
};
module_mipi_dsi_driver(hx8394_panel_driver);

So I added a debug message into this function but I dot not get anything 

DRM_DEV_DEBUG_DRIVER(dev,"Enter func %s...\n",__func__);

 

Am I missing something, some image configuration?

How can I know if the driver is even being called?

 

Best regards, 

Gonzalo

0 项奖励
1 解答
42,348 次查看
electronic15
Contributor III

I've solved the problem by modifying the "status" property from disable to okay in the "mipi_dsi: mipi_dsi@32E10000" node inside the respective "fsl-imx8mm.dtsi" file. The "status" property in the "&mipi_dsi" node should overwrite the previous value but I don't know why it was not working like that.

Although my display is still not working, my driver is being called and I can send debug messages from it so now I just to keep working on this.

Regards.

 

在原帖中查看解决方案

0 项奖励
4 回复数
41,656 次查看
dipak290485
Contributor I

Hello,

Lcd display worked after using panel-himax-HX8394-A01.c driver code ?

0 项奖励
42,349 次查看
electronic15
Contributor III

I've solved the problem by modifying the "status" property from disable to okay in the "mipi_dsi: mipi_dsi@32E10000" node inside the respective "fsl-imx8mm.dtsi" file. The "status" property in the "&mipi_dsi" node should overwrite the previous value but I don't know why it was not working like that.

Although my display is still not working, my driver is being called and I can send debug messages from it so now I just to keep working on this.

Regards.

 

0 项奖励
42,373 次查看
igorpadykov
NXP Employee
NXP Employee

Hi electronic15

 

one can try to uncomment  //status = "okay";

 

Best regards
igor

0 项奖励
42,364 次查看
electronic15
Contributor III

Hi Igor, 

Sorry, my code is a bit untidy since I'm working on it. But, the line  "status = ok" is twice there, the first time at the beginning of the node is uncommented and the second time it is commented. Does the position of that line inside the node change anything? 

Regards, 

Gonzalo

0 项奖励