sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
1006
if (!amdgpu_connector->edid) {
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
1013
!!(amdgpu_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
249
struct edid *amdgpu_connector_edid(struct drm_connector *connector)
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
254
if (amdgpu_connector->edid) {
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
255
return amdgpu_connector->edid;
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
257
struct edid *edid = kmemdup(edid_blob->data, edid_blob->length, GFP_KERNEL);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
258
if (edid)
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
259
amdgpu_connector->edid = edid;
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
261
return amdgpu_connector->edid;
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
264
static struct edid *
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
267
struct edid *edid;
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
270
edid = kmalloc(adev->mode_info.bios_hardcoded_edid_size, M_DRM, GFP_KERNEL);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
271
if (edid) {
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
272
memcpy((unsigned char *)edid,
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
275
return edid;
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
287
if (amdgpu_connector->edid)
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
297
amdgpu_connector->edid = drm_get_edid(connector,
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
306
amdgpu_connector->edid = drm_get_edid(connector,
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
309
amdgpu_connector->edid = drm_get_edid(connector,
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
312
amdgpu_connector->edid = drm_get_edid(connector,
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
316
if (!amdgpu_connector->edid) {
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
320
amdgpu_connector->edid = amdgpu_connector_get_hardcoded_edid(adev);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
328
kfree(amdgpu_connector->edid);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
329
amdgpu_connector->edid = NULL;
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
337
if (amdgpu_connector->edid) {
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
338
drm_connector_update_edid_property(connector, amdgpu_connector->edid);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
339
ret = drm_add_edid_modes(connector, amdgpu_connector->edid);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
740
if (amdgpu_connector->edid)
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
881
if (!amdgpu_connector->edid) {
sys/dev/drm/amd/amdgpu/amdgpu_connectors.c
887
!!(amdgpu_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
sys/dev/drm/amd/amdgpu/amdgpu_connectors.h
27
struct edid *amdgpu_connector_edid(struct drm_connector *connector);
sys/dev/drm/amd/amdgpu/amdgpu_mode.h
345
struct edid *bios_hardcoded_edid;
sys/dev/drm/amd/amdgpu/amdgpu_mode.h
554
struct edid *edid;
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2170
struct edid *edid;
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2173
edid = kmalloc(edid_size, M_DRM, GFP_KERNEL);
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2174
if (edid) {
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2175
memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0],
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2178
if (drm_edid_is_valid(edid)) {
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2179
adev->mode_info.bios_hardcoded_edid = edid;
sys/dev/drm/amd/amdgpu/atombios_encoders.c
2182
kfree(edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1046
aconnector->edid = NULL;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1049
aconnector->edid =
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1050
(struct edid *) sink->dc_edid.raw_edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1054
aconnector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1056
aconnector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1058
amdgpu_dm_update_freesync_caps(connector, aconnector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
1066
aconnector->edid = NULL;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3256
struct edid *edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3267
edid = (struct edid *) aconnector->base.edid_blob_ptr->data;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3269
aconnector->edid = edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3273
(uint8_t *)edid,
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3274
(edid->extensions + 1) * EDID_LENGTH,
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3885
struct edid *edid)
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3890
if (edid) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3894
drm_add_edid_modes(connector, edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3909
struct edid *edid = amdgpu_dm_connector->edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3913
if (!edid || !drm_edid_is_valid(edid)) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
3917
amdgpu_dm_connector_ddc_get_modes(connector, edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5811
struct edid *edid)
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5830
if (!edid) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5854
if (edid) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5863
if (edid_check_required == true && (edid->version > 1 ||
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5864
(edid->version == 1 && edid->revision > 1))) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
5867
timing = &edid->detailed_timings[i];
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.c
997
aconnector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.h
142
struct edid *edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm.h
255
struct edid *edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
100
(struct edid *) edid->raw_edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
102
sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
119
sadb_count = drm_edid_to_speaker_allocation((struct edid *) edid->raw_edid, &sadb);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
566
struct edid *edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
57
const struct dc_edid *edid,
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
578
edid = drm_get_edid(&aconnector->base, ddc);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
580
if (!edid)
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
583
sink->dc_edid.length = EDID_LENGTH * (edid->extensions + 1);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
584
memmove(sink->dc_edid.raw_edid, (uint8_t *)edid, sink->dc_edid.length);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
587
kfree(edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
60
struct edid *edid_buf = (struct edid *) edid->raw_edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
70
if (!edid_caps || !edid)
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
188
if (amdgpu_dm_connector->edid) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
189
kfree(amdgpu_dm_connector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
190
amdgpu_dm_connector->edid = NULL;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
218
if (!aconnector->edid) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
219
struct edid *edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
220
edid = drm_dp_mst_get_edid(connector, &aconnector->mst_port->mst_mgr, aconnector->port);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
222
if (!edid) {
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
229
aconnector->edid = edid;
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
239
(uint8_t *)aconnector->edid,
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
240
(aconnector->edid->extensions + 1) * EDID_LENGTH,
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
248
connector, aconnector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
253
&aconnector->base, aconnector->edid);
sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
255
ret = drm_add_edid_modes(connector, aconnector->edid);
sys/dev/drm/amd/display/dc/core/dc.c
1767
const uint8_t *edid,
sys/dev/drm/amd/display/dc/core/dc.c
1794
memmove(dc_sink->dc_edid.raw_edid, edid, len);
sys/dev/drm/amd/display/dc/dc_link.h
185
const uint8_t *edid,
sys/dev/drm/amd/display/dc/dm_helpers.h
40
const struct dc_edid *edid,
sys/dev/drm/drm_connector.c
1517
const struct edid *edid)
sys/dev/drm/drm_connector.c
1527
if (edid)
sys/dev/drm/drm_connector.c
1528
size = EDID_LENGTH * (1 + edid->extensions);
sys/dev/drm/drm_connector.c
1538
if (edid)
sys/dev/drm/drm_connector.c
1539
drm_add_display_info(connector, edid);
sys/dev/drm/drm_connector.c
1550
edid,
sys/dev/drm/drm_crtc_internal.h
253
u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edid);
sys/dev/drm/drm_crtc_internal.h
41
struct edid;
sys/dev/drm/drm_dp_mst_topology.c
2553
struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
sys/dev/drm/drm_dp_mst_topology.c
2555
struct edid *edid = NULL;
sys/dev/drm/drm_dp_mst_topology.c
2563
edid = drm_edid_duplicate(port->cached_edid);
sys/dev/drm/drm_dp_mst_topology.c
2565
edid = drm_get_edid(connector, &port->aux.ddc);
sys/dev/drm/drm_dp_mst_topology.c
2568
port->has_audio = drm_detect_monitor_audio(edid);
sys/dev/drm/drm_dp_mst_topology.c
2570
return edid;
sys/dev/drm/drm_dp_mst_topology.c
2994
struct edid *mst_edid;
sys/dev/drm/drm_edid.c
1360
struct edid *edid);
sys/dev/drm/drm_edid.c
1396
struct edid *edid = (struct edid *)raw_edid;
sys/dev/drm/drm_edid.c
1446
if (edid->version != 1) {
sys/dev/drm/drm_edid.c
1447
DRM_NOTE("EDID has major version %d, instead of 1\n", edid->version);
sys/dev/drm/drm_edid.c
1451
if (edid->revision > 4)
sys/dev/drm/drm_edid.c
1484
bool drm_edid_is_valid(struct edid *edid)
sys/dev/drm/drm_edid.c
1487
u8 *raw = (u8 *)edid;
sys/dev/drm/drm_edid.c
1489
if (!edid)
sys/dev/drm/drm_edid.c
1492
for (i = 0; i <= edid->extensions; i++)
sys/dev/drm/drm_edid.c
1565
u8 *edid, int num_blocks)
sys/dev/drm/drm_edid.c
1576
u8 *block = edid + i * EDID_LENGTH;
sys/dev/drm/drm_edid.c
1612
struct edid *drm_do_get_edid(struct drm_connector *connector,
sys/dev/drm/drm_edid.c
1618
u8 *edid, *new;
sys/dev/drm/drm_edid.c
1619
struct edid *override = NULL;
sys/dev/drm/drm_edid.c
1630
if ((edid = kmalloc(EDID_LENGTH, M_DRM, GFP_KERNEL)) == NULL)
sys/dev/drm/drm_edid.c
1635
if (get_edid_block(data, edid, 0, EDID_LENGTH))
sys/dev/drm/drm_edid.c
1637
if (drm_edid_block_valid(edid, 0, false,
sys/dev/drm/drm_edid.c
1640
if (i == 0 && drm_edid_is_zero(edid, EDID_LENGTH)) {
sys/dev/drm/drm_edid.c
1649
valid_extensions = edid[0x7e];
sys/dev/drm/drm_edid.c
1651
return (struct edid *)edid;
sys/dev/drm/drm_edid.c
1653
new = krealloc(edid, (valid_extensions + 1) * EDID_LENGTH, M_DRM,
sys/dev/drm/drm_edid.c
1657
edid = new;
sys/dev/drm/drm_edid.c
1659
for (j = 1; j <= edid[0x7e]; j++) {
sys/dev/drm/drm_edid.c
1660
u8 *block = edid + j * EDID_LENGTH;
sys/dev/drm/drm_edid.c
1673
if (valid_extensions != edid[0x7e]) {
sys/dev/drm/drm_edid.c
1676
connector_bad_edid(connector, edid, edid[0x7e] + 1);
sys/dev/drm/drm_edid.c
1678
edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions;
sys/dev/drm/drm_edid.c
1679
edid[0x7e] = valid_extensions;
sys/dev/drm/drm_edid.c
1687
for (i = 0; i <= edid[0x7e]; i++) {
sys/dev/drm/drm_edid.c
1688
u8 *block = edid + i * EDID_LENGTH;
sys/dev/drm/drm_edid.c
1697
kfree(edid);
sys/dev/drm/drm_edid.c
1698
edid = new;
sys/dev/drm/drm_edid.c
1701
return (struct edid *)edid;
sys/dev/drm/drm_edid.c
1704
connector_bad_edid(connector, edid, 1);
sys/dev/drm/drm_edid.c
1706
kfree(edid);
sys/dev/drm/drm_edid.c
1735
struct edid *drm_get_edid(struct drm_connector *connector,
sys/dev/drm/drm_edid.c
1738
struct edid *edid;
sys/dev/drm/drm_edid.c
1746
edid = drm_do_get_edid(connector, drm_do_probe_ddc_edid, adapter);
sys/dev/drm/drm_edid.c
1747
if (edid)
sys/dev/drm/drm_edid.c
1748
drm_get_displayid(connector, edid);
sys/dev/drm/drm_edid.c
1749
return edid;
sys/dev/drm/drm_edid.c
1764
struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
sys/dev/drm/drm_edid.c
1768
struct edid *edid;
sys/dev/drm/drm_edid.c
1771
edid = drm_get_edid(connector, adapter);
sys/dev/drm/drm_edid.c
1774
return edid;
sys/dev/drm/drm_edid.c
1784
struct edid *drm_edid_duplicate(const struct edid *edid)
sys/dev/drm/drm_edid.c
1786
return kmemdup(edid, (edid->extensions + 1) * EDID_LENGTH, GFP_KERNEL);
sys/dev/drm/drm_edid.c
1799
static bool edid_vendor(const struct edid *edid, const char *vendor)
sys/dev/drm/drm_edid.c
1803
edid_vendor[0] = ((edid->mfg_id[0] & 0x7c) >> 2) + '@';
sys/dev/drm/drm_edid.c
1804
edid_vendor[1] = (((edid->mfg_id[0] & 0x3) << 3) |
sys/dev/drm/drm_edid.c
1805
((edid->mfg_id[1] & 0xe0) >> 5)) + '@';
sys/dev/drm/drm_edid.c
1806
edid_vendor[2] = (edid->mfg_id[1] & 0x1f) + '@';
sys/dev/drm/drm_edid.c
1817
static u32 edid_get_quirks(const struct edid *edid)
sys/dev/drm/drm_edid.c
1825
if (edid_vendor(edid, quirk->vendor) &&
sys/dev/drm/drm_edid.c
1826
(EDID_PRODUCT_ID(edid) == quirk->product_id))
sys/dev/drm/drm_edid.c
1963
struct edid *edid = (struct edid *)raw_edid;
sys/dev/drm/drm_edid.c
1965
if (edid == NULL)
sys/dev/drm/drm_edid.c
1969
cb(&(edid->detailed_timings[i]), closure);
sys/dev/drm/drm_edid.c
1997
drm_monitor_supports_rb(struct edid *edid)
sys/dev/drm/drm_edid.c
1999
if (edid->revision >= 4) {
sys/dev/drm/drm_edid.c
2001
drm_for_each_detailed_block((u8 *)edid, is_rb, &ret);
sys/dev/drm/drm_edid.c
2005
return ((edid->input & DRM_EDID_INPUT_DIGITAL) != 0);
sys/dev/drm/drm_edid.c
2018
drm_gtf2_hbreak(struct edid *edid)
sys/dev/drm/drm_edid.c
2021
drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);
sys/dev/drm/drm_edid.c
2026
drm_gtf2_2c(struct edid *edid)
sys/dev/drm/drm_edid.c
2029
drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);
sys/dev/drm/drm_edid.c
2034
drm_gtf2_m(struct edid *edid)
sys/dev/drm/drm_edid.c
2037
drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);
sys/dev/drm/drm_edid.c
2042
drm_gtf2_k(struct edid *edid)
sys/dev/drm/drm_edid.c
2045
drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);
sys/dev/drm/drm_edid.c
2050
drm_gtf2_2j(struct edid *edid)
sys/dev/drm/drm_edid.c
2053
drm_for_each_detailed_block((u8 *)edid, find_gtf2, &r);
sys/dev/drm/drm_edid.c
2061
static int standard_timing_level(struct edid *edid)
sys/dev/drm/drm_edid.c
2063
if (edid->revision >= 2) {
sys/dev/drm/drm_edid.c
2064
if (edid->revision >= 4 && (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF))
sys/dev/drm/drm_edid.c
2066
if (drm_gtf2_hbreak(edid))
sys/dev/drm/drm_edid.c
2095
drm_mode_std(struct drm_connector *connector, struct edid *edid,
sys/dev/drm/drm_edid.c
2106
int timing_level = standard_timing_level(edid);
sys/dev/drm/drm_edid.c
2117
if (edid->revision < 3)
sys/dev/drm/drm_edid.c
2160
if (drm_monitor_supports_rb(edid)) {
sys/dev/drm/drm_edid.c
2186
if (drm_mode_hsync(mode) > drm_gtf2_hbreak(edid)) {
sys/dev/drm/drm_edid.c
2190
drm_gtf2_m(edid),
sys/dev/drm/drm_edid.c
2191
drm_gtf2_2c(edid),
sys/dev/drm/drm_edid.c
2192
drm_gtf2_k(edid),
sys/dev/drm/drm_edid.c
2193
drm_gtf2_2j(edid));
sys/dev/drm/drm_edid.c
2257
struct edid *edid,
sys/dev/drm/drm_edid.c
2345
mode->width_mm = edid->width_cm * 10;
sys/dev/drm/drm_edid.c
2346
mode->height_mm = edid->height_cm * 10;
sys/dev/drm/drm_edid.c
2358
struct edid *edid, u8 *t)
sys/dev/drm/drm_edid.c
2363
if (edid->revision >= 4)
sys/dev/drm/drm_edid.c
2366
if (edid->revision >= 4)
sys/dev/drm/drm_edid.c
2375
struct edid *edid, u8 *t)
sys/dev/drm/drm_edid.c
2380
if (edid->revision >= 4)
sys/dev/drm/drm_edid.c
2383
if (edid->revision >= 4)
sys/dev/drm/drm_edid.c
2391
range_pixel_clock(struct edid *edid, u8 *t)
sys/dev/drm/drm_edid.c
2398
if (edid->revision >= 4 && t[10] == 0x04)
sys/dev/drm/drm_edid.c
2406
mode_in_range(const struct drm_display_mode *mode, struct edid *edid,
sys/dev/drm/drm_edid.c
2412
if (!mode_in_hsync_range(mode, edid, t))
sys/dev/drm/drm_edid.c
2415
if (!mode_in_vsync_range(mode, edid, t))
sys/dev/drm/drm_edid.c
2418
if ((max_clock = range_pixel_clock(edid, t)))
sys/dev/drm/drm_edid.c
2423
if (edid->revision >= 4 && t[10] == 0x04)
sys/dev/drm/drm_edid.c
2427
if (mode_is_rb(mode) && !drm_monitor_supports_rb(edid))
sys/dev/drm/drm_edid.c
2452
drm_dmt_modes_for_range(struct drm_connector *connector, struct edid *edid,
sys/dev/drm/drm_edid.c
2460
if (mode_in_range(drm_dmt_modes + i, edid, timing) &&
sys/dev/drm/drm_edid.c
2487
drm_gtf_modes_for_range(struct drm_connector *connector, struct edid *edid,
sys/dev/drm/drm_edid.c
2501
if (!mode_in_range(newmode, edid, timing) ||
sys/dev/drm/drm_edid.c
2515
drm_cvt_modes_for_range(struct drm_connector *connector, struct edid *edid,
sys/dev/drm/drm_edid.c
2521
bool rb = drm_monitor_supports_rb(edid);
sys/dev/drm/drm_edid.c
2530
if (!mode_in_range(newmode, edid, timing) ||
sys/dev/drm/drm_edid.c
2554
closure->edid,
sys/dev/drm/drm_edid.c
2557
if (!version_greater(closure->edid, 1, 1))
sys/dev/drm/drm_edid.c
2564
closure->edid,
sys/dev/drm/drm_edid.c
2568
if (!version_greater(closure->edid, 1, 3))
sys/dev/drm/drm_edid.c
2572
closure->edid,
sys/dev/drm/drm_edid.c
2582
add_inferred_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
2586
.edid = edid,
sys/dev/drm/drm_edid.c
2589
if (version_greater(edid, 1, 0))
sys/dev/drm/drm_edid.c
2590
drm_for_each_detailed_block((u8 *)edid, do_inferred_modes,
sys/dev/drm/drm_edid.c
2644
add_established_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
2647
unsigned long est_bits = edid->established_timings.t1 |
sys/dev/drm/drm_edid.c
2648
(edid->established_timings.t2 << 8) |
sys/dev/drm/drm_edid.c
2649
((edid->established_timings.mfg_rsvd & 0x80) << 9);
sys/dev/drm/drm_edid.c
2653
.edid = edid,
sys/dev/drm/drm_edid.c
2667
if (version_greater(edid, 1, 0))
sys/dev/drm/drm_edid.c
2668
drm_for_each_detailed_block((u8 *)edid,
sys/dev/drm/drm_edid.c
2680
struct edid *edid = closure->edid;
sys/dev/drm/drm_edid.c
2689
newmode = drm_mode_std(connector, edid, std);
sys/dev/drm/drm_edid.c
2707
add_standard_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
2712
.edid = edid,
sys/dev/drm/drm_edid.c
2718
newmode = drm_mode_std(connector, edid,
sys/dev/drm/drm_edid.c
2719
&edid->standard_timings[i]);
sys/dev/drm/drm_edid.c
2726
if (version_greater(edid, 1, 0))
sys/dev/drm/drm_edid.c
2727
drm_for_each_detailed_block((u8 *)edid, do_standard_modes,
sys/dev/drm/drm_edid.c
2795
add_cvt_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
2799
.edid = edid,
sys/dev/drm/drm_edid.c
2802
if (version_greater(edid, 1, 2))
sys/dev/drm/drm_edid.c
2803
drm_for_each_detailed_block((u8 *)edid, do_cvt_mode, &closure);
sys/dev/drm/drm_edid.c
2820
closure->edid, timing,
sys/dev/drm/drm_edid.c
2848
add_detailed_modes(struct drm_connector *connector, struct edid *edid,
sys/dev/drm/drm_edid.c
2853
.edid = edid,
sys/dev/drm/drm_edid.c
2858
if (closure.preferred && !version_greater(edid, 1, 3))
sys/dev/drm/drm_edid.c
2860
(edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING);
sys/dev/drm/drm_edid.c
2862
drm_for_each_detailed_block((u8 *)edid, do_detailed_mode, &closure);
sys/dev/drm/drm_edid.c
2883
static u8 *drm_find_edid_extension(const struct edid *edid, int ext_id)
sys/dev/drm/drm_edid.c
2889
if (edid == NULL || edid->extensions == 0)
sys/dev/drm/drm_edid.c
2893
for (i = 0; i < edid->extensions; i++) {
sys/dev/drm/drm_edid.c
2894
edid_ext = (u8 *)edid + EDID_LENGTH * (i + 1);
sys/dev/drm/drm_edid.c
2899
if (i == edid->extensions)
sys/dev/drm/drm_edid.c
2905
static u8 *drm_find_cea_extension(const struct edid *edid)
sys/dev/drm/drm_edid.c
2907
return drm_find_edid_extension(edid, CEA_EXT);
sys/dev/drm/drm_edid.c
2910
static u8 *drm_find_displayid_extension(const struct edid *edid)
sys/dev/drm/drm_edid.c
2912
return drm_find_edid_extension(edid, DISPLAYID_EXT);
sys/dev/drm/drm_edid.c
3149
add_alternate_cea_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
3157
if (!drm_find_cea_extension(edid))
sys/dev/drm/drm_edid.c
3750
add_cea_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
3752
const u8 *cea = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
3877
static int get_monitor_name(struct edid *edid, char name[13])
sys/dev/drm/drm_edid.c
3882
if (!edid || !name)
sys/dev/drm/drm_edid.c
3885
drm_for_each_detailed_block((u8 *)edid, monitor_name, &edid_name);
sys/dev/drm/drm_edid.c
3903
void drm_edid_get_monitor_name(struct edid *edid, char *name, int bufsize)
sys/dev/drm/drm_edid.c
3911
name_length = min(get_monitor_name(edid, buf), bufsize - 1);
sys/dev/drm/drm_edid.c
3937
static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
3948
if (!edid)
sys/dev/drm/drm_edid.c
3951
cea = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
3957
mnl = get_monitor_name(edid, &eld[DRM_ELD_MONITOR_NAME_STRING]);
sys/dev/drm/drm_edid.c
3965
eld[DRM_ELD_MANUFACTURER_NAME0] = edid->mfg_id[0];
sys/dev/drm/drm_edid.c
3966
eld[DRM_ELD_MANUFACTURER_NAME1] = edid->mfg_id[1];
sys/dev/drm/drm_edid.c
3967
eld[DRM_ELD_PRODUCT_CODE0] = edid->prod_code[0];
sys/dev/drm/drm_edid.c
3968
eld[DRM_ELD_PRODUCT_CODE1] = edid->prod_code[1];
sys/dev/drm/drm_edid.c
4034
int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads)
sys/dev/drm/drm_edid.c
4040
cea = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
4095
int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb)
sys/dev/drm/drm_edid.c
4101
cea = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
4187
bool drm_detect_hdmi_monitor(struct edid *edid)
sys/dev/drm/drm_edid.c
4193
edid_ext = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
4225
bool drm_detect_monitor_audio(struct edid *edid)
sys/dev/drm/drm_edid.c
4232
edid_ext = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
4270
bool drm_rgb_quant_range_selectable(struct edid *edid)
sys/dev/drm/drm_edid.c
4275
edid_ext = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
4458
const struct edid *edid)
sys/dev/drm/drm_edid.c
4464
edid_ext = drm_find_cea_extension(edid);
sys/dev/drm/drm_edid.c
4514
u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edid)
sys/dev/drm/drm_edid.c
4518
u32 quirks = edid_get_quirks(edid);
sys/dev/drm/drm_edid.c
4522
info->width_mm = edid->width_cm * 10;
sys/dev/drm/drm_edid.c
4523
info->height_mm = edid->height_cm * 10;
sys/dev/drm/drm_edid.c
4529
if (edid->revision < 3)
sys/dev/drm/drm_edid.c
4532
if (!(edid->input & DRM_EDID_INPUT_DIGITAL))
sys/dev/drm/drm_edid.c
4535
drm_parse_cea_ext(connector, edid);
sys/dev/drm/drm_edid.c
4544
if ((info->bpc == 0) && (edid->revision < 4) &&
sys/dev/drm/drm_edid.c
4545
(edid->input & DRM_EDID_DIGITAL_TYPE_DVI)) {
sys/dev/drm/drm_edid.c
4552
if (edid->revision < 4)
sys/dev/drm/drm_edid.c
4555
switch (edid->input & DRM_EDID_DIGITAL_DEPTH_MASK) {
sys/dev/drm/drm_edid.c
4584
if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB444)
sys/dev/drm/drm_edid.c
4586
if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB422)
sys/dev/drm/drm_edid.c
4686
struct edid *edid)
sys/dev/drm/drm_edid.c
4695
displayid = drm_find_displayid_extension(edid);
sys/dev/drm/drm_edid.c
4729
int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
sys/dev/drm/drm_edid.c
4734
if (edid == NULL) {
sys/dev/drm/drm_edid.c
4738
if (!drm_edid_is_valid(edid)) {
sys/dev/drm/drm_edid.c
4745
drm_edid_to_eld(connector, edid);
sys/dev/drm/drm_edid.c
4752
quirks = drm_add_display_info(connector, edid);
sys/dev/drm/drm_edid.c
4768
num_modes += add_detailed_modes(connector, edid, quirks);
sys/dev/drm/drm_edid.c
4769
num_modes += add_cvt_modes(connector, edid);
sys/dev/drm/drm_edid.c
4770
num_modes += add_standard_modes(connector, edid);
sys/dev/drm/drm_edid.c
4771
num_modes += add_established_modes(connector, edid);
sys/dev/drm/drm_edid.c
4772
num_modes += add_cea_modes(connector, edid);
sys/dev/drm/drm_edid.c
4773
num_modes += add_alternate_cea_modes(connector, edid);
sys/dev/drm/drm_edid.c
4774
num_modes += add_displayid_detailed_modes(connector, edid);
sys/dev/drm/drm_edid.c
4775
if (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF)
sys/dev/drm/drm_edid.c
4776
num_modes += add_inferred_modes(connector, edid);
sys/dev/drm/drm_edid.c
49
#define version_greater(edid, maj, min) \
sys/dev/drm/drm_edid.c
50
(((edid)->version > (maj)) || \
sys/dev/drm/drm_edid.c
51
((edid)->version == (maj) && (edid)->revision > (min)))
sys/dev/drm/drm_edid.c
5200
struct edid *edid)
sys/dev/drm/drm_edid.c
5205
displayid = drm_find_displayid_extension(edid);
sys/dev/drm/drm_edid.c
95
struct edid *edid;
sys/dev/drm/drm_edid_load.c
43
struct edid *drm_load_edid_firmware(struct drm_connector *connector)
sys/dev/drm/drm_edid_load.c
47
struct edid *fwedid;
sys/dev/drm/drm_edid_load.c
62
fwedid = (struct edid *)do_edid_fw_load(connector, fwname, connector_name);
sys/dev/drm/i915/intel_crt.c
558
static struct edid *intel_crt_get_edid(struct drm_connector *connector,
sys/dev/drm/i915/intel_crt.c
561
struct edid *edid;
sys/dev/drm/i915/intel_crt.c
563
edid = drm_get_edid(connector, i2c);
sys/dev/drm/i915/intel_crt.c
565
if (!edid && !intel_gmbus_is_forced_bit(i2c)) {
sys/dev/drm/i915/intel_crt.c
568
edid = drm_get_edid(connector, i2c);
sys/dev/drm/i915/intel_crt.c
572
return edid;
sys/dev/drm/i915/intel_crt.c
579
struct edid *edid;
sys/dev/drm/i915/intel_crt.c
582
edid = intel_crt_get_edid(connector, adapter);
sys/dev/drm/i915/intel_crt.c
583
if (!edid)
sys/dev/drm/i915/intel_crt.c
586
ret = intel_connector_update_modes(connector, edid);
sys/dev/drm/i915/intel_crt.c
587
kfree(edid);
sys/dev/drm/i915/intel_crt.c
596
struct edid *edid;
sys/dev/drm/i915/intel_crt.c
603
edid = intel_crt_get_edid(connector, i2c);
sys/dev/drm/i915/intel_crt.c
605
if (edid) {
sys/dev/drm/i915/intel_crt.c
606
bool is_digital = edid->input & DRM_EDID_INPUT_DIGITAL;
sys/dev/drm/i915/intel_crt.c
623
kfree(edid);
sys/dev/drm/i915/intel_dp.c
4209
intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_FAILSAFE;
sys/dev/drm/i915/intel_dp.c
4211
struct edid *block = intel_connector->detect_edid;
sys/dev/drm/i915/intel_dp.c
4223
intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_PREFERRED;
sys/dev/drm/i915/intel_dp.c
5005
static struct edid *
sys/dev/drm/i915/intel_dp.c
5011
if (intel_connector->edid) {
sys/dev/drm/i915/intel_dp.c
5013
if (IS_ERR(intel_connector->edid))
sys/dev/drm/i915/intel_dp.c
5016
return drm_edid_duplicate(intel_connector->edid);
sys/dev/drm/i915/intel_dp.c
5026
struct edid *edid;
sys/dev/drm/i915/intel_dp.c
5029
edid = intel_dp_get_edid(intel_dp);
sys/dev/drm/i915/intel_dp.c
5030
intel_connector->detect_edid = edid;
sys/dev/drm/i915/intel_dp.c
5032
intel_dp->has_audio = drm_detect_monitor_audio(edid);
sys/dev/drm/i915/intel_dp.c
5033
drm_dp_cec_set_edid(&intel_dp->aux, edid);
sys/dev/drm/i915/intel_dp.c
5212
struct edid *edid;
sys/dev/drm/i915/intel_dp.c
5214
edid = intel_connector->detect_edid;
sys/dev/drm/i915/intel_dp.c
5215
if (edid) {
sys/dev/drm/i915/intel_dp.c
5216
int ret = intel_connector_update_modes(connector, edid);
sys/dev/drm/i915/intel_dp.c
5278
if (!IS_ERR_OR_NULL(intel_connector->edid))
sys/dev/drm/i915/intel_dp.c
5279
kfree(intel_connector->edid);
sys/dev/drm/i915/intel_dp.c
6423
struct edid *edid;
sys/dev/drm/i915/intel_dp.c
6460
edid = drm_get_edid(connector, &intel_dp->aux.ddc);
sys/dev/drm/i915/intel_dp.c
6461
if (edid) {
sys/dev/drm/i915/intel_dp.c
6462
if (drm_add_edid_modes(connector, edid)) {
sys/dev/drm/i915/intel_dp.c
6464
edid);
sys/dev/drm/i915/intel_dp.c
6466
kfree(edid);
sys/dev/drm/i915/intel_dp.c
6467
edid = ERR_PTR(-EINVAL);
sys/dev/drm/i915/intel_dp.c
6470
edid = ERR_PTR(-ENOENT);
sys/dev/drm/i915/intel_dp.c
6472
intel_connector->edid = edid;
sys/dev/drm/i915/intel_dp_mst.c
313
struct edid *edid;
sys/dev/drm/i915/intel_dp_mst.c
319
edid = drm_dp_mst_get_edid(connector, &intel_dp->mst_mgr, intel_connector->port);
sys/dev/drm/i915/intel_dp_mst.c
320
ret = intel_connector_update_modes(connector, edid);
sys/dev/drm/i915/intel_dp_mst.c
321
kfree(edid);
sys/dev/drm/i915/intel_dp_mst.c
343
if (!IS_ERR_OR_NULL(intel_connector->edid))
sys/dev/drm/i915/intel_dp_mst.c
344
kfree(intel_connector->edid);
sys/dev/drm/i915/intel_drv.h
1063
unsigned long edid;
sys/dev/drm/i915/intel_drv.h
1887
struct edid *edid);
sys/dev/drm/i915/intel_drv.h
414
struct edid *edid;
sys/dev/drm/i915/intel_drv.h
415
struct edid *detect_edid;
sys/dev/drm/i915/intel_hdmi.c
1874
struct edid *edid;
sys/dev/drm/i915/intel_hdmi.c
1882
edid = drm_get_edid(connector, i2c);
sys/dev/drm/i915/intel_hdmi.c
1884
if (!edid && !intel_gmbus_is_forced_bit(i2c)) {
sys/dev/drm/i915/intel_hdmi.c
1887
edid = drm_get_edid(connector, i2c);
sys/dev/drm/i915/intel_hdmi.c
1891
intel_hdmi_dp_dual_mode_detect(connector, edid != NULL);
sys/dev/drm/i915/intel_hdmi.c
1895
to_intel_connector(connector)->detect_edid = edid;
sys/dev/drm/i915/intel_hdmi.c
1896
if (edid && edid->input & DRM_EDID_INPUT_DIGITAL) {
sys/dev/drm/i915/intel_hdmi.c
1898
drm_rgb_quant_range_selectable(edid);
sys/dev/drm/i915/intel_hdmi.c
1900
intel_hdmi->has_audio = drm_detect_monitor_audio(edid);
sys/dev/drm/i915/intel_hdmi.c
1901
intel_hdmi->has_hdmi_sink = drm_detect_hdmi_monitor(edid);
sys/dev/drm/i915/intel_hdmi.c
1907
cec_notifier_set_phys_addr_from_edid(intel_hdmi->cec_notifier, edid);
sys/dev/drm/i915/intel_hdmi.c
1962
struct edid *edid;
sys/dev/drm/i915/intel_hdmi.c
1964
edid = to_intel_connector(connector)->detect_edid;
sys/dev/drm/i915/intel_hdmi.c
1965
if (edid == NULL)
sys/dev/drm/i915/intel_hdmi.c
1968
return intel_connector_update_modes(connector, edid);
sys/dev/drm/i915/intel_lvds.c
1001
if (edid) {
sys/dev/drm/i915/intel_lvds.c
1002
if (drm_add_edid_modes(connector, edid)) {
sys/dev/drm/i915/intel_lvds.c
1004
edid);
sys/dev/drm/i915/intel_lvds.c
1006
kfree(edid);
sys/dev/drm/i915/intel_lvds.c
1007
edid = ERR_PTR(-EINVAL);
sys/dev/drm/i915/intel_lvds.c
1010
edid = ERR_PTR(-ENOENT);
sys/dev/drm/i915/intel_lvds.c
1012
lvds_connector->base.edid = edid;
sys/dev/drm/i915/intel_lvds.c
470
if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
sys/dev/drm/i915/intel_lvds.c
471
return drm_add_edid_modes(connector, lvds_connector->base.edid);
sys/dev/drm/i915/intel_lvds.c
493
if (!IS_ERR_OR_NULL(lvds_connector->base.edid))
sys/dev/drm/i915/intel_lvds.c
494
kfree(lvds_connector->base.edid);
sys/dev/drm/i915/intel_lvds.c
869
struct edid *edid;
sys/dev/drm/i915/intel_lvds.c
996
edid = drm_get_edid_switcheroo(connector,
sys/dev/drm/i915/intel_lvds.c
999
edid = drm_get_edid(connector,
sys/dev/drm/i915/intel_modes.c
39
struct edid *edid)
sys/dev/drm/i915/intel_modes.c
43
drm_connector_update_edid_property(connector, edid);
sys/dev/drm/i915/intel_modes.c
44
ret = drm_add_edid_modes(connector, edid);
sys/dev/drm/i915/intel_modes.c
59
struct edid *edid;
sys/dev/drm/i915/intel_modes.c
62
edid = drm_get_edid(connector, adapter);
sys/dev/drm/i915/intel_modes.c
63
if (!edid)
sys/dev/drm/i915/intel_modes.c
66
ret = intel_connector_update_modes(connector, edid);
sys/dev/drm/i915/intel_modes.c
67
kfree(edid);
sys/dev/drm/i915/intel_sdvo.c
1739
static struct edid *
sys/dev/drm/i915/intel_sdvo.c
1747
static struct edid *
sys/dev/drm/i915/intel_sdvo.c
1764
struct edid *edid;
sys/dev/drm/i915/intel_sdvo.c
1766
edid = intel_sdvo_get_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1768
if (edid == NULL && intel_sdvo_multifunc_encoder(intel_sdvo)) {
sys/dev/drm/i915/intel_sdvo.c
1777
edid = intel_sdvo_get_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1778
if (edid)
sys/dev/drm/i915/intel_sdvo.c
1785
if (edid == NULL)
sys/dev/drm/i915/intel_sdvo.c
1793
if (edid == NULL)
sys/dev/drm/i915/intel_sdvo.c
1794
edid = intel_sdvo_get_analog_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1797
if (edid != NULL) {
sys/dev/drm/i915/intel_sdvo.c
1799
if (edid->input & DRM_EDID_INPUT_DIGITAL) {
sys/dev/drm/i915/intel_sdvo.c
1802
intel_sdvo->has_hdmi_monitor = drm_detect_hdmi_monitor(edid);
sys/dev/drm/i915/intel_sdvo.c
1803
intel_sdvo->has_hdmi_audio = drm_detect_monitor_audio(edid);
sys/dev/drm/i915/intel_sdvo.c
1805
drm_rgb_quant_range_selectable(edid);
sys/dev/drm/i915/intel_sdvo.c
1809
kfree(edid);
sys/dev/drm/i915/intel_sdvo.c
1817
struct edid *edid)
sys/dev/drm/i915/intel_sdvo.c
1819
bool monitor_is_digital = !!(edid->input & DRM_EDID_INPUT_DIGITAL);
sys/dev/drm/i915/intel_sdvo.c
1861
struct edid *edid;
sys/dev/drm/i915/intel_sdvo.c
1864
edid = intel_sdvo_get_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1865
if (edid == NULL)
sys/dev/drm/i915/intel_sdvo.c
1866
edid = intel_sdvo_get_analog_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1867
if (edid != NULL) {
sys/dev/drm/i915/intel_sdvo.c
1869
edid))
sys/dev/drm/i915/intel_sdvo.c
1874
kfree(edid);
sys/dev/drm/i915/intel_sdvo.c
1884
struct edid *edid;
sys/dev/drm/i915/intel_sdvo.c
1890
edid = intel_sdvo_get_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1898
if (edid == NULL)
sys/dev/drm/i915/intel_sdvo.c
1899
edid = intel_sdvo_get_analog_edid(connector);
sys/dev/drm/i915/intel_sdvo.c
1901
if (edid != NULL) {
sys/dev/drm/i915/intel_sdvo.c
1903
edid)) {
sys/dev/drm/i915/intel_sdvo.c
1904
drm_connector_update_edid_property(connector, edid);
sys/dev/drm/i915/intel_sdvo.c
1905
drm_add_edid_modes(connector, edid);
sys/dev/drm/i915/intel_sdvo.c
1908
kfree(edid);
sys/dev/drm/include/drm/drm_connector.h
1266
const struct edid *edid);
sys/dev/drm/include/drm/drm_connector.h
43
struct edid;
sys/dev/drm/include/drm/drm_crtc.h
58
struct edid;
sys/dev/drm/include/drm/drm_dp_helper.h
1083
struct edid;
sys/dev/drm/include/drm/drm_dp_helper.h
1290
void drm_dp_cec_set_edid(struct drm_dp_aux *aux, const struct edid *edid);
sys/dev/drm/include/drm/drm_dp_helper.h
1308
const struct edid *edid)
sys/dev/drm/include/drm/drm_dp_mst_helper.h
591
struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port);
sys/dev/drm/include/drm/drm_dp_mst_helper.h
95
struct edid *cached_edid;
sys/dev/drm/include/drm/drm_edid.h
336
int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads);
sys/dev/drm/include/drm/drm_edid.h
337
int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb);
sys/dev/drm/include/drm/drm_edid.h
342
struct edid *drm_load_edid_firmware(struct drm_connector *connector);
sys/dev/drm/include/drm/drm_edid.h
346
static inline struct edid *
sys/dev/drm/include/drm/drm_edid.h
459
struct edid *drm_do_get_edid(struct drm_connector *connector,
sys/dev/drm/include/drm/drm_edid.h
463
struct edid *drm_get_edid(struct drm_connector *connector,
sys/dev/drm/include/drm/drm_edid.h
465
struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
sys/dev/drm/include/drm/drm_edid.h
467
struct edid *drm_edid_duplicate(const struct edid *edid);
sys/dev/drm/include/drm/drm_edid.h
468
int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
sys/dev/drm/include/drm/drm_edid.h
472
bool drm_detect_hdmi_monitor(struct edid *edid);
sys/dev/drm/include/drm/drm_edid.h
473
bool drm_detect_monitor_audio(struct edid *edid);
sys/dev/drm/include/drm/drm_edid.h
474
bool drm_rgb_quant_range_selectable(struct edid *edid);
sys/dev/drm/include/drm/drm_edid.h
485
bool drm_edid_is_valid(struct edid *edid);
sys/dev/drm/include/drm/drm_edid.h
486
void drm_edid_get_monitor_name(struct edid *edid, char *name,
sys/dev/drm/radeon/radeon_atombios.c
1720
struct edid *edid;
sys/dev/drm/radeon/radeon_atombios.c
1723
edid = kmalloc(edid_size, M_DRM, M_WAITOK);
sys/dev/drm/radeon/radeon_atombios.c
1724
if (edid) {
sys/dev/drm/radeon/radeon_atombios.c
1725
memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0],
sys/dev/drm/radeon/radeon_atombios.c
1728
if (drm_edid_is_valid(edid)) {
sys/dev/drm/radeon/radeon_atombios.c
1729
rdev->mode_info.bios_hardcoded_edid = edid;
sys/dev/drm/radeon/radeon_atombios.c
1732
kfree(edid);
sys/dev/drm/radeon/radeon_combios.c
367
struct edid *edid;
sys/dev/drm/radeon/radeon_combios.c
375
edid = kmalloc(size, M_DRM, M_WAITOK);
sys/dev/drm/radeon/radeon_combios.c
376
if (edid == NULL)
sys/dev/drm/radeon/radeon_combios.c
379
memcpy((unsigned char *)edid, raw, size);
sys/dev/drm/radeon/radeon_combios.c
381
if (!drm_edid_is_valid(edid)) {
sys/dev/drm/radeon/radeon_combios.c
382
kfree(edid);
sys/dev/drm/radeon/radeon_combios.c
386
rdev->mode_info.bios_hardcoded_edid = edid;
sys/dev/drm/radeon/radeon_combios.c
392
struct edid *
sys/dev/drm/radeon/radeon_combios.c
395
struct edid *edid;
sys/dev/drm/radeon/radeon_combios.c
398
edid = kmalloc(rdev->mode_info.bios_hardcoded_edid_size,
sys/dev/drm/radeon/radeon_combios.c
400
if (edid) {
sys/dev/drm/radeon/radeon_combios.c
401
memcpy((unsigned char *)edid,
sys/dev/drm/radeon/radeon_combios.c
404
return edid;
sys/dev/drm/radeon/radeon_connectors.c
1054
if (!radeon_connector->edid) {
sys/dev/drm/radeon/radeon_connectors.c
1060
!!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
sys/dev/drm/radeon/radeon_connectors.c
1300
if (!radeon_connector->edid) {
sys/dev/drm/radeon/radeon_connectors.c
1317
!!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL);
sys/dev/drm/radeon/radeon_connectors.c
281
struct edid *radeon_connector_edid(struct drm_connector *connector)
sys/dev/drm/radeon/radeon_connectors.c
286
if (radeon_connector->edid) {
sys/dev/drm/radeon/radeon_connectors.c
287
return radeon_connector->edid;
sys/dev/drm/radeon/radeon_connectors.c
289
struct edid *edid = kmemdup(edid_blob->data, edid_blob->length, GFP_KERNEL);
sys/dev/drm/radeon/radeon_connectors.c
290
if (edid)
sys/dev/drm/radeon/radeon_connectors.c
291
radeon_connector->edid = edid;
sys/dev/drm/radeon/radeon_connectors.c
293
return radeon_connector->edid;
sys/dev/drm/radeon/radeon_connectors.c
302
if (radeon_connector->edid)
sys/dev/drm/radeon/radeon_connectors.c
312
radeon_connector->edid = drm_get_edid(connector,
sys/dev/drm/radeon/radeon_connectors.c
321
radeon_connector->edid = drm_get_edid(&radeon_connector->base,
sys/dev/drm/radeon/radeon_connectors.c
324
radeon_connector->edid = drm_get_edid(&radeon_connector->base,
sys/dev/drm/radeon/radeon_connectors.c
329
radeon_connector->edid = drm_get_edid_switcheroo(&radeon_connector->base,
sys/dev/drm/radeon/radeon_connectors.c
332
radeon_connector->edid = drm_get_edid(&radeon_connector->base,
sys/dev/drm/radeon/radeon_connectors.c
336
if (!radeon_connector->edid) {
sys/dev/drm/radeon/radeon_connectors.c
347
radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev);
sys/dev/drm/radeon/radeon_connectors.c
350
radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev);
sys/dev/drm/radeon/radeon_connectors.c
359
if (radeon_connector->edid) {
sys/dev/drm/radeon/radeon_connectors.c
360
kfree(radeon_connector->edid);
sys/dev/drm/radeon/radeon_connectors.c
361
radeon_connector->edid = NULL;
sys/dev/drm/radeon/radeon_connectors.c
370
if (radeon_connector->edid) {
sys/dev/drm/radeon/radeon_connectors.c
371
drm_connector_update_edid_property(connector, radeon_connector->edid);
sys/dev/drm/radeon/radeon_connectors.c
372
ret = drm_add_edid_modes(connector, radeon_connector->edid);
sys/dev/drm/radeon/radeon_connectors.c
911
if (radeon_connector->edid)
sys/dev/drm/radeon/radeon_dp_mst.c
190
struct edid *edid;
sys/dev/drm/radeon/radeon_dp_mst.c
193
edid = drm_dp_mst_get_edid(connector, &master->mst_mgr, radeon_connector->port);
sys/dev/drm/radeon/radeon_dp_mst.c
194
radeon_connector->edid = edid;
sys/dev/drm/radeon/radeon_dp_mst.c
195
DRM_DEBUG_KMS("edid retrieved %p\n", edid);
sys/dev/drm/radeon/radeon_dp_mst.c
196
if (radeon_connector->edid) {
sys/dev/drm/radeon/radeon_dp_mst.c
197
drm_connector_update_edid_property(&radeon_connector->base, radeon_connector->edid);
sys/dev/drm/radeon/radeon_dp_mst.c
198
ret = drm_add_edid_modes(&radeon_connector->base, radeon_connector->edid);
sys/dev/drm/radeon/radeon_mode.h
268
struct edid *bios_hardcoded_edid;
sys/dev/drm/radeon/radeon_mode.h
554
struct edid *edid;
sys/dev/drm/radeon/radeon_mode.h
745
extern struct edid *radeon_connector_edid(struct drm_connector *connector);
sys/dev/drm/radeon/radeon_mode.h
885
extern struct edid *