DSI panel + HDMI screen attached


#1

I have a custom DSI panel on the Hikey960, but it would be useful if we can use an external HDMI display when connected. The dmesg output shows both the panel and the bridge driver loaded and attached and also showing a message about client change to HDMI. Clock data output by dmesg is also from the HDMI bridge. Alas, no display on the external HDMI display, nor on the MIPI panel. Also when I completely remove the MIPI panel adapter from the HS connector, no HDMI output, but when I remove HDMi cable, I get display on the DSI panel.

We only need output on the HDMI display when it is connected, then the MIPI panel can be off. We will use it only during application development but don’t want to rebuild the kernel for each time we connect a display. Is this possible?

dmesg output of when both displays are connected below.

[ 2.882179] [drm] Initialized
[ 2.882525] [drm] wait for external HDMI bridge driver.
[ 7.247920] [drm] host attach, client name=[mipi-hikey], id=1
[ 7.265788] [drm] dss irq = 78.
[ 7.268991] [drm] dss_pri_clk:[400000000]->[400000000].
[ 7.274329] [drm] dss_pxl0_clk:[144000000]->[144000000].
[ 7.287393] [drm] host attach, client name=[adv7533], id=0
[ 7.293470] [drm] connector init
[ 7.296748] kirin-drm e8600000.dpe: bound e8601000.dsi (ops dsi_ops)
[ 7.303181] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 7.309877] [drm] No driver support for vblank timestamp query.
[ 7.317439] [drm] client change to HDMI
[ 7.321325] [drm] num_crtc=1, num_connector=2.
[ 7.539870] [drm:drm_helper_disable_unused_functions] ERROR Called for atomic driver, this is not what you want.
[ 7.780263] kirin-drm e8600000.dpe: fb0: dss frame buffer device
[ 7.786427] [drm] num_crtc=1, num_connector=2.
[ 7.791036] [drm:drm_helper_disable_unused_functions] ERROR Called for atomic driver, this is not what you want.
[ 8.029646] [drm] Initialized kirin 1.0.0 20170309 on minor 0
[ 8.049628] kirin-drm e8600000.dpe: fb1: dss frame buffer device
[ 9.852804] [drm] mode->clock(org) = 148500
[ 9.852815] [drm] dss_pxl0_clk = 144000
[ 9.921615] [drm] Expected : lane_clock = 864 M
[ 9.921634] [drm] Config : lane_clock = 864000000
[ 9.921643] [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_trial=12\x0adata_t_ta_go=4\x0adata_t_ta_get=5
[ 9.921646] [drm] clk_lane_lp2hs_time=63\x0aclk_lane_hs2lp_time=58\x0adata_lane_lp2hs_time=104\x0adata_lane_hs2lp_time=19\x0aphy_stop_wait_time=53
[ 9.921875] [drm] hsa_time=33, hbp_time=111, hline_time=1650
[ 9.921877] [drm] lane_byte_clk=108000000, pixel_clk=144000000
[ 9.921890] [drm] dsi_mipi_init ok