USB powered display -- unreliable startup

So I have some displays that have their control boards and backlights powered by the USB.

If I plug the USB into the hikey960, and then power it on, the display only occasionally starts correctly. If I power the display externally, and then transfer the USB to the hikey960 after it has already started up, then it works.

This is incredibly inconvenient, since it also has a capacitive touch sensor.

What appears to be happening, is there is a switch on the USB power, which is only turned on by the kernel (or maybe bootloader) some time probably just before the display is initialized – not early enough for the control board to consistently set itself up to identify itself to the kernel.

I’ve already got video=HDMI-A-1:1280x800@60 kernel parameter. Its apparently not enough.

You mean display is not detected and enumerated if plugged before boot ? Any message related to USB in your kernel log (dmesg) ?

Could you please try the following and let me know:
$ echo hostoff > /sys/devices/platform/soc/ff200000.hisi_usb/plugusb
$ echo hoston > /sys/devices/platform/soc/ff200000.hisi_usb/plugusb

The display is HDMI.
It gets power from USB.
The only data on the USB is related to the touch sensor – not the display. I have not had any problems with the touch sensor.

The problem, as far as I can tell, is only that the USB POWER isn’t supplied soon enough, in which case it would seem that there are two possible solutions;

  1. force the kernel to activate the HDMI display with the proper mode, whether it sees it as present or not,
  2. supply the USB power sooner.

OK, yes powering the board too late is equivalent to a HDMI hotplug which is known as not working on Hikey-960. I have no good solution for this. I don’t currently have static video HDMI configuration (video=HDMI-A-1:1280x800@60), wondering value of /sys/class/drm/card0-HDMI-A-1/enabled on your side. If this is enabled, maybe you can try forcing DRM connector on:
$ echo on > sys/class/drm/card0-HDMI-A-1/status

I’ll go through that this evening and reply back.
Thank you.

enabled reads as “disabled”. echo’ing on to status does nothing.