From nobody Mon Sep 28 10:43:33 2026 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 663593112AB for ; Sun, 23 Aug 2026 08:59:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787475567; cv=none; b=BOUO/RIoC02e4b1A7ZkR0IR4T6I9gLkWXUtAWXMogI05TzeuqT/iVZzRKZNqkEolr/D1oSVNsPXcQGXGxfq+LehKND38O1xs8QwR5MAWjwUgXf84PoaunXYh86bmBYzrExER451ASHPkO87mmgfR8jFR88wODJeqFPmXGSWjZvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787475567; c=relaxed/simple; bh=d00EOihz17xaXn9b47JUJOGbWDWx6Ip5qC0BadKtZSg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=peGXrUZAA6bYpzTr0X8MLpJAbwf7WvD4AldvO/lywWLKl40jHBRrvDWFjpD5dVHq1BqKAdQVJXK3DU2A1a2iMJTcZEEnvGboAJY24teOqakX+awSVjQoo2VPO4u218x/Z3gWy7yQhtVPbJbdUxy+/AJNNz9zmyehPqQkupvFHCY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=B0C+KVDZ; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B0C+KVDZ" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-38a0c7e841fso3323862a91.2 for ; Sun, 23 Aug 2026 01:59:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787475566; x=1788080366; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=q15ldVDxdupMbKGmseyO11WaPsDh9neVNLmDembg4lk=; b=B0C+KVDZsVHuhEnuZK4mqgm/rHT9caToIkdyAY8dDhnF+kOknABJZJuTYHiGzaX++g yLNPxR/5BQZfY8XMXQa9sCJ1IqleS7v2RO2JRLlXE7PtEihJzv+++IQgWaaj23GhUn2q TTDonMiDpTz+j8T+OGK3xvMAU7a5ETjaeFTfw83+xgRM2I9AGLmPY1atLC29jCbWjtKW hLTtba6b7dj677Sb6lMG7XjCatELg1LjfVdU7NlAFbyMxrXn20Rof64oQrEnZoqg+bkF HbDgr9gzZEWVLYo4IGsQRNBf4xSpXbEwjpMARUGV68XV1q7dfr23c1mTnoGh92VtVMlU EOJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787475566; x=1788080366; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=q15ldVDxdupMbKGmseyO11WaPsDh9neVNLmDembg4lk=; b=PdQPvYeaSzDIEdM2kFir5mHHRcH4KaUkJwTLp+B3u7eSUqdDnw96/JWCcUbKSg77hA UDFd74WDp0IAOIxyvOjaObsc6+Juc2VBZER/vNQOh+jgafPYX6fkCq+lQMVGk9DvVlMB cgAgAeBFT82tVpQf++X8ppuudLDND73q+FOYjMYWMTCm8tZGfybcY0IbpjZ20yX1MPjE 2MjjaUuuMpKT5AdzPnbVLGnLFKYp0UxTQN0Pa8A7KpW6fMyTYCulnFAsewguLl6CSi+k UgNos1ZqcxSA4yWokWl1baew8JKMI73UylCFgTlHFsvEM52jip0ovgjwUnUQ2x3XsM90 3reg== X-Forwarded-Encrypted: i=1; AHgh+RpW7yxR0i+OOuHdpe/d8fbgV90CLdxTI9+z4gXB2Id7CBqHTLPaaeLGJSo/9btkoCq7BzDPtRqkhJYZ538=@vger.kernel.org X-Gm-Message-State: AFuF++lTeSkcNajuPAKbZ2Sm/CMelHtekD7gnbZzxVwPTK1lSHkEoTSa kzc+nOtN+ydPvIQW8fAmrEjeOsc8PuL7BMzFnmCyYl3rXw7+9IyUxeOX X-Gm-Gg: AR+sD12ZFrnN6dKVdDC9vc/hmNJbeRwyQTWtRn0tv8pT5Ik6WOjayvK4IxVLthc3Fn2 WxfWYc1HMcj4XpsoCuKTcLboZEQ0trJEF3nxQyKVie0On8YcceoBGd3rYE7H+Z2ESZ1GOrcl6Rq Fr3sthTxNr/x8R1f5uxtygvu1r2Ebry72vNOPUwwxqe4TKrzAr64qlTNtffDJHuZE4unR1FiiHz YBV6IZhT0fLWQCf2x3dsBSUXwfnKnjSRWHaVRNkeeQN+e1Z6EkyklvL63FmYPp1AFNlf0+QQrb+ yhsBOEJa2m80y0n1plhBSLeswWApzmHeze+auLJetvluxm5REi22NkwuGtcYxXaLbpFPOR/MtN9 4qQP3DLjxtoQnH4hyVILOY43fksSryRLcAHDh6omJFge05u4VU/aWZds3GKq3hPk8Xmt4Xs43ZG Uhuk8i6me97t3PBx7ihUePklTWViG4cWdgTghu2xzmAvwG0NU0NP6dDhyeyxF8tecsEUdCL7eKQ cimq1E= X-Received: by 2002:a17:90b:4a81:b0:38e:6f90:eabd with SMTP id 98e67ed59e1d1-395c355c570mr31010607a91.5.1787475565740; Sun, 23 Aug 2026 01:59:25 -0700 (PDT) Received: from 138.101.136.61.ha.cnc ([61.136.101.138]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-395e42cc144sm5296045a91.0.2026.08.23.01.59.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 01:59:25 -0700 (PDT) From: fausten To: dri-devel@lists.freedesktop.org, zack.rusin@broadcom.com Cc: bcm-kernel-feedback-list@broadcom.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, linux-kernel@vger.kernel.org, fausten Subject: [PATCH v2] drm/vmwgfx: Treat zero SVGA_REG_CURSOR_MAX_DIMENSION as unset Date: Sun, 23 Aug 2026 16:59:16 +0800 Message-Id: <20260823085916.2707488-1-yunfeng.li.nb@gmail.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20260823083211.2654733-1-yunfeng.li.nb@email.com> References: <20260823083211.2654733-1-yunfeng.li.nb@email.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The cursor plane code validates cursor dimensions against SVGA_REG_CURSOR_MAX_DIMENSION before every cursor update, and rejects the update with -EINVAL if the cursor is larger than the reported maximum. However, some SVGA implementations do not implement this register and return 0 for it. In that case every cursor update is rejected, and the log is spammed with: [drm] Cursor dimensions (64, 64) exceed device max 0 The visible symptom is that the hardware cursor never appears at all on VMware Fusion guests (SVGA version 2), making the mouse pointer invisible even though the input devices work fine. Treat a reported maximum of 0 as "not implemented" and skip the dimension check in that case, restoring the pre-existing behaviour of accepting the cursor. Tested on VMware Fusion with an SVGA version 2 device where the cursor previously did not show up. Fixes: d5ed8749168a ("drm/vmwgfx: enforce cursor size limits for MOB cursor= s") Signed-off-by: fausten --- Changes in v2: - Fix author name and email address (v1 was sent with a wrong From). drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c b/drivers/gpu/drm= /vmwgfx/vmwgfx_cursor_plane.c index d1e7df500..fbdd23ecb 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cursor_plane.c @@ -237,8 +237,10 @@ static int vmw_cursor_mob_get(struct vmw_cursor_plane = *vcp, mob_max_size =3D vmw_read(dev_priv, SVGA_REG_MOB_MAX_SIZE); cursor_max_dim =3D vmw_read(dev_priv, SVGA_REG_CURSOR_MAX_DIMENSION); =20 - if (size > mob_max_size || vps->base.crtc_w > cursor_max_dim || - vps->base.crtc_h > cursor_max_dim) + /* Some SVGA implementations (e.g. VMware Fusion) report 0 here. */ + if (cursor_max_dim && + (size > mob_max_size || vps->base.crtc_w > cursor_max_dim || + vps->base.crtc_h > cursor_max_dim)) return -EINVAL; =20 if (vps->cursor.mob) { @@ -748,8 +750,10 @@ int vmw_cursor_plane_atomic_check(struct drm_plane *pl= ane, u32 cursor_max_dim =3D vmw_read(vmw, SVGA_REG_CURSOR_MAX_DIMENSION); =20 - if (new_state->crtc_w > cursor_max_dim || - new_state->crtc_h > cursor_max_dim) { + /* Some SVGA implementations (e.g. VMware Fusion) report 0 here. */ + if (cursor_max_dim && + (new_state->crtc_w > cursor_max_dim || + new_state->crtc_h > cursor_max_dim)) { drm_warn(&vmw->drm, "Cursor dimensions (%d, %d) exceed device max %u\n", new_state->crtc_w, new_state->crtc_h, --=20 2.33.0