diff mbox

video: Check EDID for HDMI connection

Message ID 1395873337-41305-1-git-send-email-cfreeman@nvidia.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christopher Freeman March 26, 2014, 10:35 p.m. UTC
From: David Ung <davidu@nvidia.com>

Check EDID Vendor Specific Data Block bytes to see if the connection
is HDMI and set FB_MISC_HDMI.

Signed-off-by: David Ung <davidu@nvidia.com>
Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
---
 drivers/video/fbmon.c | 9 ++++++++-
 include/linux/fb.h    | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

Comments

Tomi Valkeinen April 8, 2014, 9:19 a.m. UTC | #1
Hi,

On 27/03/14 00:35, cfreeman@nvidia.com wrote:
> From: David Ung <davidu@nvidia.com>
> 
> Check EDID Vendor Specific Data Block bytes to see if the connection
> is HDMI and set FB_MISC_HDMI.
> 
> Signed-off-by: David Ung <davidu@nvidia.com>
> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
> ---

Patch looks fine, but how do you use the flag? Shouldn't things like
detecting if the monitor supports audio be done with some more detailed
bits in the EDID data (not that I remember much from the HDMI spec).

 Tomi
Christopher Freeman April 8, 2014, 9:43 p.m. UTC | #2
On 4/8/14 2:19 AM, "Tomi Valkeinen" <tomi.valkeinen@ti.com> wrote:

>* PGP Signed by an unknown key
>
>Hi,
>
>On 27/03/14 00:35, cfreeman@nvidia.com wrote:
>> From: David Ung <davidu@nvidia.com>
>> 
>> Check EDID Vendor Specific Data Block bytes to see if the connection
>> is HDMI and set FB_MISC_HDMI.
>> 
>> Signed-off-by: David Ung <davidu@nvidia.com>
>> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
>> ---
>
>Patch looks fine, but how do you use the flag? Shouldn't things like
>detecting if the monitor supports audio be done with some more detailed
>bits in the EDID data (not that I remember much from the HDMI spec).
The Tegra HDMI driver uses FB_MISC_HDMI to select the type of connection
it has hdmi/dvi and setup the avi info frames.
agree that we could use the EDID data to determine the audio format
support and sampling rates, but currently that's not being used.
I think determining the audio format and sample rate support could be
added in a separate and future patch.



>
> Tomi
>
>
>
>* Unknown Key
>* 0xBC961EF5

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomi Valkeinen April 14, 2014, 12:53 p.m. UTC | #3
On 09/04/14 00:43, Christopher Freeman wrote:
> 
> 
> On 4/8/14 2:19 AM, "Tomi Valkeinen" <tomi.valkeinen@ti.com> wrote:
> 
>> * PGP Signed by an unknown key
>>
>> Hi,
>>
>> On 27/03/14 00:35, cfreeman@nvidia.com wrote:
>>> From: David Ung <davidu@nvidia.com>
>>>
>>> Check EDID Vendor Specific Data Block bytes to see if the connection
>>> is HDMI and set FB_MISC_HDMI.
>>>
>>> Signed-off-by: David Ung <davidu@nvidia.com>
>>> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
>>> ---
>>
>> Patch looks fine, but how do you use the flag? Shouldn't things like
>> detecting if the monitor supports audio be done with some more detailed
>> bits in the EDID data (not that I remember much from the HDMI spec).
> The Tegra HDMI driver uses FB_MISC_HDMI to select the type of connection
> it has hdmi/dvi and setup the avi info frames.
> agree that we could use the EDID data to determine the audio format
> support and sampling rates, but currently that's not being used.
> I think determining the audio format and sample rate support could be
> added in a separate and future patch.

Yep. I don't see any harm with the patch, even if it's not perfect =).
So I'm queuing it for 3.16.

 Tomi
diff mbox

Patch

diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
index 6103fa6..3ac6367 100644
--- a/drivers/video/fbmon.c
+++ b/drivers/video/fbmon.c
@@ -1012,13 +1012,20 @@  void fb_edid_add_monspecs(unsigned char *edid, struct fb_monspecs *specs)
 	while (pos < edid[2]) {
 		u8 len = edid[pos] & 0x1f, type = (edid[pos] >> 5) & 7;
 		pr_debug("Data block %u of %u bytes\n", type, len);
-		if (type == 2)
+		if (type == 2) {
 			for (i = pos; i < pos + len; i++) {
 				u8 idx = edid[pos + i] & 0x7f;
 				svd[svd_n++] = idx;
 				pr_debug("N%sative mode #%d\n",
 					 edid[pos + i] & 0x80 ? "" : "on-n", idx);
 			}
+		} else if (type == 3 && len >= 3) {
+			/* Check Vendor Specific Data Block.  For HDMI,
+			   it is always 00-0C-03 for HDMI Licensing, LLC. */
+			if (edid[pos + 1] == 3 && edid[pos + 2] == 0xc &&
+			    edid[pos + 3] == 0)
+				specs->misc |= FB_MISC_HDMI;
+		}
 		pos += len + 1;
 	}
 
diff --git a/include/linux/fb.h b/include/linux/fb.h
index d49c60f..427d49d 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -47,6 +47,7 @@  struct device_node;
 
 #define FB_MISC_PRIM_COLOR	1
 #define FB_MISC_1ST_DETAIL	2	/* First Detailed Timing is preferred */
+#define FB_MISC_HDMI		4
 struct fb_chroma {
 	__u32 redx;	/* in fraction of 1024 */
 	__u32 greenx;