Loading drivers/gpu/drm/drm_edid_load.c +4 −13 Original line number Diff line number Diff line Loading @@ -261,15 +261,14 @@ out: return edid; } int drm_load_edid_firmware(struct drm_connector *connector) struct edid *drm_load_edid_firmware(struct drm_connector *connector) { const char *connector_name = connector->name; char *edidname, *last, *colon, *fwstr, *edidstr, *fallback = NULL; int ret; struct edid *edid; if (edid_firmware[0] == '\0') return 0; return ERR_PTR(-ENOENT); /* * If there are multiple edid files specified and separated Loading Loading @@ -298,7 +297,7 @@ int drm_load_edid_firmware(struct drm_connector *connector) if (!edidname) { if (!fallback) { kfree(fwstr); return 0; return ERR_PTR(-ENOENT); } edidname = fallback; } Loading @@ -310,13 +309,5 @@ int drm_load_edid_firmware(struct drm_connector *connector) edid = edid_load(connector, edidname, connector_name); kfree(fwstr); if (IS_ERR_OR_NULL(edid)) return 0; drm_mode_connector_update_edid_property(connector, edid); ret = drm_add_edid_modes(connector, edid); drm_edid_to_eld(connector, edid); kfree(edid); return ret; return edid; } drivers/gpu/drm/drm_probe_helper.c +7 −1 Original line number Diff line number Diff line Loading @@ -205,7 +205,13 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect count = drm_add_edid_modes(connector, edid); drm_edid_to_eld(connector, edid); } else { count = drm_load_edid_firmware(connector); struct edid *edid = drm_load_edid_firmware(connector); if (!IS_ERR_OR_NULL(edid)) { drm_mode_connector_update_edid_property(connector, edid); count = drm_add_edid_modes(connector, edid); drm_edid_to_eld(connector, edid); kfree(edid); } if (count == 0) count = (*connector_funcs->get_modes)(connector); } Loading include/drm/drm_edid.h +4 −3 Original line number Diff line number Diff line Loading @@ -348,11 +348,12 @@ int drm_av_sync_delay(struct drm_connector *connector, struct drm_connector *drm_select_eld(struct drm_encoder *encoder); #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE int drm_load_edid_firmware(struct drm_connector *connector); struct edid *drm_load_edid_firmware(struct drm_connector *connector); #else static inline int drm_load_edid_firmware(struct drm_connector *connector) static inline struct edid * drm_load_edid_firmware(struct drm_connector *connector) { return 0; return ERR_PTR(-ENOENT); } #endif Loading Loading
drivers/gpu/drm/drm_edid_load.c +4 −13 Original line number Diff line number Diff line Loading @@ -261,15 +261,14 @@ out: return edid; } int drm_load_edid_firmware(struct drm_connector *connector) struct edid *drm_load_edid_firmware(struct drm_connector *connector) { const char *connector_name = connector->name; char *edidname, *last, *colon, *fwstr, *edidstr, *fallback = NULL; int ret; struct edid *edid; if (edid_firmware[0] == '\0') return 0; return ERR_PTR(-ENOENT); /* * If there are multiple edid files specified and separated Loading Loading @@ -298,7 +297,7 @@ int drm_load_edid_firmware(struct drm_connector *connector) if (!edidname) { if (!fallback) { kfree(fwstr); return 0; return ERR_PTR(-ENOENT); } edidname = fallback; } Loading @@ -310,13 +309,5 @@ int drm_load_edid_firmware(struct drm_connector *connector) edid = edid_load(connector, edidname, connector_name); kfree(fwstr); if (IS_ERR_OR_NULL(edid)) return 0; drm_mode_connector_update_edid_property(connector, edid); ret = drm_add_edid_modes(connector, edid); drm_edid_to_eld(connector, edid); kfree(edid); return ret; return edid; }
drivers/gpu/drm/drm_probe_helper.c +7 −1 Original line number Diff line number Diff line Loading @@ -205,7 +205,13 @@ static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connect count = drm_add_edid_modes(connector, edid); drm_edid_to_eld(connector, edid); } else { count = drm_load_edid_firmware(connector); struct edid *edid = drm_load_edid_firmware(connector); if (!IS_ERR_OR_NULL(edid)) { drm_mode_connector_update_edid_property(connector, edid); count = drm_add_edid_modes(connector, edid); drm_edid_to_eld(connector, edid); kfree(edid); } if (count == 0) count = (*connector_funcs->get_modes)(connector); } Loading
include/drm/drm_edid.h +4 −3 Original line number Diff line number Diff line Loading @@ -348,11 +348,12 @@ int drm_av_sync_delay(struct drm_connector *connector, struct drm_connector *drm_select_eld(struct drm_encoder *encoder); #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE int drm_load_edid_firmware(struct drm_connector *connector); struct edid *drm_load_edid_firmware(struct drm_connector *connector); #else static inline int drm_load_edid_firmware(struct drm_connector *connector) static inline struct edid * drm_load_edid_firmware(struct drm_connector *connector) { return 0; return ERR_PTR(-ENOENT); } #endif Loading