Lines Matching refs:edid
36 "edid/800x600.bin",
37 "edid/1024x768.bin",
38 "edid/1280x1024.bin",
39 "edid/1600x1200.bin",
40 "edid/1680x1050.bin",
41 "edid/1920x1080.bin",
155 static int edid_size(const u8 *edid, int data_size)
160 return (edid[0x7e] + 1) * EDID_LENGTH;
168 u8 *edid;
209 edid = ERR_PTR(-EINVAL);
213 edid = kmemdup(fwdata, fwsize, GFP_KERNEL);
214 if (edid == NULL) {
215 edid = ERR_PTR(-ENOMEM);
219 if (!drm_edid_block_valid(edid, 0, print_bad_edid)) {
223 kfree(edid);
224 edid = ERR_PTR(-EINVAL);
228 for (i = 1; i <= edid[0x7e]; i++) {
230 memcpy(edid + (valid_extensions + 1) * EDID_LENGTH,
231 edid + i * EDID_LENGTH, EDID_LENGTH);
232 if (drm_edid_block_valid(edid + i * EDID_LENGTH, i, print_bad_edid))
236 if (valid_extensions != edid[0x7e]) {
239 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions;
242 edid[0x7e], name, connector_name);
243 edid[0x7e] = valid_extensions;
245 new_edid = krealloc(edid, (valid_extensions + 1) * EDID_LENGTH,
248 edid = new_edid;
259 return edid;
267 struct edid *edid;
285 edid = edid_load(connector, edidname, connector_name);
286 if (IS_ERR_OR_NULL(edid))
289 drm_mode_connector_update_edid_property(connector, edid);
290 ret = drm_add_edid_modes(connector, edid);
291 kfree(edid);