Lines Matching refs:edid
155 static int edid_size(const u8 *edid, int data_size) in edid_size() argument
160 return (edid[0x7e] + 1) * EDID_LENGTH; in edid_size()
168 u8 *edid; in edid_load() local
209 edid = ERR_PTR(-EINVAL); in edid_load()
213 edid = kmemdup(fwdata, fwsize, GFP_KERNEL); in edid_load()
214 if (edid == NULL) { in edid_load()
215 edid = ERR_PTR(-ENOMEM); in edid_load()
219 if (!drm_edid_block_valid(edid, 0, print_bad_edid)) { in edid_load()
223 kfree(edid); in edid_load()
224 edid = ERR_PTR(-EINVAL); in edid_load()
228 for (i = 1; i <= edid[0x7e]; i++) { in edid_load()
230 memcpy(edid + (valid_extensions + 1) * EDID_LENGTH, in edid_load()
231 edid + i * EDID_LENGTH, EDID_LENGTH); in edid_load()
232 if (drm_edid_block_valid(edid + i * EDID_LENGTH, i, print_bad_edid)) in edid_load()
236 if (valid_extensions != edid[0x7e]) { in edid_load()
239 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions; in edid_load()
242 edid[0x7e], name, connector_name); in edid_load()
243 edid[0x7e] = valid_extensions; in edid_load()
245 new_edid = krealloc(edid, (valid_extensions + 1) * EDID_LENGTH, in edid_load()
248 edid = new_edid; in edid_load()
258 return edid; in edid_load()
266 struct edid *edid; in drm_load_edid_firmware() local
284 edid = edid_load(connector, edidname, connector_name); in drm_load_edid_firmware()
285 if (IS_ERR_OR_NULL(edid)) in drm_load_edid_firmware()
288 drm_mode_connector_update_edid_property(connector, edid); in drm_load_edid_firmware()
289 ret = drm_add_edid_modes(connector, edid); in drm_load_edid_firmware()
290 drm_edid_to_eld(connector, edid); in drm_load_edid_firmware()
291 kfree(edid); in drm_load_edid_firmware()