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: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Родитель
9bb5863ab4
Коммит
80dad869a3
|
@ -594,8 +594,10 @@ nouveau_connector_get_modes(struct drm_connector *connector)
|
||||||
if (nv_encoder->dcb->type == OUTPUT_LVDS &&
|
if (nv_encoder->dcb->type == OUTPUT_LVDS &&
|
||||||
(nv_encoder->dcb->lvdsconf.use_straps_for_mode ||
|
(nv_encoder->dcb->lvdsconf.use_straps_for_mode ||
|
||||||
dev_priv->vbios.fp_no_ddc) && nouveau_bios_fp_mode(dev, NULL)) {
|
dev_priv->vbios.fp_no_ddc) && nouveau_bios_fp_mode(dev, NULL)) {
|
||||||
nv_connector->native_mode = drm_mode_create(dev);
|
struct drm_display_mode mode;
|
||||||
nouveau_bios_fp_mode(dev, nv_connector->native_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
|
/* Find the native mode if this is a digital panel, if we didn't
|
||||||
|
|
Загрузка…
Ссылка в новой задаче