aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLespiau, Damien <damien.lespiau@intel.com>2013-08-19 11:58:58 -0400
committerDave Airlie <airlied@gmail.com>2013-08-29 18:40:45 -0400
commit7d27becb3532d881378846e72864031977be511a (patch)
tree3171b5326dfd4d546efff20566543612957d53ba /include/linux
parent974e0701c5251de879624d166890fbd0ee9fc429 (diff)
video/hdmi: Introduce helpers for the HDMI vendor specific infoframe
Provide the same programming model than the other infoframe types. The generic _pack() function can't handle those yet as we need to move the vendor OUI in the generic hdmi_vendor_infoframe structure to know which kind of vendor infoframe we are dealing with. v2: Fix the value of Side-by-side (half), hmdi typo, pack 3D_Ext_Data (Ville Syrjälä) v3: Future proof the sending of 3D_Ext_Data (Ville Syrjälä), Fix multi-lines comment style (Thierry Reding) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Dave Airlie <airlied@gmail.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hdmi.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h
index b98340b82e05..e733252c2b5d 100644
--- a/include/linux/hdmi.h
+++ b/include/linux/hdmi.h
@@ -234,11 +234,37 @@ struct hdmi_vendor_infoframe {
234ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame, 234ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame,
235 void *buffer, size_t size); 235 void *buffer, size_t size);
236 236
237enum hdmi_3d_structure {
238 HDMI_3D_STRUCTURE_INVALID = -1,
239 HDMI_3D_STRUCTURE_FRAME_PACKING = 0,
240 HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE,
241 HDMI_3D_STRUCTURE_LINE_ALTERNATIVE,
242 HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL,
243 HDMI_3D_STRUCTURE_L_DEPTH,
244 HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH,
245 HDMI_3D_STRUCTURE_TOP_AND_BOTTOM,
246 HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8,
247};
248
249struct hdmi_hdmi_infoframe {
250 enum hdmi_infoframe_type type;
251 unsigned char version;
252 unsigned char length;
253 u8 vic;
254 enum hdmi_3d_structure s3d_struct;
255 unsigned int s3d_ext_data;
256};
257
258int hdmi_hdmi_infoframe_init(struct hdmi_hdmi_infoframe *frame);
259ssize_t hdmi_hdmi_infoframe_pack(struct hdmi_hdmi_infoframe *frame,
260 void *buffer, size_t size);
261
237union hdmi_infoframe { 262union hdmi_infoframe {
238 struct hdmi_any_infoframe any; 263 struct hdmi_any_infoframe any;
239 struct hdmi_avi_infoframe avi; 264 struct hdmi_avi_infoframe avi;
240 struct hdmi_spd_infoframe spd; 265 struct hdmi_spd_infoframe spd;
241 struct hdmi_vendor_infoframe vendor; 266 struct hdmi_vendor_infoframe vendor;
267 struct hdmi_hdmi_infoframe hdmi;
242 struct hdmi_audio_infoframe audio; 268 struct hdmi_audio_infoframe audio;
243}; 269};
244 270