diff options
| author | Simon Ser <simon.ser@intel.com> | 2019-07-12 17:28:48 +0300 |
|---|---|---|
| committer | Simon Ser <simon.ser@intel.com> | 2019-07-15 11:47:43 +0300 |
| commit | 41ff022b62b45a5b84504daa3537fa1b295b97c9 (patch) | |
| tree | e8650655b146c507e2538ee5ef0f6c755515a52b /lib | |
| parent | abf9333e736039013dfeb2b195eb78922edcf7ff (diff) | |
lib/igt_edid: add docs
Add a description of the library, and add misisng function docs.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/igt_edid.c | 40 | ||||
| -rw-r--r-- | lib/igt_edid.h | 6 |
2 files changed, 46 insertions, 0 deletions
diff --git a/lib/igt_edid.c b/lib/igt_edid.c index 1a59edb6..af31d66f 100644 --- a/lib/igt_edid.c +++ b/lib/igt_edid.c @@ -34,6 +34,21 @@ #include "igt_core.h" #include "igt_edid.h" +/** + * SECTION:igt_edid + * @short_description: EDID generation library + * @title: EDID + * @include: igt_edid.h + * + * This library contains helpers to generate custom EDIDs. + + * The E-EDID specification is available at: + * https://glenwing.github.io/docs/VESA-EEDID-A2.pdf + * + * The EDID CEA extension is defined in CEA-861-D section 7. The HDMI VSDB is + * defined in the HDMI spec. + */ + static const char edid_header[] = { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 }; @@ -351,6 +366,10 @@ static void edid_cea_data_block_init(struct edid_cea_data_block *block, block->type_len = type << 5 | size; } +/** + * edid_cea_data_block_set_sad: initialize a CEA data block to contain Short + * Audio Descriptors + */ size_t edid_cea_data_block_set_sad(struct edid_cea_data_block *block, const struct cea_sad *sads, size_t sads_len) { @@ -364,6 +383,10 @@ size_t edid_cea_data_block_set_sad(struct edid_cea_data_block *block, return sizeof(struct edid_cea_data_block) + sads_size; } +/** + * edid_cea_data_block_set_svd: initialize a CEA data block to contain Short + * Video Descriptors + */ size_t edid_cea_data_block_set_svd(struct edid_cea_data_block *block, const uint8_t *svds, size_t svds_len) { @@ -372,6 +395,10 @@ size_t edid_cea_data_block_set_svd(struct edid_cea_data_block *block, return sizeof(struct edid_cea_data_block) + svds_len; } +/** + * edid_cea_data_block_set_vsdb: initialize a CEA data block to contain a + * Vendor Specific Data Block + */ size_t edid_cea_data_block_set_vsdb(struct edid_cea_data_block *block, const struct cea_vsdb *vsdb, size_t vsdb_size) { @@ -383,6 +410,10 @@ size_t edid_cea_data_block_set_vsdb(struct edid_cea_data_block *block, return sizeof(struct edid_cea_data_block) + vsdb_size; } +/** + * edid_cea_data_block_set_hdmi_vsdb: initialize a CEA data block to contain an + * HDMI VSDB + */ size_t edid_cea_data_block_set_hdmi_vsdb(struct edid_cea_data_block *block, const struct hdmi_vsdb *hdmi, size_t hdmi_size) @@ -399,6 +430,10 @@ size_t edid_cea_data_block_set_hdmi_vsdb(struct edid_cea_data_block *block, CEA_VSDB_HEADER_SIZE + hdmi_size); } +/** + * edid_cea_data_block_set_speaker_alloc: initialize a CEA data block to + * contain a Speaker Allocation Data block + */ size_t edid_cea_data_block_set_speaker_alloc(struct edid_cea_data_block *block, const struct cea_speaker_alloc *speakers) { @@ -411,6 +446,11 @@ size_t edid_cea_data_block_set_speaker_alloc(struct edid_cea_data_block *block, return sizeof(struct edid_cea_data_block) + size; } +/** + * edid_ext_set_cea: initialize an EDID extension block to contain a CEA + * extension. CEA extensions contain a Data Block Collection (with multiple + * CEA data blocks) followed by multiple Detailed Timing Descriptors. + */ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size, uint8_t num_native_dtds, uint8_t flags) { diff --git a/lib/igt_edid.h b/lib/igt_edid.h index 2e3224e8..606541ac 100644 --- a/lib/igt_edid.h +++ b/lib/igt_edid.h @@ -32,6 +32,9 @@ #include <xf86drmMode.h> +/** + * est_timings: set of established timings + */ struct est_timings { uint8_t t1; uint8_t t2; @@ -47,6 +50,9 @@ enum std_timing_aspect { STD_TIMING_16_9 = 0b11, }; +/** + * std_timing: a standard timing + */ struct std_timing { uint8_t hsize; uint8_t vfreq_aspect; |
