Hi Jacopo, On Wed, Mar 06, 2019 at 12:26:59PM +0100, Jacopo Mondi wrote: > When both the media links between AFE and HDMI and the two TX CSI-2 outputs > gets disabled, the routing register ADV748X_IO_10 gets zeroed causing both > TXA and TXB output to get disabled. > > This causes some HDMI transmitters to stop working after both AFE and > HDMI links are disabled. Could you elaborate on why this would be the case ? By HDMI transmitter, I assume you mean the device connected to the HDMI input of the ADV748x. Why makes it fail (and how ?) when the TXA and TXB are both disabled ? > Fix this by preventing writing 0 to > ADV748X_IO_10 register, which gets only updated when links are enabled > again. > > Fixes: 9423ca350df7 ("media: adv748x: Implement TX link_setup callback") > Signed-off-by: Jacopo Mondi <jacopo+renesas@xxxxxxxxxx> > --- > The issue presents itself only on some HDMI transmitters, and went unnoticed > during the development of: > "[PATCH v3 0/6] media: adv748x: Implement dynamic routing support" > > Patch intended to be applied on top of latest media-master, where the > "[PATCH v3 0/6] media: adv748x: Implement dynamic routing support" > series is applied. > > The patch reports a "Fixes" tag, but should actually be merged with the above > mentioned series. > > --- > drivers/media/i2c/adv748x/adv748x-core.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c > index f57cd77a32fa..0e5a75eb6d75 100644 > --- a/drivers/media/i2c/adv748x/adv748x-core.c > +++ b/drivers/media/i2c/adv748x/adv748x-core.c > @@ -354,6 +354,9 @@ static int adv748x_link_setup(struct media_entity *entity, > > tx->src = enable ? rsd : NULL; > > + if (!enable) > + return 0; > + > if (state->afe.tx) { > /* AFE Requires TXA enabled, even when output to TXB */ > io10 |= ADV748X_IO_10_CSI4_EN; -- Regards, Laurent Pinchart