Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
b0dcca1
FROMLIST: dt-bindings: display: bridge: lontium,lt9211: Add lt9211c s…
Mar 23, 2026
8699fc3
FROMLIST: drm/bridge: lt9611uxc: reset edid_read on disconnect
nlaad-qcom Jan 28, 2026
1045a36
FROMLIST: drm/bridge: display-connector: don't autoenable HPD IRQ
lumag Mar 23, 2026
fd2c425
FROMLIST: drm/bridge: display-connector: trigger initial HPD event fo…
lumag Mar 23, 2026
649018f
FROMLIST: phy: qualcomm: qmp-combo: update DP PHY PLL programming on …
Apr 19, 2026
fd1a69b
FROMLIST: drm/bridge: add support for lontium lt9211c bridge
May 4, 2026
e049d66
FROMLIST: drm/bridge: lt9611uxc: extend mode valid checks
nlaad-qcom Nov 26, 2025
637f152
FROMLIST: drm/bridge: lt9611uxc: add support for 4K@30 resolution
nlaad-qcom Nov 26, 2025
569906c
FROMLIST: drm/msm/dp: remove cached drm_edid from panel
Jun 9, 2026
292b6a7
FROMLIST: drm/msm/dp: drop deprecated .mode_set() and use .atomic_enable
Jun 9, 2026
377f04f
FROMLIST: drm/msm/dp: move mode setup into msm_dp_panel_init_panel_in…
Jun 9, 2026
c6215dc
FROMLIST: drm/msm/dp: split msm_dp_ctrl_config_ctrl() into link parts…
Jun 9, 2026
d1ea7fc
FROMLIST: drm/msm/dp: extract MISC1_MISC0 configuration into a separa…
Jun 9, 2026
87906e1
FROMLIST: drm/msm/dp: split link setup from source params
Jun 9, 2026
8e6a326
FROMLIST: drm/msm/dp: move the pixel clock control to its own API
Jun 9, 2026
bfed054
FROMLIST: drm/msm/dp: break up dp_display_enable into two parts
Jun 9, 2026
e2b2963
FROMLIST: drm/msm/dp: re-arrange dp_display_disable() into functional…
Jun 9, 2026
d2d93e1
FROMLIST: drm/msm/dp: allow dp_ctrl stream APIs to use any panel pass…
Jun 9, 2026
33f6688
FROMLIST: drm/msm/dp: split dp_ctrl_off() into stream and link parts
Jun 9, 2026
9ed3366
FROMLIST: drm/msm/dp: simplify link and clock disable sequence
Jun 9, 2026
ce17b12
FROMLIST: drm/msm/dp: make bridge helpers use dp_display to allow re-use
Jun 9, 2026
66f518e
FROMLIST: drm/msm/dp: separate dp_display_prepare() into its own API
Jun 9, 2026
9950bb9
FROMLIST: drm/msm/dp: pass panel to display enable/disable helpers
Jun 9, 2026
b649a38
FROMLIST: drm/msm/dp: introduce stream_id for each DP panel
Jun 29, 2026
dc8e594
FROMLIST: drm/msm/dp: introduce max_streams for DP controller MST sup…
Jun 29, 2026
40a3f65
FROMLIST: drm/msm/dp: Add support for programming p1/p2/p3 register b…
Jun 29, 2026
8193371
FROMLIST: drm/msm/dp: use stream_id to change offsets in dp_catalog
Jun 29, 2026
2fde97d
FROMLIST: drm/msm/dp: add support to send ACT packets for MST
Jun 29, 2026
4b1f178
FROMLIST: drm/msm/dp: Add support to enable MST in mainlink control
Jun 29, 2026
fae6148
FROMLIST: drm/msm/dp: no need to update tu calculation for mst
Jun 29, 2026
74480ad
FROMLIST: drm/msm/dp: Add support for MST channel slot allocation
Jun 29, 2026
9b5a101
FROMLIST: drm/msm/dp: Add support for sending VCPF packets in DP cont…
Jun 29, 2026
bdffd51
FROMLIST: drm/msm/dp: Always program MST_FIFO_CONSTANT_FILL for MST u…
Jun 29, 2026
83eb389
FROMLIST: drm/msm/dp: move link-level teardown from display_disable t…
Jun 29, 2026
1578253
FROMLIST: drm/msm/dp: factor out _helper variants of bridge ops accep…
Jun 29, 2026
d2b3380
FROMLIST: drm/msm/dp: replace power_on with active_stream_cnt for dp_…
Jun 29, 2026
6644e3b
FROMLIST: drm/msm/dp: Mark the SST bridge disconnected when mst is ac…
Jun 29, 2026
1a49bd5
FROMLIST: drm/msm/dp: add an API to initialize MST on sink side
Jun 29, 2026
c018a39
FROMLIST: drm/msm/dp: add msm_dp_display_get_panel() to initialize DP…
Jun 29, 2026
4843f98
FROMLIST: drm/msm/dp: add link_ready to manage link-level operations
Jun 29, 2026
2da3208
FROMLIST: drm/msm/dpu: initialize encoders per stream for DP MST
Jun 29, 2026
3d9b3e8
FROMLIST: drm/msm/dp: initialize dp_mst module for each DP MST contro…
Jun 29, 2026
8172ad5
FROMLIST: drm/msm/dpu: expose dpu_encoder ops for DP MST reuse
Jun 29, 2026
70786d3
FROMLIST: drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id
Jun 29, 2026
111eddf
FROMLIST: drm/msm/dp: wire MST helpers into atomic check and commit p…
Jun 29, 2026
6bec88a
FROMLIST: drm/msm/dp: add dp_mst_drm to manage DP MST encoder operations
Jun 29, 2026
c0d3ab3
FROMLIST: drm/msm/dp: add connector abstraction for DP MST
Jun 29, 2026
d52be0d
FROMLIST: drm/msm/dp: add HPD callback for dp MST
Jun 29, 2026
49959e7
FROMLIST: drm/connector: report out-of-band IRQ_HPD events
lumag Jun 7, 2026
150a7b1
FROMLIST: drm/connector: pass down IRQ_HPD to the drivers
lumag Jun 7, 2026
80e71d9
FROMLIST: drm/bridge: aux-hpd: let drivers pass IRQ_HPD events
lumag Jun 7, 2026
cd3bfce
FROMLIST: drm/bridge: pass extra events to the HPD callback
lumag Jun 7, 2026
d32beee
FROMLIST: drm/bridge: pass down IRQ_HPD to the drivers
lumag Jun 7, 2026
4a39f94
FROMLIST: drm/msm: dp: handle the IRQ_HPD events reported by USB-C
lumag Jun 7, 2026
f2b1d1f
FROMLIST: soc: qcom: pmic-glink-altmode: pass down HPD_IRQ events
lumag Jun 7, 2026
d9a65de
FROMLIST: usb: typec: ucsi: huawei-gaokun: pass down HPD_IRQ events
lumag Jun 7, 2026
4bec81e
FROMLIST: drm/bridge: allow hpd_notify() to suppress connector hotplu…
Jun 29, 2026
3d5d438
FROMLIST: drm/bridge_connector: preserve connector status for IRQ-onl…
Jun 29, 2026
675c0d1
FROMLIST: drm/msm/dp: suppress bridge hotplug events during MST opera…
Jun 29, 2026
29bec68
FROMLIST: drm/msm/dp: report IRQ_HPD as an IRQ-only notification
Jun 29, 2026
514299a
FROMLIST: drm/msm/dp: mark the SST connector disconnected when MST is…
Jun 29, 2026
815a70f
FROMLIST: drm/msm/dp: return 0 from audio_prepare when cable is disco…
kumarsingh-art Jun 24, 2026
6aad78e
FROMLIST: dt-bindings: bridge: Add Lontium LT9611C(EX/UXD) MIPI DSI t…
May 8, 2026
263b0dd
FROMLIST : drm/bridge: Add Lontium LT9609C(EX/UXD) MIPI DSI to HDMI d…
May 8, 2026
bb9e161
BACKPORT: drm/bridge: Add new atomic_create_state callback
mripard Jun 19, 2026
814ffbc
BACKPORT: drm/atomic-state-helper: Add drm_atomic_helper_bridge_creat…
mripard Jun 19, 2026
719d1db
FROMLIST: drm/bridge: lt9611uxc: support displays with up to 4 EDID b…
Jul 22, 2026
9e407ef
FROMLIST: drm/msm/dp: add .shutdown to mask HPD IRQ before system shu…
Jul 17, 2026
b80de0f
FROMLIST: drm/msm/dpu: Fix DMA SSPP REC block offsets on DPU v13
Jul 20, 2026
0e1015d
FROMLIST: drm/msm/mdss: Enable INT2_GDSC alongside CORE_GDSC
Jul 20, 2026
38cc62b
FROMLIST: dt-bindings: display: msm: Allow two MDSS power domains
Aug 2, 2026
c27ece9
Revert "FROMLIST: drm/msm/dp: add .shutdown to mask HPD IRQ before sy…
Aug 4, 2026
19c03b8
FROMLIST: drm/atomic-helper: tear down HPD/polling in drm_atomic_help…
Jul 30, 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 Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ properties:
const: mdss

