|
@@ -32,6 +32,25 @@
|
|
|
#include "intel_drv.h"
|
|
|
#include "i915_drv.h"
|
|
|
|
|
|
+/**
|
|
|
+ * intel_connector_update_modes - update connector from edid
|
|
|
+ * @connector: DRM connector device to use
|
|
|
+ * @edid: previously read EDID information
|
|
|
+ */
|
|
|
+int intel_connector_update_modes(struct drm_connector *connector,
|
|
|
+ struct edid *edid)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ drm_mode_connector_update_edid_property(connector, edid);
|
|
|
+ ret = drm_add_edid_modes(connector, edid);
|
|
|
+ drm_edid_to_eld(connector, edid);
|
|
|
+ connector->display_info.raw_edid = NULL;
|
|
|
+ kfree(edid);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* intel_ddc_get_modes - get modelist from monitor
|
|
|
* @connector: DRM connector device to use
|
|
@@ -43,18 +62,12 @@ int intel_ddc_get_modes(struct drm_connector *connector,
|
|
|
struct i2c_adapter *adapter)
|
|
|
{
|
|
|
struct edid *edid;
|
|
|
- int ret = 0;
|
|
|
|
|
|
edid = drm_get_edid(connector, adapter);
|
|
|
- if (edid) {
|
|
|
- drm_mode_connector_update_edid_property(connector, edid);
|
|
|
- ret = drm_add_edid_modes(connector, edid);
|
|
|
- drm_edid_to_eld(connector, edid);
|
|
|
- connector->display_info.raw_edid = NULL;
|
|
|
- kfree(edid);
|
|
|
- }
|
|
|
+ if (!edid)
|
|
|
+ return 0;
|
|
|
|
|
|
- return ret;
|
|
|
+ return intel_connector_update_modes(connector, edid);
|
|
|
}
|
|
|
|
|
|
static const struct drm_prop_enum_list force_audio_names[] = {
|