|
@@ -256,15 +256,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
|
|
@@ -293,7 +292,7 @@ int drm_load_edid_firmware(struct drm_connector *connector)
|
|
|
if (!edidname) {
|
|
|
if (!fallback) {
|
|
|
kfree(fwstr);
|
|
|
- return 0;
|
|
|
+ return ERR_PTR(-ENOENT);
|
|
|
}
|
|
|
edidname = fallback;
|
|
|
}
|
|
@@ -305,13 +304,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;
|
|
|
}
|