HDMI Video output broken with latest 4.9 AOSP kernel

With the latest 4.9 kernel from hikey-linaro repo, the HDMI video output seems broken with android, the display never lights up. My kernel version is 4.9.92-05967-gba53687. However, with the 4.9.87-g85de0a9b23f3 kernel, the HDMI works fine under the same condition. I compared the dmesg, the following lines are missing from the boot log of the new kernel:

[ 9.284002] [drm] mode->clock(org) = 148500
[ 9.284004] [drm] dss_pxl0_clk = 144000
[ 9.352776] [drm] Expected : lane_clock = 864 M
[ 9.352779] [drm] Config : lane_clock = 864000000
[ 9.352783] [drm] PHY clock_lane and data_lane config : \x0arg_vrefsel_vcm=85
[ 9.352785] [drm] clk_lane_lp2hs_time=63\x0aclk_lane_hs2lp_time=58\x0adata_la
[ 9.353013] [drm] hsa_time=33, hbp_time=111, hline_time=1650
[ 9.353014] [drm] lane_byte_clk=108000000, pixel_clk=144000000
[ 9.353025] [drm] dsi_mipi_init ok

I noticed that there seems to be an update of the mali driver between the two versions. Is it causing the problem or some other things are offending?

There’s a good chance that the MALI driver might be involved:

Have you updated everything in sync?

I’m sure that there is a change in mali driver, but I think the one affecting hikey960 is https://android.googlesource.com/kernel/hikey-linaro/+/fffc3e7d1cc71eff65ee7fbca9a65e7d8fbcb0fb instead.

I pulled the tree less than a week ago and I think it’s new enough.

Good point about hikey/hikey960 but the main thrust in the same… you have pulled recently enough.

Just out of interest is your tree “contaminated” with arm-hikey960-OPR-cf4e0c80.tgz? I was thinking about kicking off a test build when I noticed that the current build instructions have been simplified and arm-hikey960-OPR-cf4e0c80.tgz is no longer involved.

Yes. Make sure to do a make installclean if you’ve previously built with the old drivers.

I’m using the “old” userspace root image with the arm-hikey960-OPR-cf4e0c80.tgz. The new kernel, on the other hand, is built separately outside the AOSP tree. I’ve sync’ed my AOSP repo and building a new image. But I’m just curious, is userspace involved in lighting up the hdmi display?

On regular GNU/Linux systems the first think you see is usually from the kernel (if only because even with quiet the kernel can’t quite help itself from putting out a couple of error messages before plymouth comes up), however I’m not so sure for Android/Linux.

Not sure when Android/Linux will establish the video mode timings will be established but the first thing you see on the screen is the Android logo and that needs a working userspace to draw (it uses SurfaceFlinger just like the rest of Android).

Anyhow… I tried a fully clean build last night. It is defaulting to a 4.9.90 kernel build on Mar 28. Right in the middle of your version window so not sure what we learn from that!

100% built from source? Or is it getting that from somewhere else now?
If its all built from source, then how does it work, since I was under the impression that there were no viable open source mali drivers.

I didn’t look very hard but its not all from source since the kernel is pre-built for a start. I think its simply that the MALI blobs are now delivered through repo/git instead of relying upon an add-on in a tarball.

That’s exactly what happened.
The mali drivers are blobs in the device/linaro/hikey project now.
Not sure what commit introduced them, but here they are.