dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Zack Rusin <zack@kde.org>
To: dri-devel@lists.freedesktop.org
Cc: krastevm@vmware.com, mombasawalam@vmware.com
Subject: [PATCH 2/8] drm/vmwgfx: Cleanup multimon initialization code
Date: Wed,  2 Mar 2022 10:24:20 -0500	[thread overview]
Message-ID: <20220302152426.885214-3-zack@kde.org> (raw)
In-Reply-To: <20220302152426.885214-1-zack@kde.org>

From: Zack Rusin <zackr@vmware.com>

The results of the legacy display unit initialization were being silently
ignored. Unifying the selection of number of display units based
on whether the underlying device supports multimon makes it easier
to add error checking to all paths.

This makes the driver report the errors in ldu initialization paths
and try to recover from them.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Martin Krastev <krastevm@vmware.com>
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index 643c1608ddfd..e4347faccee0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -492,6 +492,8 @@ int vmw_kms_ldu_init_display(struct vmw_private *dev_priv)
 {
 	struct drm_device *dev = &dev_priv->drm;
 	int i, ret;
+	int num_display_units = (dev_priv->capabilities & SVGA_CAP_MULTIMON) ?
+					VMWGFX_NUM_DISPLAY_UNITS : 1;
 
 	if (unlikely(dev_priv->ldu_priv)) {
 		return -EINVAL;
@@ -506,21 +508,17 @@ int vmw_kms_ldu_init_display(struct vmw_private *dev_priv)
 	dev_priv->ldu_priv->last_num_active = 0;
 	dev_priv->ldu_priv->fb = NULL;
 
-	/* for old hardware without multimon only enable one display */
-	if (dev_priv->capabilities & SVGA_CAP_MULTIMON)
-		ret = drm_vblank_init(dev, VMWGFX_NUM_DISPLAY_UNITS);
-	else
-		ret = drm_vblank_init(dev, 1);
+	ret = drm_vblank_init(dev, num_display_units);
 	if (ret != 0)
 		goto err_free;
 
 	vmw_kms_create_implicit_placement_property(dev_priv);
 
-	if (dev_priv->capabilities & SVGA_CAP_MULTIMON)
-		for (i = 0; i < VMWGFX_NUM_DISPLAY_UNITS; ++i)
-			vmw_ldu_init(dev_priv, i);
-	else
-		vmw_ldu_init(dev_priv, 0);
+	for (i = 0; i < num_display_units; ++i) {
+		ret = vmw_ldu_init(dev_priv, i);
+		if (ret != 0)
+			goto err_free;
+	}
 
 	dev_priv->active_display_unit = vmw_du_legacy;
 
-- 
2.32.0


  parent reply	other threads:[~2022-03-02 15:24 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-02 15:24 [PATCH 0/8] drm/vmwgfx: 3D on arm64 and large cursor support Zack Rusin
2022-03-02 15:24 ` [PATCH 1/8] drm/vmwgfx: Add support for CursorMob and CursorBypass 4 Zack Rusin
2022-03-02 15:24 ` Zack Rusin [this message]
2022-03-02 15:24 ` [PATCH 3/8] drm/vmwgfx: Print capabilities early during the initialization Zack Rusin
2022-03-02 15:24 ` [PATCH 4/8] drm/vmwgfx: Fix fencing on SVGAv3 Zack Rusin
2022-03-02 15:24 ` [PATCH 5/8] drm/vmwgfx: Allow querying of the SVGA PCI id from the userspace Zack Rusin
2022-03-02 15:24 ` [PATCH 6/8] drm/vmwgfx: Initialize drm_mode_fb_cmd2 Zack Rusin
2022-03-02 15:24 ` [PATCH 7/8] drm/vmwgfx: Implement MSI/MSI-X support for IRQs Zack Rusin
2022-03-03  0:34   ` kernel test robot
2022-03-07 16:24   ` [PATCH v2] " Zack Rusin
2022-03-02 15:24 ` [PATCH 8/8] drm/vmwgfx: Stop using surface dma commands on most configurations Zack Rusin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220302152426.885214-3-zack@kde.org \
    --to=zack@kde.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=krastevm@vmware.com \
    --cc=mombasawalam@vmware.com \
    --cc=zackr@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).