From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drivers/video/hdmi: allow for larger-than-needed vendor IF Date: Mon, 20 Nov 2017 16:51:54 +0200 Message-ID: <20171120145154.GW10981@intel.com> References: <20171120134129.26161-1-hverkuil@xs4all.nl> <20171120134129.26161-2-hverkuil@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 16A9A89E59 for ; Mon, 20 Nov 2017 14:52:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171120134129.26161-2-hverkuil@xs4all.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil Cc: Hans Verkuil , Daniel Vetter , Thierry Reding , dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBOb3YgMjAsIDIwMTcgYXQgMDI6NDE6MjhQTSArMDEwMCwgSGFucyBWZXJrdWlsIHdy b3RlOgo+IEZyb206IEhhbnMgVmVya3VpbCA8aGFuc3ZlcmtAY2lzY28uY29tPgo+IAo+IFNvbWUg ZGV2aWNlcyAoV2luZG93cyBJbnRlbCBkcml2ZXIhKSBzZW5kIGEgVmVuZG9yIEluZm9GcmFtZSB0 aGF0Cj4gdXNlcyBhIHBheWxvYWQgbGVuZ3RoIG9mIDB4MWIgaW5zdGVhZCBvZiB0aGUgbGVuZ3Ro IG9mIDUgb3IgNgo+IHRoYXQgdGhlIHVucGFjayBjb2RlIGV4cGVjdHMuIFRoZSBJbmZvRnJhbWUg aXMgcGFkZGVkIHdpdGggMCBieQo+IHRoZSBzb3VyY2UuCgpTbyBpdCBkb2Vzbid0IHB1dCBhbnkg M0RfTWV0YWRhdGEgc3R1ZmYgaW4gdGhlcmU/IFdlIGRvbid0IHNlZSB0bwpoYXZlIGNvZGUgdG8g cGFyc2UvZ2VuZXJhdGUgYW55IG9mIHRoYXQuCgpTYWRseSB0aGUgc3BlYyBkb2Vzbid0IHNlZW0g dG8gZm9yYmlkIHNlbmRpbmcgYW4gb3Zlcmx5IGxvbmcgaW5mb2ZyYW1lCmFzIGxvbmcgaXQncyBw YWRkZWQgd2l0aCAwLiBXb3VsZCBoYXZlIGJlZW4gbmljZXIgZm9yIGV4dGVuZGluZyBpdCBpZgp0 aGF0IHNvcnQgb2YgdGhpbmcgd2FzIGZvcmJpZGRlbi4gQnV0IEkgZ3Vlc3MgZXZlcnl0aGluZyBj YW4gYmUgc29sdmVkCndpdGggZmxhZ3MuIE5vdCB0aGF0IEkgZXhwZWN0IGFueW9uZSB0byBleHRl bmQgaXQgYW55bW9yZSBub3cgdGhhdApIRE1JIDIuMCBoYXMgc3BlY2lmaWVkIGEgdG90YWxseSBu ZXcgaW5mb2ZyYW1lLgoKPiAKPiBUaGUgY3VycmVudCBjb2RlIHRoaW5rcyBhbnl0aGluZyBvdGhl ciB0aGFuIDUgb3IgNiBpcyBhbiBlcnJvciwKPiBidXQgbGFyZ2VyIHZhbHVlcyBhcmUgYWxsb3dl ZCBieSB0aGUgc3BlY2lmaWNhdGlvbi4gU28gc3VwcG9ydAo+IHRoYXQgaGVyZSBhcyB3ZWxsLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IEhhbnMgVmVya3VpbCA8aGFuc3ZlcmtAY2lzY28uY29tPgo+IC0t LQo+ICBkcml2ZXJzL3ZpZGVvL2hkbWkuYyB8IDMgKy0tCj4gIGluY2x1ZGUvbGludXgvaGRtaS5o IHwgMSArCj4gIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2hkbWkuYyBiL2RyaXZlcnMvdmlkZW8v aGRtaS5jCj4gaW5kZXggMWNmOTA3ZWNkZWQ0Li42MWY4MDNmNzVhNDcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy92aWRlby9oZG1pLmMKPiArKysgYi9kcml2ZXJzL3ZpZGVvL2hkbWkuYwo+IEBAIC0x MTY0LDggKzExNjQsNyBAQCBoZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lX3VucGFjayh1bmlvbiBo ZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lICpmcmFtZSwKPiAgCXN0cnVjdCBoZG1pX3ZlbmRvcl9p bmZvZnJhbWUgKmh2ZiA9ICZmcmFtZS0+aGRtaTsKPiAgCj4gIAlpZiAocHRyWzBdICE9IEhETUlf SU5GT0ZSQU1FX1RZUEVfVkVORE9SIHx8Cj4gLQkgICAgcHRyWzFdICE9IDEgfHwKPiAtCSAgICAo cHRyWzJdICE9IDUgJiYgcHRyWzJdICE9IDYpKQo+ICsJICAgIHB0clsxXSAhPSAxIHx8IHB0clsy XSA8IDUgfHwgcHRyWzJdID4gSERNSV9WRU5ET1JfSU5GT0ZSQU1FX1NJWkUpCj4gIAkJcmV0dXJu IC1FSU5WQUw7Cj4gIAo+ICAJbGVuZ3RoID0gcHRyWzJdOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgvaGRtaS5oCj4gaW5kZXggZDI3MWZmMjM5ODRm Li4xNGQzNTMxYTBlZGEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9oZG1pLmgKPiArKysg Yi9pbmNsdWRlL2xpbnV4L2hkbWkuaAo+IEBAIC00MCw2ICs0MCw3IEBAIGVudW0gaGRtaV9pbmZv ZnJhbWVfdHlwZSB7Cj4gICNkZWZpbmUgSERNSV9BVklfSU5GT0ZSQU1FX1NJWkUgICAgMTMKPiAg I2RlZmluZSBIRE1JX1NQRF9JTkZPRlJBTUVfU0laRSAgICAyNQo+ICAjZGVmaW5lIEhETUlfQVVE SU9fSU5GT0ZSQU1FX1NJWkUgIDEwCj4gKyNkZWZpbmUgSERNSV9WRU5ET1JfSU5GT0ZSQU1FX1NJ WkUgMzEKPiAgCj4gICNkZWZpbmUgSERNSV9JTkZPRlJBTUVfU0laRSh0eXBlKQlcCj4gIAkoSERN SV9JTkZPRlJBTUVfSEVBREVSX1NJWkUgKyBIRE1JXyAjIyB0eXBlICMjIF9JTkZPRlJBTUVfU0la RSkKPiAtLSAKPiAyLjE0LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mga03.intel.com ([134.134.136.65]:63018 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751155AbdKTOwD (ORCPT ); Mon, 20 Nov 2017 09:52:03 -0500 Date: Mon, 20 Nov 2017 16:51:54 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Hans Verkuil Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, Daniel Vetter , Thierry Reding , Hans Verkuil Subject: Re: [PATCH 1/2] drivers/video/hdmi: allow for larger-than-needed vendor IF Message-ID: <20171120145154.GW10981@intel.com> References: <20171120134129.26161-1-hverkuil@xs4all.nl> <20171120134129.26161-2-hverkuil@xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20171120134129.26161-2-hverkuil@xs4all.nl> Sender: linux-media-owner@vger.kernel.org List-ID: On Mon, Nov 20, 2017 at 02:41:28PM +0100, Hans Verkuil wrote: > From: Hans Verkuil > > Some devices (Windows Intel driver!) send a Vendor InfoFrame that > uses a payload length of 0x1b instead of the length of 5 or 6 > that the unpack code expects. The InfoFrame is padded with 0 by > the source. So it doesn't put any 3D_Metadata stuff in there? We don't see to have code to parse/generate any of that. Sadly the spec doesn't seem to forbid sending an overly long infoframe as long it's padded with 0. Would have been nicer for extending it if that sort of thing was forbidden. But I guess everything can be solved with flags. Not that I expect anyone to extend it anymore now that HDMI 2.0 has specified a totally new infoframe. > > The current code thinks anything other than 5 or 6 is an error, > but larger values are allowed by the specification. So support > that here as well. > > Signed-off-by: Hans Verkuil > --- > drivers/video/hdmi.c | 3 +-- > include/linux/hdmi.h | 1 + > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/hdmi.c b/drivers/video/hdmi.c > index 1cf907ecded4..61f803f75a47 100644 > --- a/drivers/video/hdmi.c > +++ b/drivers/video/hdmi.c > @@ -1164,8 +1164,7 @@ hdmi_vendor_any_infoframe_unpack(union hdmi_vendor_any_infoframe *frame, > struct hdmi_vendor_infoframe *hvf = &frame->hdmi; > > if (ptr[0] != HDMI_INFOFRAME_TYPE_VENDOR || > - ptr[1] != 1 || > - (ptr[2] != 5 && ptr[2] != 6)) > + ptr[1] != 1 || ptr[2] < 5 || ptr[2] > HDMI_VENDOR_INFOFRAME_SIZE) > return -EINVAL; > > length = ptr[2]; > diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h > index d271ff23984f..14d3531a0eda 100644 > --- a/include/linux/hdmi.h > +++ b/include/linux/hdmi.h > @@ -40,6 +40,7 @@ enum hdmi_infoframe_type { > #define HDMI_AVI_INFOFRAME_SIZE 13 > #define HDMI_SPD_INFOFRAME_SIZE 25 > #define HDMI_AUDIO_INFOFRAME_SIZE 10 > +#define HDMI_VENDOR_INFOFRAME_SIZE 31 > > #define HDMI_INFOFRAME_SIZE(type) \ > (HDMI_INFOFRAME_HEADER_SIZE + HDMI_ ## type ## _INFOFRAME_SIZE) > -- > 2.14.1 -- Ville Syrjälä Intel OTC