power-domains:
maxItems: 1
minItems: 1
maxItems: 2

clocks:
minItems: 2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ properties:
- const: mdp0-mem
- const: cpu-cfg

power-domains:
items:
- description: MDSS core GDSC power domain
- description: MDSS INT2 GDSC power domain

power-domain-names:
items:
- const: core
- const: int2

patternProperties:
"^display-controller@[0-9a-f]+$":
type: object
Expand Down Expand Up @@ -95,7 +105,8 @@ examples:

resets = <&disp_cc_mdss_core_bcr>;

power-domains = <&mdss_gdsc>;
power-domains = <&mdss_gdsc>, <&mdss_int2_gdsc>;
power-domain-names = "core", "int2";

iommus = <&apps_smmu 0x1c00 0x2>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ properties:
- const: mdp0-mem
- const: cpu-cfg

power-domains:
items:
- description: MDSS core GDSC power domain
- description: MDSS INT2 GDSC power domain

power-domain-names:
items:
- const: core
- const: int2

patternProperties:
"^display-controller@[0-9a-f]+$":
type: object
Expand Down Expand Up @@ -89,7 +99,8 @@ examples:
<&disp_cc_mdss_ahb_swi_clk>;
resets = <&disp_cc_mdss_core_bcr>;

power-domains = <&mdss_gdsc>;
power-domains = <&mdss_gdsc>, <&mdss_int2_gdsc>;
power-domain-names = "core", "int2";

