Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
0eb9b1b
FROMLIST: dt-bindings: phy: qcom-edp: Add reference clock for sa8775p…
riteshk-quic Jan 28, 2026
5ece42d
FROMLIST: dt-bindings: display: bridge: lontium,lt9211: Add lt9211c s…
Mar 23, 2026
ccae22d
FROMLIST: drm/bridge: lt9611uxc: reset edid_read on disconnect
nlaad-qcom Jan 28, 2026
26a0655
FROMLIST: drm/bridge: display-connector: don't autoenable HPD IRQ
lumag Mar 23, 2026
59cf766
FROMLIST: drm/bridge: display-connector: trigger initial HPD event fo…
lumag Mar 23, 2026
6b3f275
FROMLIT: drm/display: add hw_params callback function to drm_connecto…
amazingfate Sep 25, 2025
a3fc7d0
FROMLIST: drm/msm/dp: fix HPD state status bit shift value
Mar 14, 2026
11cf58a
FROMLIST:drm/msm/dp: Fix the ISR_* enum values
Mar 14, 2026
08c80c7
FROMLIST:drm/msm/dp: Read DPCD and sink count in bridge detect()
Mar 14, 2026
62f68e4
FROMLIST:drm/msm/dp: Move link training to atomic_enable()
Mar 14, 2026
9c5d926
FROMLIST:drm/msm/dp: Drop EV_USER_NOTIFICATION
Mar 14, 2026
440d945
FROMLIST:drm/msm/dp: drop event data
lumag Mar 14, 2026
c262e37
FROMLIST:drm/msm/dp: rework HPD handling
May 4, 2026
0485e15
FROMLIST:drm/msm/dp: Add sink_count to debug logs
Mar 14, 2026
27afe10
FROMLIST:drm/msm/dp: turn link_ready into plugged
lumag Mar 14, 2026
9b75bf5
FROMLIST:drm/msm/dp: clear EDID on display unplug
lumag Mar 14, 2026
a366b4f
FROMLIST: phy: qualcomm: qmp-combo: update DP PHY PLL programming on …
Apr 19, 2026
89bfa23
FROMLIST: drm/bridge: add support for lontium lt9211c bridge
May 4, 2026
982b492
FROMLIST: drm/bridge: lt9611uxc: Increase EDID wait time from 500ms t…
quic-botlagun Nov 21, 2025
43904e5
FROMLIST: drm/bridge: lt9611uxc: extend mode valid checks
nlaad-qcom Nov 26, 2025
2daf24f
FROMLIST: drm/bridge: lt9611uxc: add support for 4K@30 resolution
nlaad-qcom Nov 26, 2025
6989ab8
FROMLIST: drm/msm/dp: remove cached drm_edid from panel
Aug 25, 2025
98e1cb1
FROMLIST: drm/msm/dp: drop deprecated .mode_set() and use .atomic_enable
Mar 28, 2026
31c47bc
FROMLIST: drm/msm/dp: break up dp_display_enable into two parts
Aug 25, 2025
cd4e6cd
FROMLIST: drm/msm/dp: re-arrange dp_display_disable() into functional…
Aug 25, 2025
6dc5de6
FROMLIST: drm/msm/dp: splite msm_dp_ctrl_config_ctrl() into link part…
Aug 25, 2025
50cb463
FROMLIST: drm/msm/dp: extract MISC1_MISC0 configuration into a separa…
Aug 25, 2025
b5bd798
FROMLIST: drm/msm/dp: split link setup from source params
Apr 2, 2026
4aed130
FROMLIST: drm/msm/dp: allow dp_ctrl stream APIs to use any panel pass…
Aug 25, 2025
a41663e
FROMLIST: drm/msm/dp: move the pixel clock control to its own API
Aug 25, 2025
21de468
FROMLIST: drm/msm/dp: split dp_ctrl_off() into stream and link parts
Aug 25, 2025
6fafcda
FROMLIST: drm/msm/dp: make bridge helpers use dp_display to allow re-use
Aug 25, 2025
c35a36e
FROMLIST: drm/msm/dp: separate dp_display_prepare() into its own API
Aug 25, 2025
1d1b03b
FROMLIST: drm/msm/dp: introduce stream_id for each DP panel
Apr 10, 2026
26d443b
FROMLIST: drm/msm/dp: introduce max_streams for DP controller MST sup…
Apr 10, 2026
47eb662
FROMLIST: drm/msm/dp: Add support for programming p1/p2/p3 register b…
Aug 25, 2025
69601a2
FROMLIST: drm/msm/dp: use stream_id to change offsets in dp_catalog
Aug 25, 2025
77bb6dd
FROMLIST: drm/msm/dp: Add catalog support for 3rd/4th stream MST
Aug 25, 2025
091b8da
FROMLIST: drm/msm/dp: add support to send ACT packets for MST
Aug 25, 2025
77209ee
FROMLIST: drm/msm/dp: Add support to enable MST in mainlink control
Aug 25, 2025
74c4ce5
FROMLIST: drm/msm/dp: no need to update tu calculation for mst
Aug 25, 2025
d98aec1
FROMLIST: drm/msm/dp: Add support for MST channel slot allocation
Aug 25, 2025
491646d
FROMLIST: drm/msm/dp: Add support for sending VCPF packets in DP cont…
Aug 25, 2025
6cf1bd2
FROMLIST: drm/msm/dp: Always program MST_FIFO_CONSTANT_FILL for MST u…
Aug 25, 2025
6ce7751
FROMLIST: drm/msm/dp: simplify link and clock disable sequence
Apr 4, 2026
d0d281a
FROMLIST: drm/msm/dp: pass panel to display enable/disable helpers
Apr 4, 2026
c51784e
FROMLIST: drm/msm/dp: abstract out the dp_display stream helpers to a…
Aug 25, 2025
623aff0
FROMLIST: drm/msm/dp: replace power_on with active_stream_cnt for dp_…
Aug 25, 2025
40f8e5d
FROMLIST: drm/msm/dp: Mark the SST bridge disconnected when mst is ac…
Aug 25, 2025
ea8c3f4
FROMLIST: drm/msm/dp: add an API to initialize MST on sink side
Aug 25, 2025
1a002c0
FROMLIST: drm/msm/dp: add dp_display_get_panel() to initialize DP panel
Aug 25, 2025
f6d1caa
FROMLIST: drm/msm/dp: add prepared to manage link-level operations
Apr 2, 2026
3db9c62
FROMLIST: drm/msm/dpu: initialize encoders per stream for DP MST
Apr 5, 2026
34ef5de
FROMLIST: drm/msm/dp: initialize dp_mst module for each DP MST contro…
Aug 25, 2025
b4c8ea9
FROMLIST: drm/msm/dp: add dp_mst_drm to manage DP MST bridge operations
Aug 25, 2025
362ac4e
FROMLIST: drm/msm/dp: wire MST helpers into atomic check and commit p…
Aug 25, 2025
44240af
FROMLIST: drm/msm/dp: add connector abstraction for DP MST
Aug 25, 2025
9115cc6
FROMLIST: drm/msm/dp: add HPD callback for dp MST
Aug 25, 2025
2b42252
FROMLIST: drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id
Aug 25, 2025
2fbdd74
FROMLIST: drm/msm/dp: Add MST stream support for SA8775P DP controlle…
Aug 25, 2025
5b6c9c9
FROMLIST: dt-bindings: bridge: Add Lontium LT9611C(EX/UXD) MIPI DSI t…
May 8, 2026
24ebe66
FROMLIST: drm/bridge: Add Lontium LT9611C(EX/UXD) MIPI DSI to HDMI dr…
May 8, 2026
b0611cf
Revert "FROMLIST: drm/msm/dp: add HPD callback for dp MST"
Jun 6, 2026
7b948e0
Revert "FROMLIST: drm/msm/dp: add connector abstraction for DP MST"
Jun 6, 2026
766e142
Revert "FROMLIST: drm/msm/dp: add dp_mst_drm to manage DP MST bridge …
Jun 6, 2026
f679770
FROMLIST: drm/msm/dp: add dp_mst_drm to manage DP MST bridge operations
Aug 25, 2025
08ef843
FROMLIST: drm/msm/dp: add connector abstraction for DP MST
Aug 25, 2025
947efa1
FROMLIST: drm/msm/dp: add HPD callback for dp MST
Aug 25, 2025
a26c405
FROMLIST: drm/msm/dp: Introduce poll_hpd_irq callback for MST sideban…
Jun 6, 2026
355a417
FROMLIST: dt-bindings: brige: lt9611c: add port-select property for L…
mohitdsor Jun 10, 2026
ba5178a
FROMLIST: drm/bridge: lontium-lt9611c: Increase MCU poll timeout to 2…
mohitdsor Jun 10, 2026
7929d59
FROMLIST: drm-bridge: lontium lt9611c: fixes and improvements
mohitdsor Jun 10, 2026
36b0a97
FROMLIST: drm/bridge: lontium-lt9611c: Add DSI port selection via DT …
mohitdsor Jun 10, 2026
374a8f8
FROMLIST: arm64: defconfig: Enable LT9611C bridge driver
mohitdsor Jun 17, 2026
cc08132
FROMLIST: drm/bridge: lt9611c: fallback to cached HPD status on read …
mohitdsor Jun 27, 2026
f0aa983
FROMLIST: drm/bridge: lt9611c: implement hpd_enable callback
mohitdsor Jun 27, 2026
c56561e
FROMLIST: drm/bridge: lt9611c: fix DT parsing and bridge refcount
mohitdsor Jun 27, 2026
610f292
FROMLIST: drm/bridge: lt9611c: fix chip type initialization
mohitdsor Jun 27, 2026
bcfda57
FROMLIST: drm/bridge: lt9611c: clean up probe error and remove paths
mohitdsor Jun 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,20 @@
$id: http://devicetree.org/schemas/display/bridge/lontium,lt9211.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Lontium LT9211 DSI/LVDS/DPI to DSI/LVDS/DPI bridge.
title: Lontium LT9211/LT9211C DSI/LVDS/DPI to DSI/LVDS/DPI bridge.

