USB powered display -- unreliable startup


#1

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.


#2

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


#3

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.

#4

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


#5

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


#6

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