diff mbox series

TDA1997x: report -ENOLINK after disconnecting HDMI source

Message ID m3wnpdbb9h.fsf@t19.piap.pl (mailing list archive)
State New, archived
Headers show
Series TDA1997x: report -ENOLINK after disconnecting HDMI source | expand

Commit Message

Krzysztof Hałasa July 26, 2021, 10:49 a.m. UTC
The TD1997x chip retains vper, hper and hsper register values when the
HDMI source is disconnected. Use a different means of checking if the
link is still valid.

Signed-off-by: Krzysztof Hałasa <khalasa@piap.pl>

Comments

Tim Harvey Aug. 19, 2021, 7:47 p.m. UTC | #1
On Mon, Jul 26, 2021 at 3:49 AM Krzysztof Hałasa <khalasa@piap.pl> wrote:
>
> The TD1997x chip retains vper, hper and hsper register values when the
> HDMI source is disconnected. Use a different means of checking if the
> link is still valid.
>
> Signed-off-by: Krzysztof Hałasa <khalasa@piap.pl>
>
> diff --git a/drivers/media/i2c/tda1997x.c b/drivers/media/i2c/tda1997x.c
> index 0b516a45a135..36a7b89afb08 100644
> --- a/drivers/media/i2c/tda1997x.c
> +++ b/drivers/media/i2c/tda1997x.c
> @@ -1107,7 +1107,8 @@ tda1997x_detect_std(struct tda1997x_state *state,
>         hper = io_read16(sd, REG_H_PER) & MASK_HPER;
>         hsper = io_read16(sd, REG_HS_WIDTH) & MASK_HSWIDTH;
>         v4l2_dbg(1, debug, sd, "Signal Timings: %u/%u/%u\n", vper, hper, hsper);
> -       if (!vper || !hper || !hsper)
> +
> +       if (!state->input_detect[0] && !state->input_detect[1])
>                 return -ENOLINK;
>
>         for (i = 0; v4l2_dv_timings_presets[i].bt.width; i++) {

Acked-By: Tim Harvey <tharvey@gateworks.com>

Best regards,

Tim
diff mbox series

Patch

diff --git a/drivers/media/i2c/tda1997x.c b/drivers/media/i2c/tda1997x.c
index 0b516a45a135..36a7b89afb08 100644
--- a/drivers/media/i2c/tda1997x.c
+++ b/drivers/media/i2c/tda1997x.c
@@ -1107,7 +1107,8 @@  tda1997x_detect_std(struct tda1997x_state *state,
 	hper = io_read16(sd, REG_H_PER) & MASK_HPER;
 	hsper = io_read16(sd, REG_HS_WIDTH) & MASK_HSWIDTH;
 	v4l2_dbg(1, debug, sd, "Signal Timings: %u/%u/%u\n", vper, hper, hsper);
-	if (!vper || !hper || !hsper)
+
+	if (!state->input_detect[0] && !state->input_detect[1])
 		return -ENOLINK;
 
 	for (i = 0; v4l2_dv_timings_presets[i].bt.width; i++) {