Re: [PATCH REPOST] TDA1997x: replace video detection routine
From: Krzysztof Hałasa
Date: Thu Jul 22 2021 - 02:27:39 EST
Hans,
I have a problem with matching H/V sync polarities. It appears the
standard modes use different polarity settings, and HDMI doesn't have
separate sync lines, it uses in-band signaling. I don't know what
polarity should I set for the v4l2_find_dv_timings_cap() ->
v4l2_match_dv_timings() to succeed.
1. I can try all 4 combinations (+/+, +/-, -/+, -/-) and see if there is
a match. Seems weird to me.
2. I can add a flag to v4l2_find_dv_timings_cap() ->
v4l2_match_dv_timings() which asks for the polarities to be ignored.
3. I could add
#define V4L2_DV_VSYNC_POS_POL 0x00000001
#define V4L2_DV_HSYNC_POS_POL 0x00000002
+#define V4L2_DV_VSYNC_ANY_POL 0x00000004
+#define V4L2_DV_HSYNC_ANY_POL 0x00000008
and v4l2_match_dv_timings() would skip comparing them. A bit hacky.
4. I could also add
#define V4L2_DV_VSYNC_POS_POL 0x00000001
#define V4L2_DV_HSYNC_POS_POL 0x00000002
+#define V4L2_DV_VSYNC_NEG_POL 0x00000004
+#define V4L2_DV_HSYNC_NEG_POL 0x00000008
and, likewise, v4l2_match_dv_timings() would know what to do. This is
IMHO cleaner but requires much more changes in other code (like
drivers).
Any other idea?
Perhaps I should do "2"?
Thanks,
--
Krzysztof "Chris" Hałasa
Sieć Badawcza Łukasiewicz
Przemysłowy Instytut Automatyki i Pomiarów PIAP
Al. Jerozolimskie 202, 02-486 Warszawa