maintainers:
- Marek Vasut <marex@denx.de>

description: |
The LT9211 are bridge devices which convert Single/Dual-Link DSI/LVDS
The LT9211 and LT9211C are bridge devices which convert Single/Dual-Link DSI/LVDS
or Single DPI to Single/Dual-Link DSI/LVDS or Single DPI.

properties:
compatible:
enum:
- lontium,lt9211
- lontium,lt9211c

reg:
maxItems: 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,23 @@
$id: http://devicetree.org/schemas/display/bridge/lontium,lt9611.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Lontium LT9611(UXC) 2 Port MIPI to HDMI Bridge
title: Lontium LT9611(UXC/C/EX/UXD) 2 Port MIPI DSI to HDMI Bridge

maintainers:
- Vinod Koul <vkoul@kernel.org>

description: |
The LT9611 and LT9611UXC are bridge devices which convert DSI to HDMI
The LT9611、LT9611UXC、LT9611C、LT9611EX and LT9611UXD
are bridge devices which convert DSI to HDMI

properties:
compatible:
enum:
- lontium,lt9611
- lontium,lt9611c
- lontium,lt9611ex
- lontium,lt9611uxc
- lontium,lt9611uxd

reg:
maxItems: 1
Expand All @@ -37,6 +41,17 @@ properties:
vcc-supply:
description: Regulator for 3.3V IO power.