iommus = <&apps_smmu 0x800 0x2>;

Expand Down
7 changes: 7 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -15172,6 +15172,13 @@ S: Maintained
F: Documentation/devicetree/bindings/display/bridge/lontium,lt8912b.yaml
F: drivers/gpu/drm/bridge/lontium-lt8912b.c

LONTIUM LT9611C MIPI DSI TO HDMI BRIDGE
M: Sunyun Yang <syyang@lontium.com>
M: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
S: Maintained
F: Documentation/devicetree/bindings/display/bridge/lontium,lt9611.yaml
F: drivers/gpu/drm/bridge/lontium-lt9611c.c

LOONGARCH
M: Huacai Chen <chenhuacai@kernel.org>
R: WANG Xuerui <kernel@xen0n.name>
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
11 changes: 7 additions & 4 deletions drivers/gpu/drm/bridge/aux-hpd-bridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,26 +136,29 @@ struct device *drm_dp_hpd_bridge_register(struct device *parent, struct device_n
EXPORT_SYMBOL_GPL(drm_dp_hpd_bridge_register);

/**
* drm_aux_hpd_bridge_notify - notify hot plug detection events
* drm_aux_hpd_bridge_notify_extra - notify hot plug detection events
* @dev: device created for the HPD bridge
* @status: output connection status
* @extra_status: extra status bits like DRM_CONNECTOR_DP_IRQ_HPD
*
* A wrapper around drm_bridge_hpd_notify() that is used to report hot plug
* detection events for bridges created via drm_dp_hpd_bridge_register().
*
* This function shall be called in a context that can sleep.
*/
void drm_aux_hpd_bridge_notify(struct device *dev, enum drm_connector_status status)
void drm_aux_hpd_bridge_notify_extra(struct device *dev,
enum drm_connector_status status,
enum drm_connector_status_extra extra_status)
{
struct auxiliary_device *adev = to_auxiliary_dev(dev);
struct drm_aux_hpd_bridge_data *data = auxiliary_get_drvdata(adev);

if (!data)
return;

drm_bridge_hpd_notify(&data->bridge, status);
drm_bridge_hpd_notify_extra(&data->bridge, status, extra_status);
}
EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify);
EXPORT_SYMBOL_GPL(drm_aux_hpd_bridge_notify_extra);

static int drm_aux_hpd_bridge_attach(struct drm_bridge *bridge,
struct drm_encoder *encoder,
Expand Down
3 changes: 2 additions & 1 deletion drivers/gpu/drm/bridge/chrontel-ch7033.c
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,8 @@ static const struct drm_connector_helper_funcs ch7033_connector_helper_funcs = {
.best_encoder = ch7033_connector_best_encoder,
};

static void ch7033_hpd_event(void *arg, enum drm_connector_status status)
static void ch7033_hpd_event(void *arg, enum drm_connector_status status,
enum drm_connector_status_extra extra_status)
{
struct ch7033_priv *priv = arg;

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
3 changes: 2 additions & 1 deletion drivers/gpu/drm/bridge/lontium-lt8912b.c
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,8 @@ static int lt8912_attach_dsi(struct lt8912 *lt)
return 0;
}

static void lt8912_bridge_hpd_cb(void *data, enum drm_connector_status status)
static void lt8912_bridge_hpd_cb(void *data, enum drm_connector_status status,
enum drm_connector_status_extra extra_status)
{
struct lt8912 *lt = data;

Expand Down
Loading