drivers/gpu/drm/bridge/lontium-lt9611.c | 5 ----- 1 file changed, 5 deletions(-)
The lt9611_sleep_setup() modifies the chip's I2C address via registers
0x8023/0x8024 and reconfigures GPIO0 via 0x8157/0x8149. Since there is
no corresponding restore in the wake-up path, I2C communication fails
after resume.
Remove the I2C address and GPIO reconfiguration from sleep setup. The
MIPI Rx power-down and TX PHY disable sequences are sufficient.
Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
---
The lt9611_sleep_setup() function modifies the chip's I2C address via
registers 0x8023/0x8024 and reconfigures GPIO0. However, there is no
corresponding restore in the wake-up path, which causes I2C communication
to fail after resume.
This patch removes the I2C address and GPIO reconfiguration from sleep
setup. The MIPI Rx power-down and TX PHY disable sequences are sufficient
for proper sleep operation.
Tested on RubikPi3 (QCS6490) platform with the LT9611 HDMI bridge.
---
drivers/gpu/drm/bridge/lontium-lt9611.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c b/drivers/gpu/drm/bridge/lontium-lt9611.c
index a2d032ee4744..ae47efe9d77f 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611.c
@@ -424,11 +424,6 @@ static void lt9611_enable_hpd_interrupts(struct lt9611 *lt9611)
static void lt9611_sleep_setup(struct lt9611 *lt9611)
{
const struct reg_sequence sleep_setup[] = {
- { 0x8024, 0x76 },
- { 0x8023, 0x01 },
- { 0x8157, 0x03 }, /* set addr pin as output */
- { 0x8149, 0x0b },
-
{ 0x8102, 0x48 }, /* MIPI Rx power down */
{ 0x8123, 0x80 },
{ 0x8130, 0x00 },
---
base-commit: 46fe65a2c28ecf5df1a7475aba1f08ccf4c0ac1b
change-id: 20260127-rubikpi-next-20260116-bugfix-75db8104d221
Best regards,
--
Hongyang Zhao <hongyang.zhao@thundersoft.com>
On Thu, Jan 29, 2026 at 1:36 PM Hongyang Zhao
<hongyang.zhao@thundersoft.com> wrote:
>
> The lt9611_sleep_setup() modifies the chip's I2C address via registers
> 0x8023/0x8024 and reconfigures GPIO0 via 0x8157/0x8149. Since there is
> no corresponding restore in the wake-up path, I2C communication fails
> after resume.
>
> Remove the I2C address and GPIO reconfiguration from sleep setup. The
> MIPI Rx power-down and TX PHY disable sequences are sufficient.
>
> Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
> ---
> The lt9611_sleep_setup() function modifies the chip's I2C address via
> registers 0x8023/0x8024 and reconfigures GPIO0. However, there is no
> corresponding restore in the wake-up path, which causes I2C communication
> to fail after resume.
>
> This patch removes the I2C address and GPIO reconfiguration from sleep
> setup. The MIPI Rx power-down and TX PHY disable sequences are sufficient
> for proper sleep operation.
>
> Tested on RubikPi3 (QCS6490) platform with the LT9611 HDMI bridge.
> ---
> drivers/gpu/drm/bridge/lontium-lt9611.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c b/drivers/gpu/drm/bridge/lontium-lt9611.c
> index a2d032ee4744..ae47efe9d77f 100644
> --- a/drivers/gpu/drm/bridge/lontium-lt9611.c
> +++ b/drivers/gpu/drm/bridge/lontium-lt9611.c
> @@ -424,11 +424,6 @@ static void lt9611_enable_hpd_interrupts(struct lt9611 *lt9611)
> static void lt9611_sleep_setup(struct lt9611 *lt9611)
> {
> const struct reg_sequence sleep_setup[] = {
> - { 0x8024, 0x76 },
> - { 0x8023, 0x01 },
> - { 0x8157, 0x03 }, /* set addr pin as output */
> - { 0x8149, 0x0b },
> -
> { 0x8102, 0x48 }, /* MIPI Rx power down */
> { 0x8123, 0x80 },
> { 0x8130, 0x00 },
>
> ---
Tested-by: Roger Shimizu <rosh@debian.org> # Rubik Pi 3 (QCOM QCS6490 platform)
Before this patch, HDMI output can be used just after booting / 1st plugging in.
HDMI gets lost after the disconnecting, and plugging in again.
-Roger
© 2016 - 2026 Red Hat, Inc.