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 <[email protected]>
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++) {
On Mon, Jul 26, 2021 at 3:49 AM Krzysztof Hałasa <[email protected]> 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 <[email protected]>
>
> 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 <[email protected]>
Best regards,
Tim