DSI BRIDGE OPERATIONS(9)
π dsi bridge operations(9) π
okay so bestie, this is the Kernel API Manual page for dsi bridge operations, and it is lowkey giving βthe rules of the DSI host bridge group chat.β π«Ά DSI host interfaces are expected to be implemented as bridges rather than encoders, but there are a few aspects of their operation that need to be defined so everyone gets a consistent interface. periodt. β¨
- A DSI host should keep the
PHYpowered down until thepre_enableoperation is called. All lanes are in an undefined idle state up to this point, and it must not be assumed that it isLP-11.pre_enableshould initialise thePHY, set the data lanes toLP-11, and set the clock lane to eitherLP-11orHSdepending on themode_flagMIPI_DSI_CLOCK_NON_CONTINUOUS. π - Ordinarily the downstream bridge DSI peripheral
pre_enablewill have been called before the DSI host. If the DSI peripheral requiresLP-11and/or the clock lane to be inHSmode prior topre_enable, then it can set thepre_enable_prev_firstflag to request thepre_enable(andpost_disable) order to be altered to enable the DSI host first. π - Either the
CRTCbeing enabled, or the DSI hostenableoperation should switch the host to actively transmitting video on the data lanes. π₯ - The reverse also applies. The DSI host
disableoperation or stopping theCRTCshould stop transmitting video, and the data lanes should return to theLP-11state. The DSI hostpost_disableoperation should disable thePHY. If thepre_enable_prev_firstflag is set, then the DSI peripheral's bridgepost_disablewill be called before the DSI host'spost_disable. πΈ - Whilst it is valid to call
host_transferprior topre_enableor afterpost_disable, the exact state of the lanes is undefined at this point. The DSI host should initialise the interface, transmit the data, and then disable the interface again. π
π¨ real talk: those lane-state caveats are not a vibe to hand-wave. undefined is undefined, bestie.
- Ultra Low Power State (
ULPS) is not explicitly supported byDRM. If implemented, it therefore needs to be handled entirely within the DSI Host driver. π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/drm_bridge.c overview(9)display driver integration(9)special care dsi(9)bridge chain format selection(9)drm_bridge_enter(9)drm_bridge_exit(9)drm_bridge_unplug(9)drm_bridge_get(9)drm_bridge_put(9)drm_bridge_clear_and_put(9)drm_bridge_put_void(9)drm_bridge_add(9)devm_drm_bridge_add(9)drm_bridge_remove(9)drm_bridge_attach(9)bridge operations(9)drm_bridge_chain_mode_valid(9)drm_bridge_chain_mode_set(9)drm_atomic_bridge_chain_disable(9)drm_atomic_bridge_chain_post_disable(9)drm_atomic_bridge_chain_pre_enable(9)drm_atomic_bridge_chain_enable(9)drm_atomic_bridge_chain_check(9)drm_bridge_detect(9)drm_bridge_get_modes(9)drm_bridge_edid_read(9)drm_bridge_hpd_enable(9)drm_bridge_hpd_disable(9)drm_bridge_hpd_notify(9)of_drm_find_and_get_bridge(9)of_drm_find_bridge(9)of_drm_get_bridge_by_endpoint(9)devm_drm_put_bridge(9)
π¦ cute little sign-off: this pageβs source/version vibe is ./drivers/gpu/drm, and the date stamp is October 2026. mwah, go forth and bridge responsibly ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms