Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5d60827 authored by Ben Skeggs's avatar Ben Skeggs Committed by Dave Airlie
Browse files

drm/nouveau: fix panels using straps-based mode detection



nouveau_bios_fp_mode() zeroes the mode struct before filling in relevant
entries.  This nukes the mode id initialised by drm_mode_create(), and
causes warnings from idr when we try to remove the mode.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 0fbecd40
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -558,8 +558,10 @@ nouveau_connector_get_modes(struct drm_connector *connector)
	if (nv_encoder->dcb->type == OUTPUT_LVDS &&
	    (nv_encoder->dcb->lvdsconf.use_straps_for_mode ||
	     dev_priv->vbios.fp_no_ddc) && nouveau_bios_fp_mode(dev, NULL)) {
		nv_connector->native_mode = drm_mode_create(dev);
		nouveau_bios_fp_mode(dev, nv_connector->native_mode);
		struct drm_display_mode mode;

		nouveau_bios_fp_mode(dev, &mode);
		nv_connector->native_mode = drm_mode_duplicate(dev, &mode);
	}

	/* Find the native mode if this is a digital panel, if we didn't