cancel
Showing results for 
Search instead for 
Did you mean: 

About DRM initialization problem using DSI interface

zhangtinglu
Associate III

Kernel version:5.4.31


Unable to get STM32 DDR PMU clock
stm32-display 5a001000.display-controller: stm_drm_platform_probe
stm32-display 5a001000.display-controller: drv_load:-517
debugfs: Directory 'cpu0' with parent 'opp' already present!
remoteproc remoteproc0: releasing m4
Unable to get STM32 DDR PMU clock
stm32-mdma 58000000.dma: STM32 MDMA driver registered
stm32-dma 48000000.dma: STM32 DMA driver registered
stm32-dma 48001000.dma: STM32 DMA driver registered
reg11: supplied by vdd
reg18: supplied by vdd
usb33: supplied by regulator-dummy
stm32-display-dsi 5a000000.dsi: platform_set_drvdata
panel-ilitek-ili9881d 5a000000.dsi.0: cannot get reset GPIO: -517
stm32-display 5a001000.display-controller: stm_drm_platform_probe
stm32-display 5a001000.display-controller: drv_load:-517
stm_thermal 50028000.thermal: stm_thermal_probe: Driver initialized successfully
debugfs: Directory 'cpu0' with parent 'opp' already present!
stm32-crc32 58009000.crc: Initialized
stm32-hash 54002000.hash: will run requests pump with realtime priority
random: fast init done
stm32-hash 54002000.hash: Init HASH done HW ver 23 DMA mode 1
random: crng init done
remoteproc remoteproc0: releasing m4
stm32-ddr-pmu: probed (ID=0x00140061 VER=0x00000010), DDR@533MHz
/soc/interrupt-controller@5000d000: bank0
/soc/interrupt-controller@5000d000: bank1
/soc/interrupt-controller@5000d000: bank2
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOA bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOB bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOC bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOD bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOE bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOF bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOG bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOH bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOI bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOJ bank added
stm32mp157-pinctrl soc:pin-controller@50002000: GPIOK bank added
stm32mp157-pinctrl soc:pin-controller@50002000: Pinctrl STM32 initialized
stm32mp157-pinctrl soc:pin-controller-z@54004000: GPIOZ bank added
stm32mp157-pinctrl soc:pin-controller-z@54004000: Pinctrl STM32 initialized
stm32-usbphyc 5a006000.usbphyc: registered rev:1.0
stm32-usart 40010000.serial: interrupt mode for rx (no dma)
stm32-usart 40010000.serial: interrupt mode for tx (no dma)
40010000.serial: ttySTM0 at MMIO 0x40010000 (irq = 56, base_baud = 4000000) is a stm32-usart
printk: console [ttySTM0] enabled
stm32-display 5a001000.display-controller: stm_drm_platform_probe
stm32-display 5a001000.display-controller: drv_load:-517
spi_stm32 44004000.spi: driver initialized
dwc2 49000000.usb-otg: 49000000.usb-otg supply vusb_d not found, using dummy regulator
dwc2 49000000.usb-otg: 49000000.usb-otg supply vusb_a not found, using dummy regulator
dwc2 49000000.usb-otg: EPs: 9, dedicated fifos, 952 entries in SPRAM
dwc2 49000000.usb-otg: DWC OTG Controller
dwc2 49000000.usb-otg: new USB bus registered, assigned bus number 1
dwc2 49000000.usb-otg: irq 57, io mem 0x49000000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ehci-platform 5800d000.usbh-ehci: EHCI Host Controller
ehci-platform 5800d000.usbh-ehci: new USB bus registered, assigned bus number 2
ehci-platform 5800d000.usbh-ehci: irq 58, io mem 0x5800d000
ehci-platform 5800d000.usbh-ehci: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
stm32f7-i2c 40012000.i2c: doesn't use DMA
typec_stusb 0-0028: Failed to get port caps: -6
fusb302 0-0022: Can't get property of role, set role to default DRP
fusb302 0-0022: port 0 probe success with role ROLE_MODE_DRP, try_role ROLE_MODE_NONE
stm32f7-i2c 40012000.i2c: STM32F7 I2C-0 bus adapter
stm32f7-i2c 40013000.i2c: doesn't use DMA
Goodix-TS 1-0014: 1-0014 supply AVDD28 not found, using dummy regulator
Goodix-TS 1-0014: 1-0014 supply VDDIO not found, using dummy regulator
Goodix-TS 1-0014: ID 911, version: 1060
stm32f7-i2c 40013000.i2c: STM32F7 I2C-1 bus adapter
Goodix-TS 1-0014: Direct firmware load for goodix_911_cfg.bin failed with error -2
input: Goodix Capacitive TouchScreen as /devices/platform/soc/40013000.i2c/i2c-1/1-0014/input/input0
stm32f7-i2c 40015000.i2c: doesn't use DMA
custom_fpga 2-001e: 2-001e supply AVDD not found, using dummy regulator
custom_fpga 2-001e: 2-001e supply DVDD not found, using dummy regulator
custom_fpga 2-001e: custom_fpga_read_reg: error: reg=30
custom_fpga 2-001e: custom_fpga_check_chip_id: failed to read chip identifier,chip_id:0
stm32f7-i2c 40015000.i2c: STM32F7 I2C-2 bus adapter
stm32f7-i2c 5c002000.i2c: doesn't use DMA
rtc-pcf8563 3-0051: low voltage detected, date/time is not reliable.
rtc-pcf8563 3-0051: registered as rtc0
stm32f7-i2c 5c002000.i2c: STM32F7 I2C-3 bus adapter
stm32-dcmi 4c006000.dcmi: Probe done
mmci-pl18x 48004000.sdmmc: mmc0: PL180 manf 53 rev1 at 0x48004000 irq 42,0 (pio)
mmci-pl18x 58005000.sdmmc: mmc1: PL180 manf 53 rev2 at 0x58005000 irq 49,0 (pio)
usb 2-1: new high-speed USB device number 2 using ehci-platform
mmci-pl18x 48004000.sdmmc: card claims to support voltages below defined range
fusb302 0-0022: CC connected in CC2 as UFP
mmci-pl18x 58007000.sdmmc: mmc2: PL180 manf 53 rev2 at 0x58007000 irq 50,0 (pio)
mmc0: new high speed SDIO card at address 0001
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 7 ports detected
stm32-ipcc 4c001000.mailbox: ipcc rev:1.0 enabled, 6 chans, proc 0
stm32-rproc mlahb:m4@10000000: wdg irq registered
remoteproc remoteproc0: m4 is available
remoteproc remoteproc0: powering up m4
remoteproc remoteproc0: Synchronizing with early booted co-processor
remoteproc remoteproc0: no resource table found for this firmware
mmc1: host does not support reading read-only switch, assuming write-enable
remoteproc remoteproc0: remote processor m4 is now up
mmc1: new high speed SDHC card at address 0001
mmcblk1: mmc1:0001 SD32G 29.2 GiB
stm32-display 5a001000.display-controller: stm_drm_platform_probe
mmcblk1: p1
stm32-display 5a001000.display-controller: ltdc_crtc_init
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
stm32-display 5a001000.display-controller: drv_load:0
[drm] Initialized stm 1.0.0 20170330 for 5a001000.display-controller on minor 0
mmc2: new high speed MMC card at address 0001
mmcblk2: mmc2:0001 SPeMMC 7.27 GiB
mmcblk2boot0: mmc2:0001 SPeMMC partition 1 4.00 MiB
mmcblk2boot1: mmc2:0001 SPeMMC partition 2 4.00 MiB
mmcblk2rpmb: mmc2:0001 SPeMMC partition 3 4.00 MiB, chardev (241:0)
mmcblk2: p1 p2 p3
Boot process: init
Console: switching to colour frame buffer device 90x80
stm32-display 5a001000.display-controller: fb0: stmdrmfb frame buffer device
input: gpio-keys as /devices/platform/gpio-keys/input/input1
rtc-pcf8563 3-0051: low voltage detected, date/time is not reliable.
rtc-pcf8563 3-0051: hctosys: unable to read the hardware clock
EXT4-fs (mmcblk2p3): warning: mounting fs with errors, running e2fsck is recommended
EXT4-fs (mmcblk2p3): recovery complete
EXT4-fs (mmcblk2p3): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:19.
devtmpfs: mounted
Freeing unused kernel memory: 2048K
Run /sbin/init as init process
systemd[1]: System time before build time, advancing clock.
fusb302 0-0022: PD disabled
EXT4-fs (mmcblk2p3): re-mounted. Opts: (null)
EXT4-fs (mmcblk2p2): recovery complete
EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null)
ext4 filesystem being mounted at /boot supports timestamps until 2038 (0x7fffffff)

Device Tree:

&dsi {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";

ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
dsi_in: endpoint {
remote-endpoint = <&ltdc_ep1_out>;
};
};

port@1 {
reg = <1>;
dsi_out: endpoint {
remote-endpoint = <&dsi_panel_in>;
};
};
};

panel_dsi: panel-dsi@0 {
compatible = "ilitek,ili9881d";
reg = <0>;
reset-gpios = <&gpioa 15 GPIO_ACTIVE_HIGH>;
backlight = <&panel_backlight>;
power-supply = <&v3v3>;
status = "okay";

port {
dsi_panel_in: endpoint {
remote-endpoint = <&dsi_out>;
};
};
};
};

&ltdc {

port {
#address-cells = <1>;
#size-cells = <0>;

ltdc_ep1_out: endpoint@1 {
reg = <1>;
remote-endpoint = <&dsi_in>;
};
};
};

 

Point:  stm_drm_platform_probe()has failed multiple times.  because  drv_load() ->ltdc_load() ->drm_of_find_panel_or_bridge() return failure. later on, there was success.What is the reason?

How to succeed for the first time.

0 REPLIES 0