From nobody Tue Dec 2 02:05:19 2025 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A9A032D0F5 for ; Thu, 20 Nov 2025 10:39:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=68.232.153.233 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763635174; cv=none; b=YPLBUN54d9WYflTBU/xBNbB/k6V7z6Lm0CKYgyBPlDT54gS+J/upM56A5oqqSOTGsJ99dWz5X8SHBPOcZK6f268fr3WyVME+H/wA2ve8MVoKtfMsg58+g6sPyf2YRQuug8p1GQB32tT5ComFsNeFpHrcgFrbchLPp9oIu0YbZkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763635174; c=relaxed/simple; bh=J8677a+liVG90mEXv9sUxatagrhtLr9kVbgkaIMED9k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:To:CC; b=UeZs6/m156SIjQpAuI8tWgkQPha0Pi7K4GLBeYrKMQrsW8RhbfYQp/PI9eY0FaIfUbGR6cpGN6xEBu/W1ombSmYZoJFVfU8qy0Q/irQgfSkBfQDKYRZvSNNLl474Iv0215qNoJN2dgNMlz7ujL2FlHsca7NuRhqHRm6VYs3kFxI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=microchip.com; spf=pass smtp.mailfrom=microchip.com; dkim=pass (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b=qBjmtMOO; arc=none smtp.client-ip=68.232.153.233 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=microchip.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=microchip.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="qBjmtMOO" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763635172; x=1795171172; h=from:date:subject:mime-version:content-transfer-encoding: message-id:to:cc; bh=J8677a+liVG90mEXv9sUxatagrhtLr9kVbgkaIMED9k=; b=qBjmtMOOzHT1lNUuSlg6mc3Cut/tVcOodEc+dKKouxPKYjAyAy/cUD+n g6OgO6nNz7b1utRtUHIR36xY66urBrnTh8mJVv4Ct/xZCkiIzyo+MhZkW YZ2BFV2ayR/vyydqZPqlnWJCM/JTR8JewmT/MZdFv5WGirqKcVPSt6692 KgMNm406ZpI8kE25aZqTs1esENOOVxG37hgMOoYZxtM+fEFQ6VryVTAT5 RruTWr9QMxOL7Mu1bRysOQBug8wFGZJr2tY3V+14h0wel6XHqGXYeGegK jHpFtjlw2gJGPvZID+k7JkFrIgr4w0y0PMe7QYmbO5iuZ0gm5jS43sF9E w==; X-CSE-ConnectionGUID: CRxBPCVgQ9SsmEJbGIfOAw== X-CSE-MsgGUID: QCtY8nKtR9OFt9OeKqLWkA== X-IronPort-AV: E=Sophos;i="6.19,317,1754982000"; d="scan'208";a="280805056" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa5.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 20 Nov 2025 03:39:25 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.58; Thu, 20 Nov 2025 03:38:55 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 20 Nov 2025 03:38:51 -0700 From: Ludovic Desroches Date: Thu, 20 Nov 2025 11:38:25 +0100 Subject: [PATCH] drm/atmel-hlcdc: don't reject the commit if the src rect has fractional parts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20251120-lcd_scaling_fix-v1-1-5ffc98557923@microchip.com> X-B4-Tracking: v=1; b=H4sIAKDvHmkC/x2MWwqAIBAArxL7nZBmz6tEiOhWC2HhQgTi3ZM+Z 2AmAWMkZJirBBEfYrpCAVlX4A4bdhTkC4NqVCelnMTpvGFnTwq72egVVo9a+bFvm8FBqe6IRf/ HZc35Ax/cGzZhAAAA X-Change-ID: 20251119-lcd_scaling_fix-a4842d86307c To: Manikandan Muralidharan , "Dharma Balasubiramani" , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea CC: , , , Ludovic Desroches X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2288; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=J8677a+liVG90mEXv9sUxatagrhtLr9kVbgkaIMED9k=; b=kA0DAAoBPjnmE/d7ZC0ByyZiAGke77ujhG0mz7EN48i1rGCi4D8K2xJSiOvxcRnnxhoCbQtaw YkCMwQAAQoAHRYhBAAwS8mJaaxbjW01TT455hP3e2QtBQJpHu+7AAoJED455hP3e2QtrH0QAM4W lw39V1i5i43IF2lUfGx/fxjDop/Icuar7mjQHPxvS4JNNCCA26vKkZHIIACvZWr2BHy/O9N2H5n ETDdVR0FGab9W3R7gZhPfJ9cqbDKFRBYt36ooF2CZCwNf1HpFuqDyfpMgw/S1V1htgKZha7Fwhn p5rRbvzACyTfCbbC6rQ/ET60yqwt36/Iu4mua4b0lcd4eLRp12I2Gg/fcm8ki0UomfsAD0isYr8 zH9q1l9fm9gUHSwE2bkTEGnEmbW+9WQQuZKvAOl4tSyA2Zs99WMdqtvMi2R1qMpCil/mZ7ciVUo PoJ2vGZ5MGtqox/yemhbgoL4g2JbltsECiuYzV0sj8io9wfeonfbt8+50/fi6TjXiw06x3vau+R H+X4ZODyrGPmqE+Pqv8rOrpIDlDEp0nCsjLEkLRMaa936FaMF9w2/+oPAgQeSddbxyjPEj3utpk 3LWRqKhldh/3nJXSKt07UsRRY32TiAUBS4+W3Yvelsj82FVWKvs3VZPrQVJwuYGb9o9plh4iUUf MAh+bJQ++mU50rN+9J+TYW1KrxM3gNl9FfVXEsF88xEIqX95rK/4p9oU/TXI/Ri5ZaIRVHdp2tC J89blAAxoQZsz6r1zWNpCtW/l5asYSCHA8Af2h+oqfzGjUbWndRCPEY0U2aIsEU6FzgVwPPJhlm yaIEa X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Don=E2=80=99t reject the commit when the source rectangle has fractional pa= rts. This can occur due to scaling: drm_atomic_helper_check_plane_state() calls drm_rect_clip_scaled(), which may introduce fractional parts while computing the clipped source rectangle. This does not imply the commit is invalid, so we should accept it instead of discarding it. Signed-off-by: Ludovic Desroches --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/= drm/atmel-hlcdc/atmel_hlcdc_plane.c index 92132be9823f1e705d266f9547702ea9530bd043..bccfe055c087e5632d60503e8e4= bcb3d9e18ce50 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c @@ -79,8 +79,6 @@ drm_plane_state_to_atmel_hlcdc_plane_state(struct drm_pla= ne_state *s) return container_of(s, struct atmel_hlcdc_plane_state, base); } =20 -#define SUBPIXEL_MASK 0xffff - static uint32_t rgb_formats[] =3D { DRM_FORMAT_C8, DRM_FORMAT_XRGB4444, @@ -745,24 +743,15 @@ static int atmel_hlcdc_plane_atomic_check(struct drm_= plane *p, if (ret || !s->visible) return ret; =20 - hstate->src_x =3D s->src.x1; - hstate->src_y =3D s->src.y1; - hstate->src_w =3D drm_rect_width(&s->src); - hstate->src_h =3D drm_rect_height(&s->src); + hstate->src_x =3D s->src.x1 >> 16; + hstate->src_y =3D s->src.y1 >> 16; + hstate->src_w =3D drm_rect_width(&s->src) >> 16; + hstate->src_h =3D drm_rect_height(&s->src) >> 16; hstate->crtc_x =3D s->dst.x1; hstate->crtc_y =3D s->dst.y1; hstate->crtc_w =3D drm_rect_width(&s->dst); hstate->crtc_h =3D drm_rect_height(&s->dst); =20 - if ((hstate->src_x | hstate->src_y | hstate->src_w | hstate->src_h) & - SUBPIXEL_MASK) - return -EINVAL; - - hstate->src_x >>=3D 16; - hstate->src_y >>=3D 16; - hstate->src_w >>=3D 16; - hstate->src_h >>=3D 16; - hstate->nplanes =3D fb->format->num_planes; if (hstate->nplanes > ATMEL_HLCDC_LAYER_MAX_PLANES) return -EINVAL; --- base-commit: fe4d0dea039f2befb93f27569593ec209843b0f5 change-id: 20251119-lcd_scaling_fix-a4842d86307c Best regards, --=20 Ludovic Desroches