diff options
| author | Lespiau, Damien <damien.lespiau@intel.com> | 2013-08-19 11:58:58 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@gmail.com> | 2013-08-29 18:40:45 -0400 |
| commit | 7d27becb3532d881378846e72864031977be511a (patch) | |
| tree | 3171b5326dfd4d546efff20566543612957d53ba /include/linux | |
| parent | 974e0701c5251de879624d166890fbd0ee9fc429 (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.h | 26 |
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 { | |||
| 234 | ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame, | 234 | ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *frame, |
| 235 | void *buffer, size_t size); | 235 | void *buffer, size_t size); |
| 236 | 236 | ||
| 237 | enum 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 | |||
| 249 | struct 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 | |||
| 258 | int hdmi_hdmi_infoframe_init(struct hdmi_hdmi_infoframe *frame); | ||
| 259 | ssize_t hdmi_hdmi_infoframe_pack(struct hdmi_hdmi_infoframe *frame, | ||
| 260 | void *buffer, size_t size); | ||
| 261 | |||
| 237 | union hdmi_infoframe { | 262 | union 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 | ||
