drm_edid.h (0aea30a07ec6b50de0fc5f5b2ec34a68ead86b61) drm_edid.h (4fc8cb47fcfdc93e274a1291757e478df4f9c39b)
1/*
2 * Copyright © 2007-2008 Intel Corporation
3 * Jesse Barnes <jesse.barnes@intel.com>
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,

--- 358 unchanged lines hidden (view full) ---

367 u8 byte2; /* meaning depends on format */
368};
369
370struct drm_encoder;
371struct drm_connector;
372struct drm_connector_state;
373struct drm_display_mode;
374
1/*
2 * Copyright © 2007-2008 Intel Corporation
3 * Jesse Barnes <jesse.barnes@intel.com>
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,

--- 358 unchanged lines hidden (view full) ---

367 u8 byte2; /* meaning depends on format */
368};
369
370struct drm_encoder;
371struct drm_connector;
372struct drm_connector_state;
373struct drm_display_mode;
374
375int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads);
376int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb);
375int drm_edid_to_sad(const struct edid *edid, struct cea_sad **sads);
376int drm_edid_to_speaker_allocation(const struct edid *edid, u8 **sadb);
377int drm_av_sync_delay(struct drm_connector *connector,
378 const struct drm_display_mode *mode);
379
380#ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE
381struct edid *drm_load_edid_firmware(struct drm_connector *connector);
382int __drm_set_edid_firmware_path(const char *path);
383int __drm_get_edid_firmware_path(char *buf, size_t bufsize);
384#else

--- 11 unchanged lines hidden (view full) ---

396 const struct drm_connector *connector,
397 const struct drm_display_mode *mode);
398int
399drm_hdmi_vendor_infoframe_from_display_mode(struct hdmi_vendor_infoframe *frame,
400 const struct drm_connector *connector,
401 const struct drm_display_mode *mode);
402
403void
377int drm_av_sync_delay(struct drm_connector *connector,
378 const struct drm_display_mode *mode);
379
380#ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE
381struct edid *drm_load_edid_firmware(struct drm_connector *connector);
382int __drm_set_edid_firmware_path(const char *path);
383int __drm_get_edid_firmware_path(char *buf, size_t bufsize);
384#else

--- 11 unchanged lines hidden (view full) ---

396 const struct drm_connector *connector,
397 const struct drm_display_mode *mode);
398int
399drm_hdmi_vendor_infoframe_from_display_mode(struct hdmi_vendor_infoframe *frame,
400 const struct drm_connector *connector,
401 const struct drm_display_mode *mode);
402
403void
404drm_hdmi_avi_infoframe_colorimetry(struct hdmi_avi_infoframe *frame,
405 const struct drm_connector_state *conn_state);
406
407void
408drm_hdmi_avi_infoframe_bars(struct hdmi_avi_infoframe *frame,
409 const struct drm_connector_state *conn_state);
410
411void
412drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame,
413 const struct drm_connector *connector,
414 const struct drm_display_mode *mode,
415 enum hdmi_quantization_range rgb_quant_range);
416
404drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *frame,
405 const struct drm_connector *connector,
406 const struct drm_display_mode *mode,
407 enum hdmi_quantization_range rgb_quant_range);
408
417int
418drm_hdmi_infoframe_set_hdr_metadata(struct hdmi_drm_infoframe *frame,
419 const struct drm_connector_state *conn_state);
420
421/**
422 * drm_eld_mnl - Get ELD monitor name length in bytes.
423 * @eld: pointer to an eld memory structure with mnl set
424 */
425static inline int drm_eld_mnl(const uint8_t *eld)
426{
427 return (eld[DRM_ELD_CEA_EDID_VER_MNL] & DRM_ELD_MNL_MASK) >> DRM_ELD_MNL_SHIFT;
428}

--- 135 unchanged lines hidden (view full) ---

564u32 drm_edid_get_panel_id(struct i2c_adapter *adapter);
565struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
566 struct i2c_adapter *adapter);
567struct edid *drm_edid_duplicate(const struct edid *edid);
568int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
569int drm_add_override_edid_modes(struct drm_connector *connector);
570
571u8 drm_match_cea_mode(const struct drm_display_mode *to_match);
409/**
410 * drm_eld_mnl - Get ELD monitor name length in bytes.
411 * @eld: pointer to an eld memory structure with mnl set
412 */
413static inline int drm_eld_mnl(const uint8_t *eld)
414{
415 return (eld[DRM_ELD_CEA_EDID_VER_MNL] & DRM_ELD_MNL_MASK) >> DRM_ELD_MNL_SHIFT;
416}

--- 135 unchanged lines hidden (view full) ---

552u32 drm_edid_get_panel_id(struct i2c_adapter *adapter);
553struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
554 struct i2c_adapter *adapter);
555struct edid *drm_edid_duplicate(const struct edid *edid);
556int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
557int drm_add_override_edid_modes(struct drm_connector *connector);
558
559u8 drm_match_cea_mode(const struct drm_display_mode *to_match);
572bool drm_detect_hdmi_monitor(struct edid *edid);
573bool drm_detect_monitor_audio(struct edid *edid);
560bool drm_detect_hdmi_monitor(const struct edid *edid);
561bool drm_detect_monitor_audio(const struct edid *edid);
574enum hdmi_quantization_range
575drm_default_rgb_quant_range(const struct drm_display_mode *mode);
576int drm_add_modes_noedid(struct drm_connector *connector,
577 int hdisplay, int vdisplay);
578void drm_set_preferred_mode(struct drm_connector *connector,
579 int hpref, int vpref);
580
562enum hdmi_quantization_range
563drm_default_rgb_quant_range(const struct drm_display_mode *mode);
564int drm_add_modes_noedid(struct drm_connector *connector,
565 int hdisplay, int vdisplay);
566void drm_set_preferred_mode(struct drm_connector *connector,
567 int hpref, int vpref);
568
581int drm_edid_header_is_valid(const u8 *raw_edid);
569int drm_edid_header_is_valid(const void *edid);
582bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
583 bool *edid_corrupt);
584bool drm_edid_is_valid(struct edid *edid);
570bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
571 bool *edid_corrupt);
572bool drm_edid_is_valid(struct edid *edid);
585void drm_edid_get_monitor_name(struct edid *edid, char *name,
573void drm_edid_get_monitor_name(const struct edid *edid, char *name,
586 int buflen);
587struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
588 int hsize, int vsize, int fresh,
589 bool rb);
590struct drm_display_mode *
591drm_display_mode_from_cea_vic(struct drm_device *dev,
592 u8 video_code);
593const u8 *drm_find_edid_extension(const struct edid *edid,
594 int ext_id, int *ext_index);
595
596
597#endif /* __DRM_EDID_H__ */
574 int buflen);
575struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
576 int hsize, int vsize, int fresh,
577 bool rb);
578struct drm_display_mode *
579drm_display_mode_from_cea_vic(struct drm_device *dev,
580 u8 video_code);
581const u8 *drm_find_edid_extension(const struct edid *edid,
582 int ext_id, int *ext_index);
583
584
585#endif /* __DRM_EDID_H__ */