summaryrefslogtreecommitdiff
path: root/include/edid.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-04-14 21:03:37 -0600
committerTom Warren <twarren@nvidia.com>2015-05-13 09:24:10 -0700
commit00cf1167bb8f7c08825262ee83e77274ff034f0a (patch)
tree154757d0104c31f3aad7279d29dab862ec305e1e /include/edid.h
parent490f5fd2388f0f7f18e1df22ff318393f8483ea4 (diff)
edid: Add a function to read detailed monitor timings
For digital displays (such as EDP LCDs) we would like to read the EDID information and use that to set display timings. Provide a function to do this. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Warren <twarren@nvidia.com>
Diffstat (limited to 'include/edid.h')
-rw-r--r--include/edid.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/edid.h b/include/edid.h
index 18ec1d5ab0c..88b4b7d8542 100644
--- a/include/edid.h
+++ b/include/edid.h
@@ -15,6 +15,9 @@
#include <linux/types.h>
+/* Size of the EDID data */
+#define EDID_SIZE 128
+
#define GET_BIT(_x, _pos) \
(((_x) >> (_pos)) & 1)
#define GET_BITS(_x, _pos_msb, _pos_lsb) \
@@ -287,4 +290,20 @@ int edid_get_ranges(struct edid1_info *edid, unsigned int *hmin,
unsigned int *hmax, unsigned int *vmin,
unsigned int *vmax);
+struct display_timing;
+
+/**
+ * edid_get_timing() - Get basic digital display parameters
+ *
+ * @param buf Buffer containing EDID data
+ * @param buf_size Size of buffer in bytes
+ * @param timing Place to put preferring timing information
+ * @param panel_bits_per_colourp Place to put the number of bits per
+ * colour supported by the panel. This will be set to
+ * -1 if not available
+ * @return 0 if timings are OK, -ve on error
+ */
+int edid_get_timing(u8 *buf, int buf_size, struct display_timing *timing,
+ int *panel_bits_per_colourp);
+
#endif /* __EDID_H_ */