HDMI Video output broken with latest 4.9 AOSP kernel


#1

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
\x0aclk_pre_delay=0\x0aclk_post_delay=41\x0aclk_t_hs_prepare=10\x0aclk_t_lpx=13
x0aclk_t_hs_zero=27\x0aclk_t_hs_trial=10\x0adata_pre_delay=61\x0adata_post_delay
=0\x0adata_t_hs_prepare=9\x0adata_t_lpx=13\x0adata_t_hs_zero=12\x0adata_t_hs_tri
al=12\x0adata_t_ta_go=4\x0adata_t_ta_get=5
[ 9.352785] [drm] clk_lane_lp2hs_time=63\x0aclk_lane_hs2lp_time=58\x0adata_la
ne_lp2hs_time=104\x0adata_lane_hs2lp_time=19\x0aphy_stop_wait_time=53
[ 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?


#2

There’s a good chance that the MALI driver might be involved:
https://android.googlesource.com/kernel/hikey-linaro/+/a311a89de6cc5df62c656a25bd8e6daadebd523f

Have you updated everything in sync?


#3

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.


#4

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.


#5

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


#6

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?


#7

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!


#8

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.


#9

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.


#10

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.

https://android.googlesource.com/device/linaro/hikey/+/76555470f83e17c367cd984c51dc09e65a522280/mali/