lontium,port-select:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2]
default: 0
description: |
Selects which DSI input port(s) the bridge uses. Only relevant for
the lontium,lt9611c compatible.
0 = PORT_SELECT_A - single DSI port A (default)
1 = PORT_SELECT_B - single DSI port B
2 = PORT_SELECT_AB - dual DSI ports A and B

ports:
$ref: /schemas/graph.yaml#/properties/ports

Expand Down Expand Up @@ -100,6 +115,8 @@ examples:
vdd-supply = <&lt9611_1v8>;
vcc-supply = <&lt9611_3v3>;

lontium,port-select = <1>;

ports {
#address-cells = <1>;
#size-cells = <0>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,11 @@ examples:
<0x0aec2000 0x1c8>;

clocks = <&dispcc0 MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
<&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>;
<&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>,
<&gcc GCC_EDP_REF_CLKREF_EN>;
clock-names = "aux",
"cfg_ahb";
"cfg_ahb",
"ref";

#clock-cells = <1>;
#phy-cells = <0>;
Expand Down
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/phy/qcom,edp-phy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ allOf:
compatible:
enum:
- qcom,glymur-dp-phy
- qcom,sa8775p-edp-phy
- qcom,x1e80100-dp-phy
then:
properties:
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/configs/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1017,6 +1017,7 @@ CONFIG_DRM_FSL_LDB=m
CONFIG_DRM_ITE_IT6263=m
CONFIG_DRM_LONTIUM_LT8912B=m
CONFIG_DRM_LONTIUM_LT9611=m
CONFIG_DRM_LONTIUM_LT9611C=m
CONFIG_DRM_LONTIUM_LT9611UXC=m
CONFIG_DRM_LONTIUM_LT8713SX=m
CONFIG_DRM_ITE_IT66121=m
Expand Down
18 changes: 18 additions & 0 deletions drivers/gpu/drm/bridge/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,24 @@ config DRM_LONTIUM_LT9611
HDMI signals
Please say Y if you have such hardware.

config DRM_LONTIUM_LT9611C
tristate "Lontium LT9611C DSI/HDMI bridge"
select SND_SOC_HDMI_CODEC if SND_SOC
depends on OF
select CRC8
select FW_LOADER
select DRM_PANEL_BRIDGE
select DRM_KMS_HELPER
select DRM_MIPI_DSI
select DRM_DISPLAY_HELPER
select DRM_DISPLAY_HDMI_STATE_HELPER
select REGMAP_I2C
help
Driver for Lontium DSI to HDMI bridge
chip driver that converts dual DSI and I2S to
HDMI signals
Please say Y if you have such hardware.

config DRM_LONTIUM_LT9611UXC
tristate "Lontium LT9611UXC DSI/HDMI bridge"
select SND_SOC_HDMI_CODEC if SND_SOC
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/bridge/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ obj-$(CONFIG_DRM_ITE_IT6505) += ite-it6505.o
obj-$(CONFIG_DRM_LONTIUM_LT8912B) += lontium-lt8912b.o
obj-$(CONFIG_DRM_LONTIUM_LT9211) += lontium-lt9211.o
obj-$(CONFIG_DRM_LONTIUM_LT9611) += lontium-lt9611.o
obj-$(CONFIG_DRM_LONTIUM_LT9611C) += lontium-lt9611c.o
obj-$(CONFIG_DRM_LONTIUM_LT9611UXC) += lontium-lt9611uxc.o
obj-$(CONFIG_DRM_LONTIUM_LT8713SX) += lontium-lt8713sx.o
obj-$(CONFIG_DRM_LVDS_CODEC) += lvds-codec.o
Expand Down
36 changes: 36 additions & 0 deletions drivers/gpu/drm/bridge/display-connector.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <linux/workqueue.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
Expand All @@ -25,6 +26,8 @@ struct display_connector {

struct regulator *supply;
struct gpio_desc *ddc_en;

struct work_struct hpd_work;
};

static inline struct display_connector *
Expand Down Expand Up @@ -87,6 +90,34 @@ display_connector_bridge_detect(struct drm_bridge *bridge, struct drm_connector
return display_connector_detect(bridge);
}

static void display_connector_hpd_enable(struct drm_bridge *bridge)
{
struct display_connector *conn = to_display_connector(bridge);

enable_irq(conn->hpd_irq);

if (conn->bridge.type == DRM_MODE_CONNECTOR_DisplayPort)
schedule_work(&conn->hpd_work);
}

static void display_connector_hpd_disable(struct drm_bridge *bridge)
{
struct display_connector *conn = to_display_connector(bridge);

if (conn->bridge.type == DRM_MODE_CONNECTOR_DisplayPort)
cancel_work_sync(&conn->hpd_work);

disable_irq(conn->hpd_irq);
}

static void display_connector_hpd_work(struct work_struct *work)
{
struct display_connector *conn = container_of(work, struct display_connector, hpd_work);
struct drm_bridge *bridge = &conn->bridge;

drm_bridge_hpd_notify(bridge, display_connector_detect(bridge));
}

static const struct drm_edid *display_connector_edid_read(struct drm_bridge *bridge,
struct drm_connector *connector)
{
Expand Down Expand Up @@ -178,6 +209,8 @@ static u32 *display_connector_get_input_bus_fmts(struct drm_bridge *bridge,
static const struct drm_bridge_funcs display_connector_bridge_funcs = {
.attach = display_connector_attach,
.detect = display_connector_bridge_detect,
.hpd_enable = display_connector_hpd_enable,
.hpd_disable = display_connector_hpd_disable,
.edid_read = display_connector_edid_read,
.atomic_get_output_bus_fmts = display_connector_get_output_bus_fmts,
.atomic_get_input_bus_fmts = display_connector_get_input_bus_fmts,
Expand Down Expand Up @@ -307,6 +340,7 @@ static int display_connector_probe(struct platform_device *pdev)
NULL, display_connector_hpd_irq,
IRQF_TRIGGER_RISING |
IRQF_TRIGGER_FALLING |
IRQF_NO_AUTOEN |
IRQF_ONESHOT,
"HPD", conn);
if (ret) {
Expand Down Expand Up @@ -378,6 +412,8 @@ static int display_connector_probe(struct platform_device *pdev)
conn->bridge.ops |= DRM_BRIDGE_OP_DETECT;
if (conn->hpd_irq >= 0)
conn->bridge.ops |= DRM_BRIDGE_OP_HPD;
if (conn->hpd_irq >= 0 && type == DRM_MODE_CONNECTOR_DisplayPort)
INIT_WORK(&conn->hpd_work, display_connector_hpd_work);

dev_dbg(&pdev->dev,
"Found %s display connector '%s' %s DDC bus and %s HPD GPIO (ops 0x%x)\n",
Expand Down
Loading