From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-vk1-f225.google.com (mail-vk1-f225.google.com [209.85.221.225]) (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 C92D621CA13 for ; Wed, 26 Aug 2026 00:51:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.225 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787705474; cv=none; b=RVdYx/fXoHdXHMDgZvvHZIMcDlcPtl1bUPRC3azra/3NYdM0ndCPzfn72GrQ0X3dJzSMJj+rZ0y50L3j9lrsZfl6vzUGZKFu4V6J7Cu4QM/o8YZ/+M1BOM0+fe+8XyMZsJvlPGKxpUdevc+e0DMeBo3EizXCPhagciJpSpl/eNc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787705474; c=relaxed/simple; bh=gLyjxBbpw5X6DLBW2NH6Usxet1aZ5q2X2WWr3n0kGvo=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=dPU8hfXsYFj/Dlt2qGupXRD4Vvb+XjFU7wA9jLI1ezIPCQt4scz+J/93Znqw4BfUaesH34/twgtXSlCA9NaVk598U9D8CvF7RTM1sCw335OWYfwthhu+cvNtM/BopPWG970hfzMnaUzi9PjlQ+lc1rCHiY2vvkQdlEe0oeSomfU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=BxE5OAr7; arc=none smtp.client-ip=209.85.221.225 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="BxE5OAr7" Received: by mail-vk1-f225.google.com with SMTP id 71dfb90a1353d-5c276bd3692so381202e0c.3 for ; Tue, 25 Aug 2026 17:51:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787705471; x=1788310271; h=content-transfer-encoding:content-type:in-reply-to:content-language :from:references:cc:to:subject:user-agent:mime-version:date :message-id:dkim-signature:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=SjaCIdVU7kETJpx88YkabqKD+cdjiVBYTuWkimnlXeo=; b=rNc+gxUbYzJCRwkww0ObwslyJ4+IK8E0Fnxmr0gM8ABrfNcIJDNjmq+tI1YUQCDpjm sx34lbWXD6Mlkj/udkDalpBL/hIxhjm1+A+7QOrIxEVt5q+MH1wZFw+2eXHUQtOR2Xpn qnKKGs/cBQc1zRjJORg9rnkef+SUsX9ac85PLJ+NV9Dl6bNoziJ/AMZwQW0uuihxtvN/ 9mkY8ZLJKtTvqEZ2yL/VW18vwdx0yJTVeko2AUzHozOClv6s6vZZpOO/pHuQYRJPREMF 2sYcjdqV/kzAFe0fJ+HFij6gyTbZg/7IxxTA/XX2YWZ0MFUMGmcSF0byQUlDFmadzCbN 3rjw== X-Forwarded-Encrypted: i=1; AHgh+RoIgRF03dyG1rXFZkEQybnhKF2cO6YmsfDdCB+piNwiCNWBqVhTahR/CwDAkognsh2VtaAUagryOQD4+Ns=@vger.kernel.org X-Gm-Message-State: AFuF++lstJh0hVur262XtmjLUPKv3HbbNErhuA7r3n94VZ0MlAZ4aT7C d+RPWH7sQl4n+mF5rDKmi2MCVXFbcgqJjM6+32/DNKuk4AyiF3mxuaoKyYGo6eNnvp/tCPaxsnm z2phl7oKT6OvBSVp8DpKlH0HrQYQYAPuvsIhjBNjBdcFRmOkldngYfdU42G1QSzOFwmS+TKJEfP K08n5zwnLTvZ9PuFgRMSMW88bdWPtEi+vKb0Sn6tpLxX4uleCcfJGyuS+Yytl7LdV9g/b3Z3xbt jLQTDRM1AwJbvw1/C3prgMl X-Gm-Gg: AR+sD10l+nqwkmqxi0km9uK0xvMM33lwy+cOCwkIWClnv3Vr6zFd4Dcw+xY5Gb2rYOT pYtKnnWDSeIQ0gLFhV3zyrfS8vnCzU7RebSZAYwsIINuI7PobigZWZPtplbKuXt5fpucNV0yuh3 +iegdeB5uODHuy9lsh/NBRsMo6kI0Iznb8wmc4tjnTI8A00Om/3jXDzfQH7dAMZlF+wQxbkEaqf YGNFxiXWUi4rauzzzLYOMvzg83cb7zewL87J3k4nyDLRVaQpNAVdM9pt9inhj6oEO0R0bpiZSMh 42JO7zGooJUb7R0IkX/WrVLYdOlvB5wxEzh8bXjKCjrSGELWeDokN6bwKEIYI7QDLXuw2FJcEuQ GJeM+7iu+kCcyygY981sXVwRRw4YZ4MIJPazRU0aCc3aFHUAQ3ivi1lmmTX5/EJ/3dPj8fiATPg WFNBacr6T8Zw1HOTHZguD4rzXUv5rKi0+bW8X1xsPVt5g= X-Received: by 2002:a05:6122:f05:b0:5bb:eebe:7ffd with SMTP id 71dfb90a1353d-5c65c6081ebmr1194737e0c.8.1787705471649; Tue, 25 Aug 2026 17:51:11 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-121.dlp.protect.broadcom.com. [144.49.247.121]) by smtp-relay.gmail.com with ESMTPS id 71dfb90a1353d-5c65ffecd8fsm171202e0c.7.2026.08.25.17.51.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Aug 2026 17:51:11 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38f283baf1fso654622a91.3 for ; Tue, 25 Aug 2026 17:51:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1787705470; x=1788310270; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:content-language :from:references:cc:to:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=SjaCIdVU7kETJpx88YkabqKD+cdjiVBYTuWkimnlXeo=; b=BxE5OAr7cAh8jK5wK/q6sXhmk8x6h0hNef10f76A5N1auC0RW0GaQgD7Qks6R2n7hp u9vJu4ci0yl2RxDIokljbREfeTIFOBsWJWNuRGI58RH7r7je8fLs+h+gZajnETJI6snJ G6VAwVOm0/XKP4C/M2+n4sdD45zlXHJofheN8= X-Forwarded-Encrypted: i=1; AHgh+RrSg10ZYuaE8gzXVOi6e2sB65jvwQocyqHfbpfT/F3BEYipy8WXw7LWeuYbwcyF83ufrlfsNvuS1MjmFc4=@vger.kernel.org X-Received: by 2002:a17:90b:4a8d:b0:381:28e0:6259 with SMTP id 98e67ed59e1d1-3966d412ab2mr5707691a91.9.1787705470458; Tue, 25 Aug 2026 17:51:10 -0700 (PDT) X-Received: by 2002:a17:90b:4a8d:b0:381:28e0:6259 with SMTP id 98e67ed59e1d1-3966d412ab2mr5707612a91.9.1787705469948; Tue, 25 Aug 2026 17:51:09 -0700 (PDT) Received: from [10.211.247.235] ([192.19.50.250]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3283d63bb23sm2948885eec.7.2026.08.25.17.51.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 25 Aug 2026 17:51:09 -0700 (PDT) Message-ID: Date: Tue, 25 Aug 2026 17:51:17 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] drm/vmwgfx: Treat zero SVGA_REG_CURSOR_MAX_DIMENSION as unset To: fausten , 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 References: <20260823083211.2654733-1-yunfeng.li.nb@email.com> <20260823085916.2707488-1-yunfeng.li.nb@gmail.com> From: Maaz Mombasawala Content-Language: en-US In-Reply-To: <20260823085916.2707488-1-yunfeng.li.nb@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e On 8/23/26 1:59 AM, fausten wrote: > 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. I take it this is an x86_64 mac? What version of fusion are you using? Also what is the hwVersion of your VM? > > Fixes: d5ed8749168a ("drm/vmwgfx: enforce cursor size limits for MOB cursors") > 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 = vmw_read(dev_priv, SVGA_REG_MOB_MAX_SIZE); > cursor_max_dim = vmw_read(dev_priv, SVGA_REG_CURSOR_MAX_DIMENSION); > > - 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; > > if (vps->cursor.mob) { > @@ -748,8 +750,10 @@ int vmw_cursor_plane_atomic_check(struct drm_plane *plane, > u32 cursor_max_dim = > vmw_read(vmw, SVGA_REG_CURSOR_MAX_DIMENSION); > > - 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, -- Maaz Mombasawala