diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2012-08-13 06:22:34 -0400 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-08-17 03:21:35 -0400 |
| commit | 4eab81366465aedcfd26de960c595bc03599c09f (patch) | |
| tree | 1f109301709fb7a0bc5c0f50ce60da439b5689cd /drivers/gpu | |
| parent | a843af186c3157cee58f1cf689385ab906e1f109 (diff) | |
drm/i915: extract connector update from intel_ddc_get_modes() for reuse
Refactor the connector update part of intel_ddc_get_modes() into a separate
intel_connector_update_modes() function for reuse. No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=45881
Tested-by: Alex Ferrando <alferpal@gmail.com>
Cc: stable@vger.kernel.org (for 3.4+3.5)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_modes.c | 31 |
2 files changed, 24 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 132ab511b90c..cd54cf88a28f 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
| @@ -342,6 +342,8 @@ struct intel_fbc_work { | |||
| 342 | int interval; | 342 | int interval; |
| 343 | }; | 343 | }; |
| 344 | 344 | ||
| 345 | int intel_connector_update_modes(struct drm_connector *connector, | ||
| 346 | struct edid *edid); | ||
| 345 | int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter); | 347 | int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter); |
| 346 | 348 | ||
| 347 | extern void intel_attach_force_audio_property(struct drm_connector *connector); | 349 | extern void intel_attach_force_audio_property(struct drm_connector *connector); |
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c index 45848b9b670b..29b72593fbb2 100644 --- a/drivers/gpu/drm/i915/intel_modes.c +++ b/drivers/gpu/drm/i915/intel_modes.c | |||
| @@ -33,6 +33,25 @@ | |||
| 33 | #include "i915_drv.h" | 33 | #include "i915_drv.h" |
| 34 | 34 | ||
| 35 | /** | 35 | /** |
| 36 | * intel_connector_update_modes - update connector from edid | ||
| 37 | * @connector: DRM connector device to use | ||
| 38 | * @edid: previously read EDID information | ||
| 39 | */ | ||
| 40 | int intel_connector_update_modes(struct drm_connector *connector, | ||
| 41 | struct edid *edid) | ||
| 42 | { | ||
| 43 | int ret; | ||
| 44 | |||
| 45 | drm_mode_connector_update_edid_property(connector, edid); | ||
| 46 | ret = drm_add_edid_modes(connector, edid); | ||
| 47 | drm_edid_to_eld(connector, edid); | ||
| 48 | connector->display_info.raw_edid = NULL; | ||
| 49 | kfree(edid); | ||
| 50 | |||
| 51 | return ret; | ||
| 52 | } | ||
| 53 | |||
| 54 | /** | ||
| 36 | * intel_ddc_get_modes - get modelist from monitor | 55 | * intel_ddc_get_modes - get modelist from monitor |
| 37 | * @connector: DRM connector device to use | 56 | * @connector: DRM connector device to use |
| 38 | * @adapter: i2c adapter | 57 | * @adapter: i2c adapter |
| @@ -43,18 +62,12 @@ int intel_ddc_get_modes(struct drm_connector *connector, | |||
| 43 | struct i2c_adapter *adapter) | 62 | struct i2c_adapter *adapter) |
| 44 | { | 63 | { |
| 45 | struct edid *edid; | 64 | struct edid *edid; |
| 46 | int ret = 0; | ||
| 47 | 65 | ||
| 48 | edid = drm_get_edid(connector, adapter); | 66 | edid = drm_get_edid(connector, adapter); |
| 49 | if (edid) { | 67 | if (!edid) |
| 50 | drm_mode_connector_update_edid_property(connector, edid); | 68 | return 0; |
| 51 | ret = drm_add_edid_modes(connector, edid); | ||
| 52 | drm_edid_to_eld(connector, edid); | ||
| 53 | connector->display_info.raw_edid = NULL; | ||
| 54 | kfree(edid); | ||
| 55 | } | ||
| 56 | 69 | ||
| 57 | return ret; | 70 | return intel_connector_update_modes(connector, edid); |
| 58 | } | 71 | } |
| 59 | 72 | ||
| 60 | static const struct drm_prop_enum_list force_audio_names[] = { | 73 | static const struct drm_prop_enum_list force_audio_names[] = { |
