On Wed, Jun 08, 2022 at 10:50:37AM +0300, Jani Nikula wrote:
Abstract the .get_modes() connector helper call, including the override/firmware EDID fallback, for clarity.
Signed-off-by: Jani Nikula jani.nikula@intel.com
Reviewed-by: Ville Syrjälä ville.syrjala@linux.intel.com
drivers/gpu/drm/drm_probe_helper.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c index 75a71649b64d..a8d26b29bfa0 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c @@ -354,6 +354,24 @@ drm_helper_probe_detect(struct drm_connector *connector, } EXPORT_SYMBOL(drm_helper_probe_detect);
+static int drm_helper_probe_get_modes(struct drm_connector *connector) +{
- const struct drm_connector_helper_funcs *connector_funcs =
connector->helper_private;
- int count;
- count = connector_funcs->get_modes(connector);
- /*
* Fallback for when DDC probe failed in drm_get_edid() and thus skipped
* override/firmware EDID.
*/
- if (count == 0 && connector->status == connector_status_connected)
count = drm_add_override_edid_modes(connector);
- return count;
+}
static int __drm_helper_update_and_validate(struct drm_connector *connector, uint32_t maxX, uint32_t maxY, struct drm_modeset_acquire_ctx *ctx) @@ -473,8 +491,6 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, { struct drm_device *dev = connector->dev; struct drm_display_mode *mode;
- const struct drm_connector_helper_funcs *connector_funcs =
int count = 0, ret; enum drm_connector_status old_status; struct drm_modeset_acquire_ctx ctx;connector->helper_private;
@@ -559,14 +575,7 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, goto exit; }
- count = (*connector_funcs->get_modes)(connector);
- /*
* Fallback for when DDC probe failed in drm_get_edid() and thus skipped
* override/firmware EDID.
*/
- if (count == 0 && connector->status == connector_status_connected)
count = drm_add_override_edid_modes(connector);
count = drm_helper_probe_get_modes(connector);
if (count == 0 && (connector->status == connector_status_connected || connector->status == connector_status_unknown)) {
-- 2.30.2