Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/edid: abstract override/firmware EDID retrieval

Abstract the debugfs override and the firmware EDID retrieval
function. We'll be needing it in the follow-up. No functional changes.

Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Harish Chegondi <harish.chegondi@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tested-by: Tested-by: Paul Wise <pabs3@bonedaddy.net>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190607110513.12072-1-jani.nikula@intel.com

+17 -8
+17 -8
drivers/gpu/drm/drm_edid.c
··· 1570 1570 } 1571 1571 } 1572 1572 1573 + /* Get override or firmware EDID */ 1574 + static struct edid *drm_get_override_edid(struct drm_connector *connector) 1575 + { 1576 + struct edid *override = NULL; 1577 + 1578 + if (connector->override_edid) 1579 + override = drm_edid_duplicate(connector->edid_blob_ptr->data); 1580 + 1581 + if (!override) 1582 + override = drm_load_edid_firmware(connector); 1583 + 1584 + return IS_ERR(override) ? NULL : override; 1585 + } 1586 + 1573 1587 /** 1574 1588 * drm_do_get_edid - get EDID data using a custom EDID block read function 1575 1589 * @connector: connector we're probing ··· 1611 1597 { 1612 1598 int i, j = 0, valid_extensions = 0; 1613 1599 u8 *edid, *new; 1614 - struct edid *override = NULL; 1600 + struct edid *override; 1615 1601 1616 - if (connector->override_edid) 1617 - override = drm_edid_duplicate(connector->edid_blob_ptr->data); 1618 - 1619 - if (!override) 1620 - override = drm_load_edid_firmware(connector); 1621 - 1622 - if (!IS_ERR_OR_NULL(override)) 1602 + override = drm_get_override_edid(connector); 1603 + if (override) 1623 1604 return override; 1624 1605 1625 1606 if ((edid = kmalloc(EDID_LENGTH, GFP_KERNEL)) == NULL)