On Thu, Jan 29, 2026 at 1:36 PM Hongyang Zhao <[email protected]> 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 <[email protected]> > --- > 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 <[email protected]> # 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
