SOLVED - Disable DSI/HDMI subsystem in linux


#1

First off, thanks to all the contributors in these forums. Feels like a community that actually accomplishes things. Cheers for all your work.

Second, my question. We are prototyping a design that does not require the HDMI/DSI output, and are using gpio32 as GPIO through sysfs, not as the DSI_SEL pin. To this end we have removed gpio32 from arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi

We can now use gpio32 no problem. However, it looks like the HDMI/SDI subsystem is complaining now.

[   15.565205] msm 1a00000.mdss: failed to bind 1a98000.dsi (ops dsi_ops): -517
[   15.572581] msm 1a00000.mdss: master bind failed: -517
[   15.582789] qcom-apq8016-sbc 7702000.sound: error getting codec dai name
[   15.584323] qcom-apq8016-sbc 7702000.sound: Error resolving dai links: -517
[   15.592659] 1a00000.mdss supply vdd not found, using dummy regulator
[   15.598608] msm 1a00000.mdss: bound 1a01000.mdp (ops mdp5_ops)
[   15.604694] 1a98000.dsi supply gdsc not found, using dummy regulator
[   15.610435] 1a98000.dsi supply gdsc not found, using dummy regulator
[   15.617775] msm_dsi_manager_register: failed to register mipi dsi host for DSI 0
[   15.623219] msm 1a00000.mdss: failed to bind 1a98000.dsi (ops dsi_ops): -517
[   15.630533] msm 1a00000.mdss: master bind failed: -517

But in the end, we don’t need the HDMI/DSI subsystem, our boards do not have display outputs on them at all. Is there a way to disable the display subsystem?

We have tried the following to disable HDMI/DSI:

In arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi

    i2c@78b8000 {
    /* On High speed expansion */
    label = "HS-I2C2";
            status = "okay";
            adv_bridge: bridge@39 {
                    status = "disabled";

In arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi

adv7533_int_active: adv533_int_active {
    status = "disabled";
-snip-
adv7533_int_suspend: adv7533_int_suspend {
    status = "disabled";
-snip-
adv7533_switch_active: adv7533_switch_active {
    status = "disabled";
-snip-
adv7533_switch_suspend: adv7533_switch_suspend {
    status = "disabled";

And in the kernel configuration we basically ripped out everything in Graphics Support.

Is there a known or preferred method to remove the display subsystem beyond this? Having done these thing we are still getting errors for msm_dsi_manager_register: failed to register mipi dsi host for DSI 0


#2

I would not ‘disable’ pinmux description in apq8016-sbc-soc-pins.dtsi, since you already disabled adv-bridge, the pinmuxs will not be selected anymore and so not applied.

I suggest to disable the mdss (Mobile Display SubSystem) node (mdss@1a00000) in apq8016-sbc.dtsi.


#3

That worked perfectly. We also disabled the sound subsystem now that I’m starting to understand how those device tree nodes work.

Thank you very much.