diff options
| author | Simon Ser <simon.ser@intel.com> | 2019-06-19 14:33:31 +0300 |
|---|---|---|
| committer | Simon Ser <simon.ser@intel.com> | 2019-07-02 13:59:32 +0300 |
| commit | 4009375fd4e7153f21507046f97ee145c751cef9 (patch) | |
| tree | 3344bd20a455fbecc9acdf87eb9eeda6a04f1778 /lib | |
| parent | 44af059741593587f1c500b00e7b07c5d7240c61 (diff) | |
lib/igt_edid: add edid_get_mfg
This returns the 3-letter manufacturer identifier of an EDID.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/igt_edid.c | 13 | ||||
| -rw-r--r-- | lib/igt_edid.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/igt_edid.c b/lib/igt_edid.c index 6cc5e7dd..cbb7eeff 100644 --- a/lib/igt_edid.c +++ b/lib/igt_edid.c @@ -172,6 +172,19 @@ void detailed_timing_set_string(struct detailed_timing *dt, ds->str[len] = '\n'; } +/** + * edid_get_mfg: reads the 3-letter manufacturer identifier + * + * The string is *not* NULL-terminated. + */ +void edid_get_mfg(const struct edid *edid, char out[static 3]) +{ + out[0] = ((edid->mfg_id[0] & 0x7C) >> 2) + '@'; + out[1] = (((edid->mfg_id[0] & 0x03) << 3) | + ((edid->mfg_id[1] & 0xE0) >> 5)) + '@'; + out[2] = (edid->mfg_id[1] & 0x1F) + '@'; +} + static void edid_set_mfg(struct edid *edid, const char mfg[static 3]) { edid->mfg_id[0] = (mfg[0] - '@') << 2 | (mfg[1] - '@') >> 3; diff --git a/lib/igt_edid.h b/lib/igt_edid.h index 8d8e30ec..47581bb7 100644 --- a/lib/igt_edid.h +++ b/lib/igt_edid.h @@ -298,6 +298,7 @@ void edid_init(struct edid *edid); void edid_init_with_mode(struct edid *edid, drmModeModeInfo *mode); void edid_update_checksum(struct edid *edid); size_t edid_get_size(const struct edid *edid); +void edid_get_mfg(const struct edid *edid, char out[static 3]); void detailed_timing_set_mode(struct detailed_timing *dt, drmModeModeInfo *mode, int width_mm, int height_mm); void detailed_timing_set_monitor_range_mode(struct detailed_timing *dt, |
