From nobody Tue Dec 2 01:33:05 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 CD959288C86 for ; Fri, 21 Nov 2025 15:06:25 +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=1763737588; cv=none; b=dEoGwQMDSR+1O/uM7Jof2ZZdl+Dxq+SHnR1p7BgI1elsay3lzX8wiHS6175pibj+LAxHwLoJTjtefvHNSjVSrHDPybYMYWkEr+yTF54E45cLwXbA2JtGrxUzeY/cZiZj9XKRc5ngNuVVTtDhRsJ3qjin/nX1FAafzviX68uoELE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737588; c=relaxed/simple; bh=aemOi5IutzwP6lzpzpNVxlpvX5r89JXmAras5OUfufs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=io0jD3v53Q7ZNy+2TBcUqOtUO/qsrytSsbVLFGXTiSgjMaULtbNZQfYPeTwA/BKzH8tHvYWeNq1wBmvo8ApeTYhlc/nyKtZIe5S3sAHbf1Fyn/jhGdpB+KbPZUA1+PIjatNTSV2sAfXQb2fr+7c3e2I3/TIhSyyVwC3yVMH31z0= 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=HKLVq3Yp; 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="HKLVq3Yp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737585; x=1795273585; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=aemOi5IutzwP6lzpzpNVxlpvX5r89JXmAras5OUfufs=; b=HKLVq3YpcBI/oP4aXZhnUzEMRn0TA/ASLVDr77LadZg1idQxnxJHnrNW GMuMkqhU1Fe4CuPrvaEybyJ7y6haDy4gehPBHnninJwbuUjroxCaTtnYh f2mkmLMd6DdSXu4YcSPyEz5aXCyFtomIqIgMGw0rBGhW/U9SPucTPAstg VqqczlyU8vZPT7xSLBljjjlpf9Y81gC0qouR32ovNzfFoQFxjnayObslh 6I+/jeuG0wgncbZBwJCikMpn5YTOKI/R9O5piL+eZtMvn1znTqP1CGsE2 JBfWB7Wm1nvV3uqaULkyzZ41iPYpTMLX+EArzu+OYrIM4hFf8dIi9W2Qs Q==; X-CSE-ConnectionGUID: Ubo8wtofT1S9f5fCNZ+Rrw== X-CSE-MsgGUID: pADxvoh3QCWJavHee7GYog== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="56053148" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Nov 2025 08:06:24 -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; Fri, 21 Nov 2025 08:06:09 -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; Fri, 21 Nov 2025 08:06:05 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:33 +0100 Subject: [PATCH 1/8] drm/atmel-hlcdc: use managed device resources for the display controller 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: <20251121-lcd_cleanup_mainline-v1-1-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=3275; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=aemOi5IutzwP6lzpzpNVxlpvX5r89JXmAras5OUfufs=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/WnQGbg+azsgk8P3WvGqFEEKIarqJFR93R9 Ow3U7VotzyJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LTvPD/0fqREFIc5dX+MVxkGSvLd5iUpodlj3CIqK+w0yexw9K/AjXTvSg947IYM71FIldcLWdl8 o+Nm6c6B/Rpf7+Vweyxvzug9QW/0mNlDv8RA7b3AD88wFa62gcQf4N/88+SiGwgrHdYb2tyu9je kPADCx6V65Hd5hK+fNV3oetWrG6raS39BGgu+ZMyhQA14EaCpGFzPax4/7C8garb/iizxKWjJV5 emn4yMaSnmOw+J03vBtTmohzYKNMrbwkBrFhCOzVE2SriRxfNLoBX+yAPj/4R5fnBWq7IBSGHGG 12D4trxlx1HDibGWBK3q4dLL+W54n0iIgbpJ6qkGQbVy3+cKgOiqFJJtpqAG5NTj6Oc0ntuqdOW iTqejWqs24Qincze4MfhQF97L+M3GtoXJBRoo32RmB1We2S5UERaTmGlJEyDv1EEku3CBzKPby+ PTphStV+eivBbKFkzapjR5/QkA4vWKjxXzA+i3Yj6r7av/D2lOEVC4M3iApKAZjDWsIte/WO9W3 8Q/Hhyy9/9efkyiX73aHFIYMSYWFwi5K66qYe7Tk299Cb1CxWIRhUqoAPDiBjWiXUc6n4uK26AC s/D8+kdB5RVWoESbBl6mKWMu9OwEXMFiemtcWgr/eTtL9kAWlql/E1BKruxX6h5UVc0bJOOVxoQ PrUZrNBpxsQopjA== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Take benefit of managed device resources to reduce the risk of memory leak and to simplify error paths. Signed-off-by: Ludovic Desroches Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 25 ++++++++++++------------- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 1 + 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm= /atmel-hlcdc/atmel_hlcdc_dc.c index dd70894c8f38e7303e06167594ac289cb345b510..8ed029381c555db10d596efc8d5= 2753c47767633 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c @@ -751,11 +751,16 @@ static int atmel_hlcdc_dc_modeset_init(struct drm_dev= ice *dev) return 0; } =20 +static struct atmel_hlcdc_dc *atmel_hlcdc_dc_of_dev(struct drm_device *dev) +{ + return container_of(dev, struct atmel_hlcdc_dc, dev); +} + static int atmel_hlcdc_dc_load(struct drm_device *dev) { struct platform_device *pdev =3D to_platform_device(dev->dev); const struct of_device_id *match; - struct atmel_hlcdc_dc *dc; + struct atmel_hlcdc_dc *dc =3D atmel_hlcdc_dc_of_dev(dev); int ret; =20 match =3D of_match_node(atmel_hlcdc_of_match, dev->dev->parent->of_node); @@ -769,10 +774,6 @@ static int atmel_hlcdc_dc_load(struct drm_device *dev) return -EINVAL; } =20 - dc =3D devm_kzalloc(dev->dev, sizeof(*dc), GFP_KERNEL); - if (!dc) - return -ENOMEM; - dc->desc =3D match->data; dc->hlcdc =3D dev_get_drvdata(dev->dev->parent); dev->dev_private =3D dc; @@ -853,16 +854,18 @@ static const struct drm_driver atmel_hlcdc_dc_driver = =3D { =20 static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) { + struct atmel_hlcdc_dc *dc; struct drm_device *ddev; int ret; =20 - ddev =3D drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); - if (IS_ERR(ddev)) - return PTR_ERR(ddev); + dc =3D devm_drm_dev_alloc(&pdev->dev, &atmel_hlcdc_dc_driver, struct atme= l_hlcdc_dc, dev); + if (IS_ERR(dc)) + return PTR_ERR(dc); + ddev =3D &dc->dev; =20 ret =3D atmel_hlcdc_dc_load(ddev); if (ret) - goto err_put; + return ret; =20 ret =3D drm_dev_register(ddev, 0); if (ret) @@ -875,9 +878,6 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_dev= ice *pdev) err_unload: atmel_hlcdc_dc_unload(ddev); =20 -err_put: - drm_dev_put(ddev); - return ret; } =20 @@ -887,7 +887,6 @@ static void atmel_hlcdc_dc_drm_remove(struct platform_d= evice *pdev) =20 drm_dev_unregister(ddev); atmel_hlcdc_dc_unload(ddev); - drm_dev_put(ddev); } =20 static void atmel_hlcdc_dc_drm_shutdown(struct platform_device *pdev) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h b/drivers/gpu/drm= /atmel-hlcdc/atmel_hlcdc_dc.h index 53d47f01db0bd4d906b73f9f2a46f2ef7326d8c6..26b26185cf34ac1678f385982ca= abd2dbbc22630 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h @@ -350,6 +350,7 @@ struct atmel_hlcdc_dc { struct dma_pool *dscrpool; struct atmel_hlcdc *hlcdc; struct drm_crtc *crtc; + struct drm_device dev; struct atmel_hlcdc_layer *layers[ATMEL_HLCDC_MAX_LAYERS]; struct { u32 imr; --=20 2.51.0 From nobody Tue Dec 2 01:33:05 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 692B72D5C7A for ; Fri, 21 Nov 2025 15:06:28 +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=1763737590; cv=none; b=oL2nTDARGQC3TjgcHcB0IFO8UjOn0nKcR7tkquaNXz88HVtO8VJDaWI8xlhH+BLRoGBA5OYg/uab493veKhEoxOoJ6ZbuH+9Zrh6nNQjUdUOyL2d5h0Tkukba2mrNZkQhtt4wFxvRyXWpzHytAVVfu8wJAkyJCubeoRhVfeJMvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737590; c=relaxed/simple; bh=//80TLvazu3o6H3NRSjGjho+1pdoyVKmxiXPeB2mjFI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=C5Obio6MnU4MKQsw9+DRsalgVUU+1M/7GKkbLulJAlR9w0EnXd2de+cuq8dcqdkZO3TtQGtQKZclyPyIbWqEBqcl4EORZ1d/sW0D9wqiyZdD2xi911UWM8PZIruo1NmyC8jcIxUbxkujdeE7Fet/O/MFu1AIiyS6/mGu5jckYuE= 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=kwceQAEz; 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="kwceQAEz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737588; x=1795273588; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=//80TLvazu3o6H3NRSjGjho+1pdoyVKmxiXPeB2mjFI=; b=kwceQAEzXEWWGnccmLM2W27fsNOG+GflmihfS/NhORecGMFIHdu4a4qF ozNkhnKyxtjbutoJtGvfg+tv4gHxwUJxuG+mlfZcD1JX9jOm79zSxdidO b3UPM1v0heHRAu63YN4Z9bXVpbjS6VG0cxSjEAIqPXl8o0tML93JZv56a SRv3zJiHQPvA1FomoZxB6cgdUv6m8FPxNM+dymtoKdlWi/f+R+SFTFg0d P4jX1JBmY7Uf1FMqKHMe97CnEPOXdV0Ql5dqHo248ZilohTEu2hGIXOAb 6Y4+8rtyThSmmDxn4zekS1sBYpIqZ6XvLrFILb5u5Fap4KY3LYNUWA+QU g==; X-CSE-ConnectionGUID: Ubo8wtofT1S9f5fCNZ+Rrw== X-CSE-MsgGUID: gZ3q7jPvQZ2UJm2tgreohw== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="56053149" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Nov 2025 08:06: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; Fri, 21 Nov 2025 08:06:15 -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; Fri, 21 Nov 2025 08:06:10 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:34 +0100 Subject: [PATCH 2/8] drm/atmel-hlcdc: add support for the nomodeset kernel parameter 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: <20251121-lcd_cleanup_mainline-v1-2-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=1062; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=//80TLvazu3o6H3NRSjGjho+1pdoyVKmxiXPeB2mjFI=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/Wx435lU4YdoP1U1wLYVVkjIgThXEiZrDNh hJx10HGQMqJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LVmZD/9xc9Spy6hS+6PVIpR2aBWpK1pbeCzt7GdY7RPvUtQJ50ErAwpoAk6gw9QfYTfdr7I7RhP Horf8ZT+0UvYNnN/lsZkLzNfCunuHzqgCxuYddEO3L9d1kTetlwruZbu2x3Wgw438cAu2GlIO/s FsrDGyWo274YN6t6N2smyNmeBS/XqzuAGtRx0wrVLnqL6bshf2LqTsgw5TqKmQivoj6H6aSHMQS ypTwk6aRN4iCjXLikwHkyj3yH4qgrFlvlp00fPRvtt/sxVLV4imFOIHLPcVL8LIQ1NG5YjAyx8L 3d33IPZUak1i5NQn+mFOS9Swwt4oEtubB1tYgaVZX+UPSCjbHcnd8fkaCMKVfoB0CdgLV3oxgcX V9j5Z2QdxCFRqESCWpA708gs+PV3VjFYsLGI8vR/+8qotLvm0BWh/0CUChflGi5An0l5GtlSEwd N0ApHTQejTfp9c/KpoINc/r4rIGqcUMC+ItGZB9I0YgL5ngPqWary4avm63cJ/WdS249i83y60c H0zvKpFsfdTJ9ULifiqevM3O2owjGZM4JXywM+oE0VxCHBsVVLR+CX/ueF7cg2edvNOWH0rQZ4Y u/qxasf2VWZJM1vUI/UHUbKNjc92RDd4LL8actkbkY5Avx0OQzMC79o5XiOyjCqgKXWjczi+AWh kERr9QPgdxRkgAA== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A According to Documentation/admin-guide/kernel-parameters.txt, this parameter can be used to disable kernel modesetting. Signed-off-by: Ludovic Desroches Reviewed-by: Dharma Balasubiramani Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm= /atmel-hlcdc/atmel_hlcdc_dc.c index 8ed029381c555db10d596efc8d52753c47767633..8ff582a394794aacf84f9e23fd5= 9f123445926a3 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c @@ -858,6 +858,9 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_dev= ice *pdev) struct drm_device *ddev; int ret; =20 + if (drm_firmware_drivers_only()) + return -ENODEV; + dc =3D devm_drm_dev_alloc(&pdev->dev, &atmel_hlcdc_dc_driver, struct atme= l_hlcdc_dc, dev); if (IS_ERR(dc)) return PTR_ERR(dc); --=20 2.51.0 From nobody Tue Dec 2 01:33:05 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 3B6092D6400 for ; Fri, 21 Nov 2025 15:06:28 +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=1763737591; cv=none; b=eHFqwuVy9PRwq9i+8RdcSF9f/XWR+5o4TNQ2L9+WAnKvz545fhFUwnri1IDBquD9934SSD/SQ99iFIG4IaP4o6uJr7ynbafGoomEq0hAhHL1cO1pTdPfI6Y5GrGN/Ct8Yk2UWiyKasI9OHP8ERE/+Xe8Jlp0uN/3HexPOuKT8GE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737591; c=relaxed/simple; bh=B5OMjTtB3KvSOSitHSwKvJyc6OwPvRdH+hvUZpIHPnI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=hZLNGawZLqYwch9WrIJBjvTYCg+DxfHtwRyRBQ+ooX7GHan03hxf5qakMjfLn075hqFige2ib99owbfvxBHJOWN9zq5bo6EFb25EhgK4KX40gSXhHbRtLmhdj+tavHG6Ep0nx9it7RBqosnB0Z+hZ4V+A8gMqyEAth8sbUolvzg= 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=t1ebvH7r; 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="t1ebvH7r" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737589; x=1795273589; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=B5OMjTtB3KvSOSitHSwKvJyc6OwPvRdH+hvUZpIHPnI=; b=t1ebvH7rIDnVhPA+OFtXIsltr4rxo2iZ78AmJpzTdpac2bXwAdjFvHWg 2rtIGfWeB9PaLXTC+ZpXl71pd7KHfaU18HUNx267tvu38PRlyXuJVWTgA owL8VfSAdZCyKyTDjpRqrTHkW17j7kuGSO+w/lnBVYNicqOtRn9I5qefc jADcdE+Gm0ksG8pmJNKmo6YWd0RMC8UdFdB7/lCa0PxIR7I24mqDkEWay GlVKpBHMqnv7015Nc2rOI/7neuxPxxdZnlgRnMAYkgJHgTqIctTUKuv3T ry94Mg4lvLOlts5kYpTvS8uJPlo7lkR5zRrYnaDEnBEqFvL9xWLR3qcDz w==; X-CSE-ConnectionGUID: Ubo8wtofT1S9f5fCNZ+Rrw== X-CSE-MsgGUID: g4LF2+ioTUiA4vtG7Q8JpA== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="56053150" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Nov 2025 08:06: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; Fri, 21 Nov 2025 08:06:21 -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; Fri, 21 Nov 2025 08:06:17 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:35 +0100 Subject: [PATCH 3/8] drm/atmel-hlcdc: use drmm_simple_encoder_alloc() 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: <20251121-lcd_cleanup_mainline-v1-3-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=2109; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=B5OMjTtB3KvSOSitHSwKvJyc6OwPvRdH+hvUZpIHPnI=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/WAcQuo7Hgt4L59frM6s6uPhpepMvIVGwjA wngCTtUKpSJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LbjmD/0U/W8SnPLpZ3AacgQf/X++EdIxaLPSqNaRprjSPoBQYv3cwL/inKrefkFcq5nP7RGIF6z 2N9u2TaEbXxjmmkhlWiZCjCS+M0drepYHLRPgfacVB++6MZwD1eP2n+WS0wS34bNPSrAv2Y282P 49kr6YeXe81iexpbzUj4SjB0gEFupC8b0gcF2Xv69qfh6DhZ9xYlsGJ44liLSHSwaTmAmklPN76 6MLyX8yZCaUDRTWr3g7/aFA3dIeSojg+g53lFn9UkpJ30WhBUR3xnimUV1YpQUetprbueOSwOxL rnoczMML1Wue7kpJ4aFIFk+JsAXD3UCq9unihXIA1DN3vO92S5MOexHDZR17biWPL4ct8XfqMnG /7D+WPdos5i/V03gP0PA3qbxSdGAm2JwWS1xPd1ZbbHRRY4rIy3b/ImGoKYfvzJMAW+LlIS+rau qVreRuxCUkgeYkCWW1Gl9eC1nraap29z2n5KFWhjAgH2AMNKNMdaK/wXpS8wHJE84QOkMiOvm2h G+w6a1wGT4tqeW2C4zLsR9zZAA+JKA5Gd8AG88h7Z7JPCuW3reQbbJhGPiEW0tEqGNPI48/epcS PKtjBc6FFuxAzRluPil0rlUrgVNYuOVeHXwjv+fHhilfXdKN/HWKNXlnzdmCU+ltarb2rmPvvlg QskfThUnRSANNGg== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Simplify the code using drmm_simple_encoder_alloc to handle allocation and initialization at once. Signed-off-by: Ludovic Desroches Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 27 ++++++++------------= ---- 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c b/drivers/gpu= /drm/atmel-hlcdc/atmel_hlcdc_output.c index 0b8a86afb0965ca3085dd5524983a0072199ec0b..1f43e0feeedae54321a17efc266= 654e72e8b9d8e 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c @@ -73,22 +73,19 @@ static int atmel_hlcdc_attach_endpoint(struct drm_devic= e *dev, int endpoint) struct drm_bridge *bridge; int ret; =20 - ep =3D of_graph_get_endpoint_by_regs(dev->dev->of_node, 0, endpoint); - if (!ep) - return -ENODEV; - ret =3D drm_of_find_panel_or_bridge(dev->dev->of_node, 0, endpoint, &panel, &bridge); - if (ret) { - of_node_put(ep); + if (ret) return ret; - } =20 - output =3D devm_kzalloc(dev->dev, sizeof(*output), GFP_KERNEL); - if (!output) { - of_node_put(ep); - return -ENOMEM; - } + output =3D drmm_simple_encoder_alloc(dev, struct atmel_hlcdc_rgb_output, + encoder, DRM_MODE_ENCODER_NONE); + if (IS_ERR(output)) + return PTR_ERR(output); + + ep =3D of_graph_get_endpoint_by_regs(dev->dev->of_node, 0, endpoint); + if (!ep) + return -ENODEV; =20 output->bus_fmt =3D atmel_hlcdc_of_bus_fmt(ep); of_node_put(ep); @@ -97,10 +94,6 @@ static int atmel_hlcdc_attach_endpoint(struct drm_device= *dev, int endpoint) return -EINVAL; } =20 - ret =3D drm_simple_encoder_init(dev, &output->encoder, - DRM_MODE_ENCODER_NONE); - if (ret) - return ret; =20 output->encoder.possible_crtcs =3D 0x1; =20 @@ -120,8 +113,6 @@ static int atmel_hlcdc_attach_endpoint(struct drm_devic= e *dev, int endpoint) drm_panel_bridge_remove(bridge); } =20 - drm_encoder_cleanup(&output->encoder); - return ret; } =20 --=20 2.51.0 From nobody Tue Dec 2 01:33:05 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 411102D73BE for ; Fri, 21 Nov 2025 15:06:58 +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=1763737620; cv=none; b=kUGgTAzowiVUDcgW0tTZ4DLzu3sfci3dly2YML09YVCiVydjeWcSvG5IEnrvX/XAcIxYtn6C8irSDx/lf/61t7zPVlHtt2tEIVyNYvKuX2AHH6R6vr8hBQjhnB+doiicssYqW+DeAUSMNh25uVicos092xlMHgvJ6D1O2nfjxHM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737620; c=relaxed/simple; bh=ykS7JdsTZDTvpcv0YzakxnBGh6GHP2mr6Lt81AtHCBs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=TovHf/E8LgdToDUV0cLlVmwQnHTmED7cmbDvwYAU8rdS2nEPU0Fsrj394EuYD8tsanYpFAtAYPKHspz4weeS2Ve2N5YGCcprx7g1ADcZyGkuMO5IVmCVOpsMZgODOGhwhr2JfLztqFEEKaSEo7QUEewhQChPmwX8NJL1IHGCsk8= 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=s7QGKQWd; 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="s7QGKQWd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737618; x=1795273618; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=ykS7JdsTZDTvpcv0YzakxnBGh6GHP2mr6Lt81AtHCBs=; b=s7QGKQWdgnBlOIqAxZPB89AaBeuUQpMDTd0sh9/IbHwWuEv4bkLLs5zO DqUDlngMc16j91R727IzwxOsQKVxlZMIEdBb4hS2N+Bf53s0TBhJiS6Wg A8RfkZaXv5zJLzhmoOxhbCmYlYZw4cYtVOqnZIv/k4zh0D8qqdhVz6Mzt MKeQvyqcsxfh+a1c8L2OrzrwDvaoGUfACAwVMeq9tC+Layh0hXqAB8Ai+ tcDQByQJMn4E3l6ZyExXuz5tJH3RR8uQTJpJ3QyPy7HWdPXnoEWPttRYU V+Ze4o09hUP54tyB+4I5qnWPsTFKQJiTulVE1IYMB5adZfCdIl9wwo0xD w==; X-CSE-ConnectionGUID: ZsY1rJHWSEWAtJuR27K+Sw== X-CSE-MsgGUID: qyzdrfUkTTWgu9IQmxnKWg== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="280874262" 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-AES256-GCM-SHA384; 21 Nov 2025 08:06:57 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.87.151) by chn-vm-ex4.mchp-main.com (10.10.87.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.29; Fri, 21 Nov 2025 08:06:27 -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; Fri, 21 Nov 2025 08:06:22 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:36 +0100 Subject: [PATCH 4/8] drm/atmel-hlcdc: use drm_crtc_mask() 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: <20251121-lcd_cleanup_mainline-v1-4-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=2760; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=ykS7JdsTZDTvpcv0YzakxnBGh6GHP2mr6Lt81AtHCBs=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/Wto7t+cwIKFwcL7ixOr20oYrI6fqOiPoVu hN4ZiWNMryJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LQKYD/0Wg6ViuiiaWT23b0Hu883goIyW2Gn2x0x+1Dbik+Sw5Ju7GaRkAsC2ZGwi35vbCuj/Y+b RJ3G65JYSs5Bdrtgtj/brCoJUwJrnOUx6QcNi1kyxqyPhekrsOOoKTTzGCo+6gRPE/AcmNRMXzZ rFqZZWw8JyGy6OLXHFEeAMNvli4SYn0XzHaxo+Freu1EbAj+yXIaHdzsjdG2BEU0NgLpizS5umz ZHLK8Y+qPROPLEZcTvxvTAkVulpmj2px6wZxq7vbsbhj4nw2Im0F4Y7QC37dH4UPWtJcEKZgAJH NJMLd9N+EyhLvRRLeGsjBZQZjXNwJtVxiL1bQ3hT6jcMPO9gQGGcFpZW8FaDjCEibkNyN7i49fl g47nNF03rR8ZYrzAFkqGHc/8XTpRfFKtvk5qkeQum4nJkw65uu51pkeBbuwq7x2z3aBq0SP7lT1 3UXRtlZVs0E5crWpx1VnSGSAXFU1EMDbQaclf2rBeals+C2qeetefpZZp3grlKXf4MwrFMZ5EPd tDwH5QovWi1s2FDDoluJBdaSc05LZld463pgXp/84hxcIAhbixgXj/cp20RlQriz+UnUS5Vue4J FEx+wagocUitMBoZQITlYWcgSwJX+ZahZOsHyT5RJVgMT9ejTKB7QsVCCwU7b3JQVDoywcfP1RP 4w3cnpifpsBw0XQ== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Prefer using the drm_crtc_mask() helper instead of a raw value. It involves reordering components initialization as we need a valid crtc. Signed-off-by: Ludovic Desroches Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 12 ++++++------ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm= /atmel-hlcdc/atmel_hlcdc_dc.c index 8ff582a394794aacf84f9e23fd59f123445926a3..d1f5451ebfeaf81c382b49d0c1a= 6c3c32e44866b 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c @@ -723,12 +723,6 @@ static int atmel_hlcdc_dc_modeset_init(struct drm_devi= ce *dev) =20 drm_mode_config_init(dev); =20 - ret =3D atmel_hlcdc_create_outputs(dev); - if (ret) { - drm_err(dev, "failed to create HLCDC outputs: %d\n", ret); - return ret; - } - ret =3D atmel_hlcdc_create_planes(dev); if (ret) { drm_err(dev, "failed to create planes: %d\n", ret); @@ -741,6 +735,12 @@ static int atmel_hlcdc_dc_modeset_init(struct drm_devi= ce *dev) return ret; } =20 + ret =3D atmel_hlcdc_create_outputs(dev); + if (ret) { + drm_err(dev, "failed to create HLCDC outputs: %d\n", ret); + return ret; + } + dev->mode_config.min_width =3D dc->desc->min_width; dev->mode_config.min_height =3D dc->desc->min_height; dev->mode_config.max_width =3D dc->desc->max_width; diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c b/drivers/gpu= /drm/atmel-hlcdc/atmel_hlcdc_output.c index 1f43e0feeedae54321a17efc266654e72e8b9d8e..e582315f70a119f2b39057ff112= bc427117b85f5 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c @@ -71,6 +71,8 @@ static int atmel_hlcdc_attach_endpoint(struct drm_device = *dev, int endpoint) struct device_node *ep; struct drm_panel *panel; struct drm_bridge *bridge; + struct atmel_hlcdc_dc *dc =3D dev->dev_private; + struct drm_crtc *crtc =3D dc->crtc; int ret; =20 ret =3D drm_of_find_panel_or_bridge(dev->dev->of_node, 0, endpoint, @@ -95,7 +97,6 @@ static int atmel_hlcdc_attach_endpoint(struct drm_device = *dev, int endpoint) } =20 =20 - output->encoder.possible_crtcs =3D 0x1; =20 if (panel) { bridge =3D drm_panel_bridge_add_typed(panel, @@ -103,6 +104,7 @@ static int atmel_hlcdc_attach_endpoint(struct drm_devic= e *dev, int endpoint) if (IS_ERR(bridge)) return PTR_ERR(bridge); } + output->encoder.possible_crtcs =3D drm_crtc_mask(crtc); =20 if (bridge) { ret =3D drm_bridge_attach(&output->encoder, bridge, NULL, 0); --=20 2.51.0 From nobody Tue Dec 2 01:33:05 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 80301288C86 for ; Fri, 21 Nov 2025 15:06:45 +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=1763737607; cv=none; b=B8pZASXGh3LE7Ir6ZUxKuWs5q5rQEpL9t1fuP1LE/t5ybmWelCTJM8nR81sOiKplFgCdz0gWDBq2L9H3/qt9vdjqSFPHE9P1/jSTlY33AD3M5UvqM9/yP28I/Ih0+NAoKu0PvlmP/WOfXtKQz/iY2bjhBd7RnureabN6hfvH3Y8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737607; c=relaxed/simple; bh=LrFGjF1cQ/xx2DanwIh3lkueUOjcNFt4oFeE1YjJwXw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=s8qqt4+q2sKqf107VOoTvaBHIpQs4oWcpNgfhOcKXrHmO7uXU4H3tH9s+Gai7iOiwPg2YpA5AY/UZ44ViZl2RRPOvARmkfFr23FcmyRxSNoycwVYcTJhONkOPwtT2KK3czxw7rJQLUyRY0MKTrpnQWbhCp1GHs+eKYnucWQXO4Q= 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=rqF6iQlJ; 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="rqF6iQlJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737605; x=1795273605; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=LrFGjF1cQ/xx2DanwIh3lkueUOjcNFt4oFeE1YjJwXw=; b=rqF6iQlJeWuVwnVEVSf3ou+7XEmzgM16fRvnaNZGD4k0ts7FVPXp2Wy+ kVnw28ePxB7P97OYyq3zgFeQQ9IIiZzZN6zqqU7z3RoMToaoanuWcCcB0 9/15orLTZT7hP1iNunzUOV0VGAZWb6j8F85nq2kevYWZCGggfNYYtoVav ZENA3pK0ks4hZ0SalKP20VzpkqzZWMFt0syyE0jMq4KUBR4PuPUmKxtFv fC7vN9qCaOLCZS8U2KDF3R0fsonKFQBvFc/l/rw7s2vTMVpzE+FYJsoWN s8W5ed4TsBGHwLxKsKlLyvkSwdHu1I5TA8r3dRbjiAzL4OK0slViwIiS1 A==; X-CSE-ConnectionGUID: QYOCTpQMSWiHPKM8DKtIjA== X-CSE-MsgGUID: nlhkiNAZT/23BwN+3qdrHw== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="280874243" 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; 21 Nov 2025 08:06:45 -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; Fri, 21 Nov 2025 08:06:32 -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; Fri, 21 Nov 2025 08:06:28 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:37 +0100 Subject: [PATCH 5/8] drm/atmel-hlcdc: use devm_drm_of_get_bridge() 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: <20251121-lcd_cleanup_mainline-v1-5-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=1939; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=LrFGjF1cQ/xx2DanwIh3lkueUOjcNFt4oFeE1YjJwXw=; b=kA0DAAoBPjnmE/d7ZC0ByyZiAGkgf9ahRGYugbEKVpcEF6f1xnKpL6KcNeh6c8Yl9ls/2CBq1 okCMwQAAQoAHRYhBAAwS8mJaaxbjW01TT455hP3e2QtBQJpIH/WAAoJED455hP3e2Qtfd8QAIpQ fB1clOh9Edtn7HnGd+yrG+lG/iJL3qBmUnh5rw/46p5uVkIvepwzhqFXEttkL9Mi+5huV0t9dKb joBRLyYnNqJFbkLIFsHCQCCduPowHMjWQAPaQvZqCFw5KERw+eW/JAZMAS0A/51gqHpKvhw2Iu1 YGIe8LI4Vv/sff5BCeUl8tTC6qp04eVYV28tqjaUCGb3htppBpadnSvkQ2P4giJqi3axxH3Guve W3pmANEceOE++rQN4IBRaOdDgRFmRaBzaEjKDd/t+oV1EVGc0/T2LVLj96jC7M5NPgV+E6iblp9 n8shgrZdxMWKo+Gx//ugIigTuPgopVfjVMguqwvi+gHoS9q3YIIeZS9blK9YRffP+CZObGYuu5/ 0FaRHIkAz0BZVBA9mgKlkZ1HVvg6SaeaSfT8ESNE+r3p8OSA6FbdjSOkgo68Zp2yhyP7mxAPApR kn1pL+dFUIjxIqoAc0N+Yep4n2WhkWgLa4+bgfpXooYtbfjwYQTgHrHirASPJl0zkvQ0HlvXVMh RubAouFhv0B3ObX9A6vCngnCmE+5WqIs5wG+lIeqvMnNaGhkxJ97fYqvDNyi+IKGTj0et/UDGsO k0zL9fr9Z9yN8vTmXyuXRgqfehoCNSenbdl+zY7Q2a9njppQ1kQFPwsUAA84lk/mPDxE0gYwsaL QtLI6 X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Get rid of drm_of_find_panel_or_bridge() as it is deprecated and use devm_drm_of_get_bridge() instead. Signed-off-by: Ludovic Desroches Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c b/drivers/gpu= /drm/atmel-hlcdc/atmel_hlcdc_output.c index e582315f70a119f2b39057ff112bc427117b85f5..99bc7790d47ffc7e6df26768559= 407df0184565b 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c @@ -69,16 +69,14 @@ static int atmel_hlcdc_attach_endpoint(struct drm_devic= e *dev, int endpoint) { struct atmel_hlcdc_rgb_output *output; struct device_node *ep; - struct drm_panel *panel; struct drm_bridge *bridge; struct atmel_hlcdc_dc *dc =3D dev->dev_private; struct drm_crtc *crtc =3D dc->crtc; int ret; =20 - ret =3D drm_of_find_panel_or_bridge(dev->dev->of_node, 0, endpoint, - &panel, &bridge); - if (ret) - return ret; + bridge =3D devm_drm_of_get_bridge(dev->dev, dev->dev->of_node, 0, endpoin= t); + if (IS_ERR(bridge)) + return PTR_ERR(bridge); =20 output =3D drmm_simple_encoder_alloc(dev, struct atmel_hlcdc_rgb_output, encoder, DRM_MODE_ENCODER_NONE); @@ -97,22 +95,12 @@ static int atmel_hlcdc_attach_endpoint(struct drm_devic= e *dev, int endpoint) } =20 =20 - - if (panel) { - bridge =3D drm_panel_bridge_add_typed(panel, - DRM_MODE_CONNECTOR_Unknown); - if (IS_ERR(bridge)) - return PTR_ERR(bridge); - } output->encoder.possible_crtcs =3D drm_crtc_mask(crtc); =20 if (bridge) { ret =3D drm_bridge_attach(&output->encoder, bridge, NULL, 0); if (!ret) return 0; - - if (panel) - drm_panel_bridge_remove(bridge); } =20 return ret; --=20 2.51.0 From nobody Tue Dec 2 01:33:05 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 1B7932D94A9 for ; Fri, 21 Nov 2025 15:07:01 +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=1763737622; cv=none; b=NKtrejxxYPsETc2ozlYMtRRXZ3hlTjpLGmECAyuZcT8Ph3w1nM4wlxP7vxFoZMfDiXIGSBHmGkmJtO+4rnZaeNaVqewpDT1OJf6oxNxEwfjRLP4JrxLJkaNn3MBSaQGaGzPd17JwUCdk7lX9klFhbpWxRsC0pqL6RqAjX9/G0Ik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737622; c=relaxed/simple; bh=H4lz9IzPucH+8/psNxpuZMlk/rvyrt76Wj+dwW/qyMk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=IsddfAnM0W2OZqQCL5JYZaNFgGzh39HB6Lm1azDZuIx6sysll6AsQalZbOLnyhku7pCKjaAWa0pZqZoiVnLoxfhaE+VIdP+itw0YpVvZ5Qzq+UKfwC2c2EUaadqOZvBLRT3fLA1bbyTObbHficJFa1TYFfQOy5AG3Fit9RCcyK8= 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=IKm8E4Rg; 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="IKm8E4Rg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737620; x=1795273620; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=H4lz9IzPucH+8/psNxpuZMlk/rvyrt76Wj+dwW/qyMk=; b=IKm8E4Rg6HKqA5H9PX5KYXHwcpshNcwlU+lshxXSLKaa7iV32MOI/idL Auua0G1YH1G78tpU3W+WmW9HT739+qCXO4kKqRDD35QPY2azLkhu72cuD YUm6msiQht6W22yAVtmp3NdNLFPfGfP7H3ht8UoT0Wg20acm+VDqw5H3Q sgXM792eK0Z+m3OSDzZgBbqDZjCWJVkvS30/CC8WNXkh8hDj6kvF2sT0f xgFUz/iUQUi3sWCp2mmmUG1JFHTKwVtLjbgWWeBDl1HWMtMc//XNUTypt fKYzgKWkOnJo2LKW+lgOL7IiUpMW4RvXEj/5Yr6iP1ko/M1pGCyiWMIXs A==; X-CSE-ConnectionGUID: ZsY1rJHWSEWAtJuR27K+Sw== X-CSE-MsgGUID: FAbZxFmwRbawMQ6bpWHzsA== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="280874265" 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-AES256-GCM-SHA384; 21 Nov 2025 08:06:58 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.87.151) by chn-vm-ex4.mchp-main.com (10.10.87.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.29; Fri, 21 Nov 2025 08:06:36 -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; Fri, 21 Nov 2025 08:06:33 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:38 +0100 Subject: [PATCH 6/8] drm/atmel-hlcdc: use drmm_crtc_alloc_with_planes() 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: <20251121-lcd_cleanup_mainline-v1-6-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=2868; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=H4lz9IzPucH+8/psNxpuZMlk/rvyrt76Wj+dwW/qyMk=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/WvQ+yKU/V0bCvhBe3QkiKGab/zxKSO67yQ V2J4Nrv9HSJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LXvLEACMR3bqdjvPH6YVQa6f9eIZI3LVryIGJh4oyiS12BRH7kz0saV4kiMJnupWYgf3nTomHrh HAcjC4DVLNpxXVbcAIWzA3NkzyF+/csAMT80dDc9dW62SXTzS5leuZuxVQlR+zUNqEpHJstSDkO Fnn4uNR6CkW0DFa015qMR9S5VyOqF2iY8oMYpNgl/H+vxeG1v0oS/5ERHR6IHnZPsvLCQNOfpUF JzmtVDqbpevkm/+trp+c6MTxEz0jzIObXPVyZB4M1Yz99Bi3TEhgC63hdnwB7/EmASzoOsFyMU9 9h4F8qQDIHgYGkQVFJMGfcgvByTW8Wgo50pXQIMEB8BXnfd54NnZXee6iKnPPvTBsIZckeYLPhs YEuP/tvVmHDaTRdBZib6l6rr/RTNvMZi495cAvLfe7n0bDgpetCq46mfrhjEFUoRACmXvlRh0hk QKOOzK8EohrpJpiJpBsOsemQdlcXLb/H4rmKzMFRGQnlQkF/sZm0XijEbXaO8AlQUBfWBnh0CMh 2MJYUVfsQ4safYE3saagxy1ppn7864Zsg/9F3p2ovYXeraEC7+ZNNBqpB2GlPlGw6Gx/+QkG1Nd k/t8yizkSZp376OmP3HGuxNNFrrc1HWzVFEPN+f5iDYjunPMTtpD+TCfz2OdYW2tET4n32viH+C VFbZTapwgb4FlEw== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Use drmm_crtc_alloc_with_planes() to simplify the code. As we no longer have to take care about cleanup, we can get rid of atmel_hlcdc_crtc_destroy(). Signed-off-by: Ludovic Desroches Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 32 +++++-----------------= ---- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/d= rm/atmel-hlcdc/atmel_hlcdc_crtc.c index e0efc7309b1b256520eff29462431476f8589255..b075f291847f9eb91e07b784438= 2871f38ed5f81 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c @@ -509,14 +509,6 @@ static const struct drm_crtc_helper_funcs lcdc_crtc_he= lper_funcs =3D { .atomic_disable =3D atmel_hlcdc_crtc_atomic_disable, }; =20 -static void atmel_hlcdc_crtc_destroy(struct drm_crtc *c) -{ - struct atmel_hlcdc_crtc *crtc =3D drm_crtc_to_atmel_hlcdc_crtc(c); - - drm_crtc_cleanup(c); - kfree(crtc); -} - static void atmel_hlcdc_crtc_finish_page_flip(struct atmel_hlcdc_crtc *crt= c) { struct drm_device *dev =3D crtc->base.dev; @@ -607,7 +599,6 @@ static void atmel_hlcdc_crtc_disable_vblank(struct drm_= crtc *c) static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs =3D { .page_flip =3D drm_atomic_helper_page_flip, .set_config =3D drm_atomic_helper_set_config, - .destroy =3D atmel_hlcdc_crtc_destroy, .reset =3D atmel_hlcdc_crtc_reset, .atomic_duplicate_state =3D atmel_hlcdc_crtc_duplicate_state, .atomic_destroy_state =3D atmel_hlcdc_crtc_destroy_state, @@ -620,15 +611,8 @@ int atmel_hlcdc_crtc_create(struct drm_device *dev) struct atmel_hlcdc_plane *primary =3D NULL, *cursor =3D NULL; struct atmel_hlcdc_dc *dc =3D dev->dev_private; struct atmel_hlcdc_crtc *crtc; - int ret; int i; =20 - crtc =3D kzalloc(sizeof(*crtc), GFP_KERNEL); - if (!crtc) - return -ENOMEM; - - crtc->dc =3D dc; - for (i =3D 0; i < ATMEL_HLCDC_MAX_LAYERS; i++) { if (!dc->layers[i]) continue; @@ -646,13 +630,13 @@ int atmel_hlcdc_crtc_create(struct drm_device *dev) break; } } + crtc =3D drmm_crtc_alloc_with_planes(dev, struct atmel_hlcdc_crtc, base, + &primary->base, &cursor->base, &atmel_hlcdc_crtc_funcs, + NULL); + if (IS_ERR(crtc)) + return PTR_ERR(crtc); =20 - ret =3D drm_crtc_init_with_planes(dev, &crtc->base, &primary->base, - &cursor->base, &atmel_hlcdc_crtc_funcs, - NULL); - if (ret < 0) - goto fail; - + crtc->dc =3D dc; crtc->id =3D drm_crtc_index(&crtc->base); =20 for (i =3D 0; i < ATMEL_HLCDC_MAX_LAYERS; i++) { @@ -674,8 +658,4 @@ int atmel_hlcdc_crtc_create(struct drm_device *dev) dc->crtc =3D &crtc->base; =20 return 0; - -fail: - atmel_hlcdc_crtc_destroy(&crtc->base); - return ret; } --=20 2.51.0 From nobody Tue Dec 2 01:33:05 2025 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) (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 6D248332EC5 for ; Fri, 21 Nov 2025 15:07:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=68.232.154.123 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737634; cv=none; b=OcXHrrJ+h4PVlkgO2vY+f+MlEkK0WC8UrIZMIN7aIATQ9l6b3aZxZkjxR1Zl9xTEo98hEu4mJOIiJ5JU181FlBGWOfMkr2fBZbe4R2ug9SXTQelL88Ddson1dHtJVPZkkXM7AplNccNjzqyUsnh+/nxzJ/H8UT9QWbeouIbg9QM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737634; c=relaxed/simple; bh=6+fNHOwf5B3Mr/H+++1aDzYmBahYT1JXyEW9NioMyYc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=SjujuhRuVL5sZIGwDgyRvjrXqXhJe297URzRutKzRgxjk5SR6aUjFq3+OJRtj7KbsCBd/z+dtjhNEFbF0nu6KlRZxo49CRqAcEaJEiw+FRwAlB1KTHYP1wCZ0oWXe6MTe8fBeD0pGzymzdk+N1F4liN3jbQ68F4ly5EIktGBFvA= 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=CVvaN8qn; arc=none smtp.client-ip=68.232.154.123 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="CVvaN8qn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737632; x=1795273632; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=6+fNHOwf5B3Mr/H+++1aDzYmBahYT1JXyEW9NioMyYc=; b=CVvaN8qnHztyY+vgNUl3ZaEdp5HRSulVT2+dadm7XOaIAhWUxZuo5YVa hEvgiUoFvzG9gdE4P385pMEdIsP87dD7LfJou8LtrZtgKJ0QexkzZoXvq nSAFtwB9JAbKiVQyjCaWSTzyNXg06pylU/I7UdwhDdebIh8ZShp7wt4Cl BjDAVWjCU21TCq/rQTYF8498kpbr0JLhmF9bROCbR/xOlJjoF7e0NRGrX XV9e4WTVf2JFTzgNtLGmLfjMPX1X1ejouvLJqrCmx2CbrRFizbULgNfk5 sreFreseB7xkJJRL3mBwl6d90liKbdfKs1/oFnwkwlLdI4qY28W/7Xyww A==; X-CSE-ConnectionGUID: f+FH760WRD6H6erujY1rjg== X-CSE-MsgGUID: MX79BasPTICOUlTHpgwyyA== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="216838769" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa6.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2025 08:07:10 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.87.151) by chn-vm-ex3.mchp-main.com (10.10.87.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.29; Fri, 21 Nov 2025 08:06:45 -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; Fri, 21 Nov 2025 08:06:37 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:39 +0100 Subject: [PATCH 7/8] drm/atmel-hlcdc: use drmm_universal_plane_alloc() 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: <20251121-lcd_cleanup_mainline-v1-7-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=2406; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=6+fNHOwf5B3Mr/H+++1aDzYmBahYT1JXyEW9NioMyYc=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/WgEXyc8uLNun0CUk9KwvC9R+kGfXdvvIqB 69iTO4Y6FGJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LebkEACuIxE1e0eQkRC4jb4H0E5QKRV+eEqX2xtt6KjJ3o/x/eJbRO4BFcODojFL/QLWJy6P9de 3tjyLPR9v5DaH7S2dDxbTkijvCaZ2Qp1EbhBSX0ABAOQibt7/SN7BDrqk7W6cOIp/VpRQfTt/WG sx4/8EYny35PO12JefX12jRHKcVOt7//m4I8+VQJGF2Tqe7+Pq+y+uaShau2kqHU1gybDKkW2ai TocpkF7R3oRqMk/mO1s0v5XrN0jxNxx60WukhF4o/ndb12Ut414KE0XRdKA177JagF8Xm+gaAZR skUHKd6sveMQMuFs4bsks/oxWwGMqv3Mg8GirvH+2pNgw+0vhYYyqhZUGjK3KoT0So80XuIvnNM P/3ZzFvjD5hiVSnpzDCa5ub3f1ISZRn1EYXhFNPdXO5w0nYGaDEbW4lvK/e+0Toaalb+3bxIfdO pxdbYJgoOet2o+JydjTCk/Sr///nh8U+w+WmZ14SiytCs7jx1viElEcqKySXnuUVueIIJw5mwuB VIDr1bg/v1b+5Cdj6eAevAhtzJ75BWnIEAQpoQFDSK+o7sSTYDZ6CtQs8kNiilNL/C3vs7Anx4S BGbR/KBZutlaANS3az071hDy91UHcIeUYpDqOlIXyfINJ+3/RH371C8xgJkLYjd1iqEpvx4Sau7 yab9EM5J9ttKPhQ== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A Use the drmm_universal_plane_alloc() helper to simplify the code. Using it, we no longer need to register the destroy callback for drm_plane_funcs. Signed-off-by: Ludovic Desroches Reviewed-by: Manikandan Muralidharan --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 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..c1f3aaae29fb9f6b947f81e2fb4= e7a61e10ac5d9 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c @@ -1225,7 +1225,6 @@ static void atmel_hlcdc_plane_atomic_destroy_state(st= ruct drm_plane *p, static const struct drm_plane_funcs layer_plane_funcs =3D { .update_plane =3D drm_atomic_helper_update_plane, .disable_plane =3D drm_atomic_helper_disable_plane, - .destroy =3D drm_plane_cleanup, .reset =3D atmel_hlcdc_plane_reset, .atomic_duplicate_state =3D atmel_hlcdc_plane_atomic_duplicate_state, .atomic_destroy_state =3D atmel_hlcdc_plane_atomic_destroy_state, @@ -1239,12 +1238,6 @@ static int atmel_hlcdc_plane_create(struct drm_devic= e *dev, enum drm_plane_type type; int ret; =20 - plane =3D devm_kzalloc(dev->dev, sizeof(*plane), GFP_KERNEL); - if (!plane) - return -ENOMEM; - - atmel_hlcdc_layer_init(&plane->layer, desc, dc->hlcdc->regmap); - if (desc->type =3D=3D ATMEL_HLCDC_BASE_LAYER) type =3D DRM_PLANE_TYPE_PRIMARY; else if (desc->type =3D=3D ATMEL_HLCDC_CURSOR_LAYER) @@ -1252,13 +1245,13 @@ static int atmel_hlcdc_plane_create(struct drm_devi= ce *dev, else type =3D DRM_PLANE_TYPE_OVERLAY; =20 - ret =3D drm_universal_plane_init(dev, &plane->base, 0, - &layer_plane_funcs, - desc->formats->formats, - desc->formats->nformats, - NULL, type, NULL); - if (ret) - return ret; + plane =3D drmm_universal_plane_alloc(dev, struct atmel_hlcdc_plane, base,= 0, + &layer_plane_funcs, desc->formats->formats, + desc->formats->nformats, NULL, type, NULL); + if (IS_ERR(plane)) + return PTR_ERR(plane); + + atmel_hlcdc_layer_init(&plane->layer, desc, dc->hlcdc->regmap); =20 drm_plane_helper_add(&plane->base, &atmel_hlcdc_layer_plane_helper_funcs); --=20 2.51.0 From nobody Tue Dec 2 01:33:05 2025 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) (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 535882D8DD4 for ; Fri, 21 Nov 2025 15:07:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=68.232.154.123 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737636; cv=none; b=tH0YWNdqBgeeJ7I6gfr28udXcHFUwgF5O1YA34lJ+ivhB17Qb3yowH1FgTR6fVYFhQTTq9OTgfy2vdRtzK+j7KxasSo5ifPhlIMawpqDZ8pGtRe0sN1i6eeddemvSV5thggxbWVucCPMnUnYjDAgXuNn4HS4pZWianzQDxkRz/I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763737636; c=relaxed/simple; bh=Ha1BPyyylS6A6UQC8yFXbfo2wrOczjUDbfibr5RJHhA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=lJRlUDWauBg51CZVHUgZAQqX/q8P+WUxEtAqpvSsSHLxugkhWcGXykNUOIJPb8CaiXkFNLVR/DXdb2tm6IYCbmo8L2GPxlM35LtH4tCzu03AbRhp2Nzf3bmV9qf71jl3jbzX61v1sSQ06ANHmVY9yKiOJDZ89b8vBTg2yE74jbc= 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=Pw+DYomm; arc=none smtp.client-ip=68.232.154.123 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="Pw+DYomm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1763737634; x=1795273634; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=Ha1BPyyylS6A6UQC8yFXbfo2wrOczjUDbfibr5RJHhA=; b=Pw+DYommwHjQbU/KW3rgZFztXh0vYaQ6pH8f09zP4Ocg+0EA8DMqP3PE R4y/vi+wvkuEQPg8cibjolsZduAvkN4tLmMFHrfuQqnXS4KUs1dgrdbmy +b+d6COAYnJau0GkMxQWxMEIJQ8tz/xm6SzKuU2KHixf7p5IxPVHFW7sn hv7RoZp2ysZqBNApOIYPiza6ZhpKJGhUPkvLg9FogIO1UGL2pjb8Dx9EZ HdHgnRXWd8spZoRFPk2Rnu9NzCIk0BtisJ/cs8zBucpt+7J+b2zSymViI cbhkYxJ6PmAL7AK6ZdnL7aPfZ2zj0ek6swLoCcaLA807r5MiTce4NGDBj Q==; X-CSE-ConnectionGUID: f+FH760WRD6H6erujY1rjg== X-CSE-MsgGUID: Q/Y3RxxUQlaQBonNfiT6Ww== X-IronPort-AV: E=Sophos;i="6.20,216,1758610800"; d="scan'208";a="216838770" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa6.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2025 08:07:11 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.87.151) by chn-vm-ex3.mchp-main.com (10.10.87.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.29; Fri, 21 Nov 2025 08:06:51 -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; Fri, 21 Nov 2025 08:06:45 -0700 From: Ludovic Desroches Date: Fri, 21 Nov 2025 16:04:40 +0100 Subject: [PATCH 8/8] drm/atmel-hlcdc: destroy properly the plane state in the reset callback 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: <20251121-lcd_cleanup_mainline-v1-8-2587e6fe4d67@microchip.com> References: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> In-Reply-To: <20251121-lcd_cleanup_mainline-v1-0-2587e6fe4d67@microchip.com> 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=2586; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=Ha1BPyyylS6A6UQC8yFXbfo2wrOczjUDbfibr5RJHhA=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpIH/WmebVV8yaA2DizdfbhYZClJXfHhgrXaRyl g4+2xwTdgGJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaSB/1gAKCRA+OeYT93tk LdAMEACO166ARuG1OSAHJGOwYA6Ry41lcW+UR3weaiNx75oFreM6rbYIJjrNl/uvrXvDDtScVsG GC/vi7LBNC3EAilUM/mWp4thXccPIhVk/vBedBFNKoMUs7dlO1GtvYQYx7kX5dIxzDb/WVC73Kc NNwRoy/YDEt+2iL4z8pcfNYSjpkmsnNMeUC39KW6Ndd+uHp/XLsUNUdRUvgDeAXelUrkb+Ps6LE 184Xqmmb5urU7wFSaPyqBkI26LcvvIIiGuFr6JrAzxYftG4blfZViLz/f7bE8G/BQ04MllUrQtC VFMm0WRzObp1D2K1Fkvurz+Zb9l016j8+ll9Bvdw4MOO5nUZ7UWMcXXgJOKSGqSPhywjVJrWGXb X0V/sUWiGn6gm5Dz2EBf3yDm4+YpfV03XPVgpZTpGFyOWTowiwljljQBB1GCmcw9OGdOZwVPMiI VSdatPjwA+ZV0/OHOg41o6RBpoTmzWDpvGEUEZqystixCqo0sRdIS1Xpnc/ggzfEXLl/BlvlNPl cnLiab4+UFcS4XmqoEdBjrf2ijm9lYBfInGEnqgAN+t7LpDGML7QVVPSBQWE5vKb8BjQdTR3omz koi2981qbPYxcRGxCJa9ghUlQkY/RbHKAnk6L7+xkOV+1/DEf4cOkGdY5N+CKvcaJDqST8sxrqr 8LjDyPbLd9KzeRg== X-Developer-Key: i=ludovic.desroches@microchip.com; a=openpgp; fpr=665BAA7297BE089A28B77696E332995F09DCC11A If there is a plane state to destroy when doing a plane reset, destroy it using the atmel_hlcdc_plane_destroy_state() function. So we call __drm_atomic_helper_plane_destroy_state() and avoid code duplication. Signed-off-by: Ludovic Desroches --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 52 ++++++++++++---------= ---- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/= drm/atmel-hlcdc/atmel_hlcdc_plane.c index c1f3aaae29fb9f6b947f81e2fb4e7a61e10ac5d9..81dc730362322a4bae9b48dca97= b06baa1e331e7 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c @@ -1155,32 +1155,6 @@ static int atmel_hlcdc_plane_alloc_dscrs(struct drm_= plane *p, return -ENOMEM; } =20 -static void atmel_hlcdc_plane_reset(struct drm_plane *p) -{ - struct atmel_hlcdc_plane_state *state; - - if (p->state) { - state =3D drm_plane_state_to_atmel_hlcdc_plane_state(p->state); - - if (state->base.fb) - drm_framebuffer_put(state->base.fb); - - kfree(state); - p->state =3D NULL; - } - - state =3D kzalloc(sizeof(*state), GFP_KERNEL); - if (state) { - if (atmel_hlcdc_plane_alloc_dscrs(p, state)) { - kfree(state); - drm_err(p->dev, - "Failed to allocate initial plane state\n"); - return; - } - __drm_atomic_helper_plane_reset(p, &state->base); - } -} - static struct drm_plane_state * atmel_hlcdc_plane_atomic_duplicate_state(struct drm_plane *p) { @@ -1222,6 +1196,32 @@ static void atmel_hlcdc_plane_atomic_destroy_state(s= truct drm_plane *p, kfree(state); } =20 +static void atmel_hlcdc_plane_reset(struct drm_plane *p) +{ + struct atmel_hlcdc_plane_state *state; + struct atmel_hlcdc_dc *dc =3D p->dev->dev_private; + struct atmel_hlcdc_plane *plane =3D drm_plane_to_atmel_hlcdc_plane(p); + + if (p->state) { + atmel_hlcdc_plane_atomic_destroy_state(p, p->state); + p->state =3D NULL; + } + + state =3D kzalloc(sizeof(*state), GFP_KERNEL); + if (state) { + if (atmel_hlcdc_plane_alloc_dscrs(p, state)) { + kfree(state); + drm_err(p->dev, + "Failed to allocate initial plane state\n"); + return; + } + __drm_atomic_helper_plane_reset(p, &state->base); + } + + if (plane->layer.desc->layout.csc) + dc->desc->ops->lcdc_csc_init(plane, plane->layer.desc); +} + static const struct drm_plane_funcs layer_plane_funcs =3D { .update_plane =3D drm_atomic_helper_update_plane, .disable_plane =3D drm_atomic_helper_disable_plane, --=20 2.51.0