From nobody Sun Feb 8 19:35:38 2026 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 CA60D340A47 for ; Thu, 18 Dec 2025 13:26:58 +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=1766064420; cv=none; b=LVrrT1G9IsJVvGnDvUOkveM0O7YToecMfuKgJ1xhWTwHXVWDee6JSjGuEnU2TJyWyiIV2Py0Yq0GbJhJps4ny2UQqB8ojALGnBCvgeVOgNI5dA+3x6D4Wx72yD8LwRVrTrG0S37/O68DR9YvIf4Fqn7qE/xX1Co6UcoPAnOsDM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064420; c=relaxed/simple; bh=aemOi5IutzwP6lzpzpNVxlpvX5r89JXmAras5OUfufs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=MeV+khVY1/q4lp5iUD4Q+w05RlnWmAPgsjUiOSwVWdzV8CBpyfTi9rqvZARX5M8ikk+uAYczaZkvoH2s9ZogAA1f4ZHOVJZvYdarfKDIj+x8Q28RgkPrCOQIqtsSN4wat4Y6Jvg2qmU8Pf7jMBjytUMF1iY1Oth4rM9EVIiqWZU= 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=0La/3OTh; 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="0La/3OTh" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064417; x=1797600417; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=aemOi5IutzwP6lzpzpNVxlpvX5r89JXmAras5OUfufs=; b=0La/3OThKbpIkzxBfJ3Btx7AMlvcZ3VkAP1Suxg8v2WEntbQbXyMSTcC GMwurAk55UYuaOfYmfHFf+TRU6udq6HIMZ5SNvzwnOoVhOtZ7Ck/OtziN R0jGzdwHN7cJ5l51PE8iEAKYupAaGyw0ZpBjKYeBMY5WRbmEYCtN7+6ra UOU3JYjUFEIRPFFtUHFRlUhlydkpP9U79WtHCWHcFFz13OSmLfqP8DUxW T0aTMNGwnqu56mUGmb+n6Gf2an1YugQqzIlTWB2Jzke1nZ7z9KtA2US1g /2++AyV7RXa9KH1VkgiImv72ESLEAnevw46drisCSKJPsLD6P4Q9UptvP A==; X-CSE-ConnectionGUID: Lg3y3LbkSzGyFPXGFP98mg== X-CSE-MsgGUID: z7LVbWcKRm2KQ7t1eMjcjw== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="50046772" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa4.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 18 Dec 2025 06:26:56 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) by chn-vm-ex02.mchp-main.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.58; Thu, 18 Dec 2025 06:26:17 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:13 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:25:59 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-1-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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/ZANAwAKAT455hP3e2QtAcsmYgBpRADxD2mOmOLcjoZAScPDgMH8yZoRCwCc2wQIF FtOI+W/6tCJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LZrpEADFqpD68JK3n2UfJP7k1dEld/VBlI+1Bn7f+42+131qcXhnOWUS+4Y1up634zqkGi3x+Wf LfUyx88Nv4DCo83OzztNsUFJf2oUAiY2UHKCf/OqreAKwHM2VbIuWeZL2YeUVirQmGRshkKSTUW Vw2gmP4HhCrr9w+gcqD4HmSz9FrqwKZFj+H1CSCaYIksbOiVccKVIBowv2nic8HpaZ16VGMU02Q WBIyGzK3iNNmBnW+eNEkHgmeq/RCEyPHcQuI9GnRjpaIzT7J2nYylI/puSLECaUhq6cqS1zoGi2 Ikx4LqvxvJ1GsBG9HSil/hiZWGXbPeiFWxV+ec2em7MSpAl/X5JTtSSk1izNglqIKPv7tDQn7ok yCs/hCRMf1lgzrAkqEpSYfnAON0fcyG533u2+CRzjnPM56+5O+lmgqXI24y4Y0STWVfMm11XB/b lxoPmVsaC3giqPyFkl/rs2ZYV/bULyZwpl5y8iW4tikEcKepG/cOjHoMcOgVyhSzMapYxHnLu73 krr/pBcAy6fLoEtbjF/Su3IKTWPje+rI728Uhe3edxXCdya9TpQRMjJhi5lZ5EUPS207eXUr5J7 PADkseHx+SeN6YC1p+1lAwOgy4ey9vCOzmiVOBsB0pwDH4EamuzXoPnDOT1raP3vEBxFHyybcok S+kisep92P2Y1AQ== 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 Sun Feb 8 19:35:38 2026 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 7510D33FE05 for ; Thu, 18 Dec 2025 13:27:24 +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=1766064447; cv=none; b=VwO4P6VNXQJ+Zb3APEpWWDu/8LPkzq1WUgbG9fhL7LH8yQwP5vALoSZLiZ3RsgMTulaiCFrSxcYSoYyFOTiNY0stVCafdvZsYtFyrd1bmSeTgl0CEgtqYSmdheNTlykCdUdzP3C3EItbBHuIZVKH3dEi4pR4wz95xUCtcOsGelI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064447; c=relaxed/simple; bh=//80TLvazu3o6H3NRSjGjho+1pdoyVKmxiXPeB2mjFI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=MIk1ioW9jXe+6bzfIV7chwB3D7s9x88KujP8vXlX7kLKFXi6MbPKdXTclnuRPo4R1/4vVmlnpkIYeWrY8iXF50IdGS0+xowsu+v6MHvrwMD58YOFtutuOa9Aq8tFgxTtGgz3wpGu+ebvN+Kob1I1F1Mm6WOsqW4NRZOOunkCDFA= 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=onJ3jrnN; 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="onJ3jrnN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064445; x=1797600445; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=//80TLvazu3o6H3NRSjGjho+1pdoyVKmxiXPeB2mjFI=; b=onJ3jrnNMWDDPZo242bP3kMwh2EnWINY+eb/3KLsM9shybnzOvp8BnsT MZhDFnNiNhQXfdlGn0gQ3bb0oQiqrHBCHJOrgaVCZJGLBr0eteGlA2v8K HUd8HFDzM8d8GhMbdjcQq+avw64HKPHianTnH3IfSjEsLfgS3sht4fh4z vlWWjiJ79bOsY1gV3+ouJzR5yh4PwQRnsLvW8Xao/5HHLc6aNK5ck4PFG 4SQ3uwCOtKUL959QDlIEHmHET+iaor1kZhCaaKnLRU1GCPakW+2S4qMVN xDCgPjaLAP8oEXzwGWBizhl3c/dWxAfQCspoB1RWxqlPyyQX0o4TkfMLr w==; X-CSE-ConnectionGUID: ZrngCm+8QkagMlXA0BcJtA== X-CSE-MsgGUID: NfJ73+JFTSCS7Ii8TwWKFQ== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="57519366" 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; 18 Dec 2025 06:27:22 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) by chn-vm-ex02.mchp-main.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.58; Thu, 18 Dec 2025 06:26:21 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:17 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:00 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-2-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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=kA0DAAoBPjnmE/d7ZC0ByyZiAGlEAPGgGn6eB10WHDtRUFszqHw8/L0r3xDXailGOZkWprGei YkCMwQAAQoAHRYhBAAwS8mJaaxbjW01TT455hP3e2QtBQJpRADxAAoJED455hP3e2QtTuEQAJYE WKxffO38DFMiYrdrgl7i7+s2unwYb3nx0CppcWNmGqFVtAAqWDr4845SSZxF+cxWGJLYhtyLQq9 stvbbzJpxU8JFbmEwzvKGUtjsIa0ZsST0/tbYtTDakbg6Sxo4AZeydzWFGDeXw8uLSQI0OmTsRe ykahy6/Q0jhRxmJE6U0d2XF6NapTjVyVUGXMKxWv04jmJ1ArT8O7wLmPG3JmlhbLgPNKajCEugb wAwi6wVX33IjNIxoKOm/drsgTBgQZmi1DPv/92ZMn7SC/Xqe9spgSNKi25Fo/7OZwWejYLKmMxQ mh0BZWFDzSWhJOexfpoHtc9I7ne7QeKhLS0cOFxfavCkyCRWMyBDdkenFXVTw31IfMcvL0zEuCa 5Z1aUMXk1kveJtXlIfZANsEETLYpYyhMqvU+bz4f+nYGW89Hjzk9XIrHndoI9+42tv3Mt7foqTz WJmTs1ViDMP/Ca/MmUM/AU6Jc4cZXZ63e1WhPZ166Dz4MO36bxOXM9bXnMhtQ6UJptrCOSFSPrG zjTwnOZ0OtG/wAqAjVY19QZCQoZcthWOmI9BYqmvN89TOGtX2Ehr3Vi2pVIuNOaJGGaM/uW2lJi MiVlX21RQOI/LK0OW6cgHi94BqUQ5hEJ+Tr50hRp6IXRegsPFbD4ODXP/S2pWIWSM5zulrWuxph PBR5Z 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 Sun Feb 8 19:35:38 2026 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 F27991FE46D for ; Thu, 18 Dec 2025 13:26:50 +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=1766064412; cv=none; b=G6wFOFD5JiLQP7j06CB0zv/HhszQlslZiOClRHVsTC9ZhzFl6t5YUNfIFEwCSq3cHGuz4Q+v0pUEfWuc0ycvLSNreDS4tDPRwGMzLM+BbzHZfsCgPwYzonTXnAtEZ8+z1/Q6HN8QP2XdoxVLUuoTvdC6oEYQ9yIbar4Ix510qQQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064412; c=relaxed/simple; bh=B5OMjTtB3KvSOSitHSwKvJyc6OwPvRdH+hvUZpIHPnI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=XnB8VznGY1Y2s5rIdXczhxI9prdIAJ2YM0qMCf+I5ibVhWbmHRJWthVw3IykUO9xkBIg1NV7XJihDPWA3EFnbqXuL+b3gte7lsHO8gHVGmIWyZq7mLPIjZfv/NOOhIcBI9UOaw6fZHsnDH/VVEJSg7CCyyu0mDpcyD5caLMiFxs= 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=md+Bluqg; 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="md+Bluqg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064409; x=1797600409; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=B5OMjTtB3KvSOSitHSwKvJyc6OwPvRdH+hvUZpIHPnI=; b=md+Bluqgd4RSBQL21oDQNsxmI+4JLP7/LbSkrfBuOxf0HvHUh8ZbvnkL OvGj7wOTkLfYDLdcfX/+dGcFFyyKyMGaoOEowjsKCSXB70zmQyp1ZMDQj 3+uZ3/B5SvUjYy1wgHmLz0gMjT75RxMmdVW85A+OiGPukI2PNzSe+UeKk 5UUTo4qD7yrKBpz1p52uaA+pnSoZniewR9kt+oXZfsoKMXTzQUU72RGsH trON/VC7G/gm3JFpmz9BTE/VNn+9Ct8FeZ9rEWn7oeH9lTGlRZnaPurNk /9VXIDLwtfleIn9+eDSBHog7Fn2y0ZeL/CPEtl8T6UbuQU/fSMRkOGf/f Q==; X-CSE-ConnectionGUID: 2/lmXmCJRTiQR6o8m97H0g== X-CSE-MsgGUID: vqkeqlxMSF27mt6zgOc2/w== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="218051099" 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; 18 Dec 2025 06:26:46 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) 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; Thu, 18 Dec 2025 06:26:25 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:21 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:01 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-3-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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/ZANAwAKAT455hP3e2QtAcsmYgBpRADxmkT1ZVBs1iBWhVCsdRGhMAVx0EtZocCfg GPMEdN15hGJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LdtsD/4tDMttbpQ8n+8yJUQph2yvedsFtEUcrui5cfdF8Fg62QRTSyAohKRNCHXQEGmt6cGJvrp LDaqprYJO3e5buwhYxZbdBKLVtCIrM6LY6Ty4gN2d1iuTUf+V2jbYKR2mgBAFa7AhP7MkfjN+OZ 5qBv8s/+4XQdUXA7VspAo+rhaPiPSNnRbokBDKdOAsNhS9EYZEfO8UTpqWUHlgoUT3rYnBJVbUO aLZL3DB+kmArIA0Fxi2UzJFNWVNxGq+k8z8m7wLnDaqx35MUjz1JYf20D4BYVSnKvtToDUG/Q8a S+VjZ4ZpBbqg9PnRJKItPX5WZppiMH2NP06fNSYGB7yHdlertS1Uw15saLln8uXvFredbNwl/gI yBod30u9B7eiSp56VZ2sYnLla9dyy2GziW5oRdivyStQy3XoSlHStWWlsOkmCrA0ChJUlmiB5Rp PCFPsdXbZK7ZQHrsxPaCQT86/AjwhBRSergVMRJluxeYTpBJUXC8X+lB+bbjGPnD8ug5xconAQa mikuwhuJMETYPnb60qGLexmbez4GDqcluNoggkNv8NTLE1+IOVyIgBpTaQv92lW3dQeUe3FyIUY 4WkaBVcEC7Ni9QSKzlHwon4Cy6q+ns78z9TSRduaUbQ+A3e7X3zpxZ/vKO9eZr1p1LUFqMgFw8W 9QnnScHv2Z91OMA== 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 Sun Feb 8 19:35:38 2026 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 71CEB215077 for ; Thu, 18 Dec 2025 13:26:51 +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=1766064412; cv=none; b=bLEycMnW6CYje938CWxw8Jn03LLS2A+LcaMDanlWaqvf5g66dkVUfvq0+B1JKeY4srzulTrI1uacuEayiAsnPPLYRSgU8o2PF5U5WwLvn+2eEAjiG9miMvhVFEa/GvIdj/E9WyElEiUyfntLuOmhAiqThNAWVk3TJGb5Ugm/wc0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064412; c=relaxed/simple; bh=ykS7JdsTZDTvpcv0YzakxnBGh6GHP2mr6Lt81AtHCBs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=cU46lhmErANB9wUt/YEI3FQmORSSxJ4Gg4Q4yLn6P/snQtX/vt2xEJhFm+qT5FnEGrV8C0FZLTm5fkIj7hzMspxiSYbYXJIgK6BCyD6eHlo7jAqZyMYi8yI6/Cgp0ioH5iEgdKh/vb0Zj6+i75h55Hii9LGp/wBm8puA/r6LXYs= 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=N/0q2gD6; 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="N/0q2gD6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064409; x=1797600409; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=ykS7JdsTZDTvpcv0YzakxnBGh6GHP2mr6Lt81AtHCBs=; b=N/0q2gD6FTjBxJXZFzBWu7uF1yFBc3kxOOUmeNRY6kiqkGBg6GGC5+7I l+xRmBbQTcrB/7iss6rTnkS5Rd1T+esIRupKnRh5Pa/d3mruRX95ByBk2 8i0hIyhd/Ecp4IfXYJhq1LPVeG5OXPTEWlSghawc51YLZP92ych2GyXqG +Wse94/aNiOuFK04BnwxD94Kjr/cfguImTBeWIWpeyKJBQPofuVhumeri C8MWwE8M2ihD4UeOzkEwRU9LuRoVq+SWbqcCNL80NCTNnfypBGNNcQPe5 PzaafA72mrAzBadQtt6qptIDx4d2DwYkjaFAncTvOhbq+N3drutfzBhqg w==; X-CSE-ConnectionGUID: 2/lmXmCJRTiQR6o8m97H0g== X-CSE-MsgGUID: PhUthTZ0Raq5orPdfntDFQ== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="218051100" 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; 18 Dec 2025 06:26:47 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) 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; Thu, 18 Dec 2025 06:26:29 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:25 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:02 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-4-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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/ZANAwAKAT455hP3e2QtAcsmYgBpRADxRbWuT2hrcX6yP1BWK5UPErl8Wdu+60zVH DPtxvh9+XyJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LWBzEACSRyjecbrWJOgRkgaRknQr4y87xN9b40XBCceydVJdxFtlZHN2955/Mapd/6mWtKaPROc 2+7fwAM1hm7oTOiMCRIPoZwVoDocTJo1sk6HTSFeotA+oDPGsAnXCU+Q6jWOULBse9cLGJB+qEt eFhOnbmjBRLeeoje0o6LMucCs1+DPWUlJpA8R7sNms8KJz0aPd0Breec9ksjCrH2AuTpbC/yRPY YtIg6GJVuOyz59e+kLB9G0V65bxbvS6zxPyJwNxaUVO3jqxIdi8unELts7G3HlEWrt/oAsChXrG /+YCWVwh6bEG3jEKhA628FYUpwEMUysECds+LGYTqbuxWX5tnpDSyEZEq6tLPZPR6MTIrAYZ9HQ BX3Pv3AJRI9+VQwJZSCm1z+uuy8QfXVQx8eC1nck0mGXYZoFJuZ+Zy5QH1Y0PwSax18fS66ZAEK 5elHcp3QOqmel4zUxY/W5C8L/6pmiOI+IQX/XadVP2skDe+gi7hFqIPW9FVLq7Enb225kE8mcmz 0lkFy1QOAaJsgHNy099zFIzuYFkpCHOOs3D/qeHxfY7Kes0qRdbnseUA/nWiHzI/Js/diAPsson RMeCJFx8bXDGc8XrGt5NxZ15OSi2PH3DZ3MpgHUhMrAd5gdkV6Wa9HhbSLuyOyLYtXUM24WEYB4 dPnTmhxMJm+uv2g== 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 Sun Feb 8 19:35:38 2026 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 36E4E1E47CC for ; Thu, 18 Dec 2025 13:26:52 +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=1766064413; cv=none; b=P8Ev6fYN19ntGVR7Vx/Wxo0ctJFh+yrPUxiTDwobxOdb/M9JWOlYYbjXBwcC36azMrM183fA2mWFE4Ax/PsJjqvVwYlYb4GuH7NoW7mSjCv2ZFUEANqFL5NBtVpVMpI8X56UKp21Qvi7LiBcV+TvItKPIin07712lCRkoKH8mbA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064413; c=relaxed/simple; bh=xRwp+SmcFl0i1ir4hFOL+t6xAhLCJH5Boq1BrwL91lU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=VvzP08CWTYWhlnjsawQrZYkubSi6ArRlcSJK+pc/mxddbMgUFGqUCEZjblLBsFsHieKVJ7YyFquxMe9kkM1CqNuMD3cLaYEmI5yK5kCumGdXvvypqFLkGy8Fsg3yk6qgMNEuRbu9BLHnW1HcjSVR54IcZJZmjBSGbOL5BBRqSic= 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=fvdIiShT; 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="fvdIiShT" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064410; x=1797600410; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=xRwp+SmcFl0i1ir4hFOL+t6xAhLCJH5Boq1BrwL91lU=; b=fvdIiShT8PPIWac6Q9UdQF5gsKIZDCJChuz/D/yN/fdtPxvvbz5xYKAn UIe5l8aYKDtQWWd1M3gX4g9GyuQz4zfBzL6PHc2ZeN1IGaxINQ3w13hqZ d+/JCsnyme1n4EV6Wx0SFCOeGvTXDLl1XJ4xISOKiRTCL82e+H3AbefyL e/HCYZszOxSIZhXnt5W4eu2iJmveAEqVXf61dzRuSKBerozVQmxwu48Q3 O83pDY3MGTr6dx+ERcOCqPRDDQjgviVI2DR95WQqnrtqgPoVzbjklg6ex NTxQFi2eRr6F4OWPU+whTC5eZQXIkAN3Jgo2z29/dFL7+XrW1VFaR985t g==; X-CSE-ConnectionGUID: 2/lmXmCJRTiQR6o8m97H0g== X-CSE-MsgGUID: UkCg9icLTZyOnYwvYJc1dA== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="218051101" 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; 18 Dec 2025 06:26:47 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) 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; Thu, 18 Dec 2025 06:26:32 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:29 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:03 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-5-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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=1913; i=ludovic.desroches@microchip.com; h=from:subject:message-id; bh=xRwp+SmcFl0i1ir4hFOL+t6xAhLCJH5Boq1BrwL91lU=; b=owEBbQKS/ZANAwAKAT455hP3e2QtAcsmYgBpRADxmWEmk7pBWwjYYJUn7Pn08RfdRdLnt1Clz /ADt6lPlluJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LU7nEACoTZ2nVbPYZ85txpqa2NtPydkLOs1XtsXLEe1BhH6sudMH2XU9PaAwfeUfuIMiPVSIn1P ZhZXE1HsWlTBZC0M0GYL53cr9FW6X28ax95CwZ97Uh4Tq0408pS5KooHAr7Dako2LXulUwXMh80 VzUhbgoVI0dNUiT72kfBF14x/1IjdfPY3p4Quk2+Uer4Kyn+rhQv4MGUwBC74kdqe3fqIqlPPWs ejQ96dKDX2i9YfN7rIvpHrkUkbDF6atIfQsfFDY6DIWN6F+ZK31ii5RsorLhF33OyIcQDiMBqlB N+wBXUy0YlMBpiICP2jgJRoIlo9sXO/mzb7y9IlWAQNAnv1fvliYMuWtr5N4VDKm2A1iKyvm22O cM/bpQWSayAryn3nl8wftJ/19ZmZK0Zeb72SRlR7J6xk6t4m4oi1JWUnp7pfkvsq8hk3ba3wdfQ OtVAcFV/4FuviOZDQJ1zNw/yBPtcs6tV2D2Z3UEvnu4WAXOFXQquXA5Tzr08ul6OnEdayUvculb qbzYsVomgIplSvTZs9dm3EFALTpjiYoCMASxtN/V7U6tJ9Hp2Ks9JUDfqmv9FyDKmaqYpsCA/oM VbWzG2IFH9b9PyfgJspMr3eEVu0nNveoMTTz4CJBQCMQk6PaM8PoCjqDY9ga2AVwxbMXIy+KCBf OFdwsyLghORuhcQ== 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 | 25 +++++---------------= ---- 1 file changed, 5 insertions(+), 20 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..e8aea905fb10d20d89c0cfd7937= 039b44d8a55b7 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; + int ret =3D 0; =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,23 +95,10 @@ 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) { + 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 Sun Feb 8 19:35:38 2026 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 D6AFE33B6D5 for ; Thu, 18 Dec 2025 13:26:52 +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=1766064414; cv=none; b=LlIP1CGiyyFz3TIBEMiMQQTTXuACRE5MCgw5+pu8chhbbQbJzXXx1T/9O2Httg/tIEwn0PMFdXuyNK6ktT3ej1UzirxvUM46JJytbGAdKTEaDYeeYU3cwhi1ktIaKM1lJwrogTXLcFc4M2xF2LzI+T4tEDqqCce/+BC5pomcfqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064414; 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=sXle50EOpUQxg1Ed6lWj4wwKw3p6pcIK67dG2z1nfWR0SrDG1Xr7c7ccjUU9bpFifVBVzHE1N4cLZi+QBavHsIGJXGRYEq7uxvQD4mPk+HE6OLh7wrrxyCjJW47Im828bOdLk3TI98ednMYPtY7+TZYaylpiedTM9LN3l2fetgY= 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=kDVRQZf1; 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="kDVRQZf1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064411; x=1797600411; 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=kDVRQZf1m7HD9A9Y4qzMa+u+T9iprp4kkFBMKflVzmac/R9HqunaAGHu Ke8o82RLNeULLXq31ylbN99QqK1eSPvFsk3GF2+QUH3aJofx0EH3n5uZ3 24k0lNANz+oNPX7Ea/P5AtiLHqHH+C0nReCzLIdgSV8rvlqWUmaDfBHFh 0H80G7IA7xEDZhTmieqXeUSSmUv8C1YwuMVxMIn9O2sSJpgBlrdHzt204 FaIAKm8TnIg+HspAka27+vMpyCo83g6VCDd8BfuQmbCojLP1lXHGrctmR PGM0x8v2rLmUMBFSqdntJPB4nWw7Koaa1GAhz9Y84eUU6EzacH0H6ny5g Q==; X-CSE-ConnectionGUID: 2/lmXmCJRTiQR6o8m97H0g== X-CSE-MsgGUID: 2G7U0F7qSrejLDKfYF/h8A== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="218051102" 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; 18 Dec 2025 06:26:48 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) 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; Thu, 18 Dec 2025 06:26:35 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:32 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:04 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-6-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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/ZANAwAKAT455hP3e2QtAcsmYgBpRADxtrpSY4xe5mXFiCi30OuU2WXVgrLPk8OV2 2OPMMOSKyKJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LS3ND/0WWZx3nxRsawY1DkE7jRoOUUN9YS7ELjs0+OXTRGywegRnTNxx9PDlorjWA9qpiaIDnM2 bZS3LTTByn30RYHLRCoHLYCxK2aCN9Hy8iPKH6qGZ4u9HsG1e0DR5uBQr2ngbrHhuwjDoLlnFLc +H+XDUI8ggRHJXA16QriEj1/vT8W8lvzNkRPxXdBEiSujA2CTIgPDtX5Jj4ON4rj1DaqhRz/3Vh AyHd/eIGMS1KMSi8j5ME9KePibIcgldjFKR1sBFys8r2+LguNCRHhUgUZd/nKpjj6d/E4safDlq d2KHXZ6JGUznJkPqItiQlxKvkeHsMldXFxf9lyh884DojJEw7zkhStqUiH75f7N5UbLzzqNJcuF l9ssCUXhjpL8JFUTSUYUAARKgkxtOsVfwAi9V0ByDYNnO6sQ92smGhg11kQrqjcneBsFfEnzw/J rjyZywV5vLfeDeNWHJtCvfuy71l6zOMEXO4smycWRRdb9hWMXSEirB67MoKRluuhfSOdZi575JR gbt7E03+4p1q1syjxwXn92+bNW6r6uP6CIxaLukqydURO+lk4+yvkzMdSXUc9haE+0xYGvQ6PsY 7+l43whavLtaoTgWLaHLumQQbyNsq0U7QHrnQ2FyNkImC1UwPR+ctZm+uVaV3fmzSfCAx24a5ji uQH7dRrOckQKwNg== 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 Sun Feb 8 19:35:38 2026 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 2167F33C533 for ; Thu, 18 Dec 2025 13:26:53 +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=1766064414; cv=none; b=b1ktOVCFsuwEIlYo3rr2OlLkZEDmpvHjbVp8a0/CfHSQWS3bi85NTW6ZisoCZB/z3uSP8RNNZyOue+IFTcdaSe3AdlutiKKH0O7jUZpN8LMy9/HD1277PJPjqGFS4bwyD226XwYuayCkoneuhq43hU2vAVrrrbzy7opOwUkvTBI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064414; 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=REtglCUxncdPqHEofo3jo0/iBeZ+ICI+Gkc/YRsfL4Pzv1B2W1XFrXUzGbMDnSjM0dPqtNBob+WIcSRaO0pvwqw1R+iLqFcptRsCWmghejfFIP2WZ9S+7tPT8n3/NWeGQpcasNB3IqU8cxL9XhQyGF4CKQUTtBylaOdMwlA4Czg= 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=Q+CDFesK; 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="Q+CDFesK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064411; x=1797600411; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=6+fNHOwf5B3Mr/H+++1aDzYmBahYT1JXyEW9NioMyYc=; b=Q+CDFesK+3iDmJldB8xHuduPt/DjXcW64xUewjdm7PowdGVREAZ2pKXr Ag02ID5M9Mye3mVEZGrXfGQY4HC8S7R2w8KvcQCdJv/pgvUbSRFgfrrVS TAluCReQLxxMAy5tqWHlQz+C5KmmWXPVFRj9Zz54rtaVDz5czhDlzgHSl LZkUjppilye/XFgM64V66cez1dbQLDWMJdvzu6nL8o/hes0z9693eyfJp rVqioDrnpPZFLwzFaEG+a+tlPgVN0l6MG+Bf1proUanJTWylbHVtU9fFX J8ha07rjq3ZnLxzXZvSL0GLHUgMqNnl7kK+cIty2Du0uDqGu7wcYOTKoj A==; X-CSE-ConnectionGUID: 2/lmXmCJRTiQR6o8m97H0g== X-CSE-MsgGUID: HoMX2EtATVqNcLM7kPIctg== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="218051103" 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; 18 Dec 2025 06:26:48 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) 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; Thu, 18 Dec 2025 06:26:39 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:36 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:05 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-7-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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/ZANAwAKAT455hP3e2QtAcsmYgBpRADxJCeXN8wMoRK2QGik2s1K3uFzsLStzA6lP /4JG0ZMm5iJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LWPOD/9cwXbDaLa7/EexwyQcOYwedjwilzyuTyYKw0vMYSwVRe4hQEk/FOlSLaM7y+CY5YttyrH CCS5vcLriLlQdpugbtCa+Q4MuTRFDEV70QQk/qYLf57xXrfnE7kn3qZN7xTwaLpWC2rCdz52wFG /7oGvkHjwirMPQZUOoG2C+vB4BDDmtNjMIJq4zQmY2e7n2lK4taKwWuCRObnjww0vJsZGLEfmhu LdaEGmVzWz/3YHD8PzfmhxKIjN2V9OgIP8lNTpqCdpBA6cmct4Pc/Li5Uzk8dYVIx4xng939wBf dt+9Bb42/HeYbsgl1PefiwY4tk203PSAa95KrmkjuaTUT2jmfPbGHDqY39UBHcAVh+DmCCME7XB aP1rW71Dc2Ws8Ngz3wDtGS5qeiVhDA0ja5A1ddtSWLcGkrZ6rycBr7PYxmpNuIZxNECV2tFAusT o7ad5MEMpl6s8iqDjqGbe8Zz+x3KAyX5/oIwSqIdCkQosAPu44lcsNtOTEhR3zct4hRyH9O27mi kWlLivDekNnE09Gku1IVp1q2IpQuMaQ/tI5Pg1Y7o1kkGjd9u5ox/ZgibeOoKEuHa+NIs9NLK5v DKgGgveipKautIMsUIkKwvRUho9pEdWCNUv9q+9RIWvtlMaJxpzodwkgUDFwiJcB0U4VWUD+h2a /1E1MVDS0p8joOw== 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 Sun Feb 8 19:35:38 2026 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 E38B733D6F9 for ; Thu, 18 Dec 2025 13:26:53 +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=1766064415; cv=none; b=YB/k9lNZjWRtoAQ1nTFF2rtVZaQx8GN0zHf10jynNZN/dwoe5wf5iizWEzYzl9GfxYaLerHb5cg4j6SArDlHboO/nEg4FBier6HFJLj3FEHbBno2Qr5jmGCgGYNEfbnrePOZ0MD8xlE8/67B/X3joyBRPcWN6oTtp7I0Y6lUH/U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766064415; c=relaxed/simple; bh=Ha1BPyyylS6A6UQC8yFXbfo2wrOczjUDbfibr5RJHhA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=FTGrMuFVrKtAIF+eAYWugkZ/MvRazMlbPnWm1fmxCqGZWvA8K3ipQbVYmq9OChBfLqA3WyMJ1zIuvx2LZda0w/BtL2TTSenXBjLTUIZ7BcuB+eruFrj2044Aj8FvmBCWaawL7eaxQ0g0avUGhk4FnHZeyLZE8yntZjyngAzFcaU= 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=Rvcfw2j8; 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="Rvcfw2j8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1766064412; x=1797600412; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=Ha1BPyyylS6A6UQC8yFXbfo2wrOczjUDbfibr5RJHhA=; b=Rvcfw2j8cFx55mXBGHK+w/U2gEYaYQzLR4QYX1qdZ3wAvAI6LeUm121o tbHyadL4ua9xCMG8VPdNPg4Qby8YgnpFzvi+NjGwzyWPcAqk2+nvbmN98 NrfcT6Q6yBANxBmZWRa+V9QfmJxPbILGIOriUGXcP/Os87gKDQA77qOPu Ar53F2wsKgLlTO2YsA/61+P7nEBjbLTZlwEulbpCob8IIEetj+l7lYf4m SYdbIv8kvIpoP377y6gGXZZg8unfF2T4vvCHP1IsY3uI9UHcDT0LONyfg hWbyvYhSzYXVUiw2D8diMvVMn15G1Rs0kycMmtIGH3zC0wLT44k/caWCq g==; X-CSE-ConnectionGUID: 2/lmXmCJRTiQR6o8m97H0g== X-CSE-MsgGUID: Pj9SRKW8T/S19f0gjxewKw== X-IronPort-AV: E=Sophos;i="6.21,158,1763449200"; d="scan'208";a="218051105" 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; 18 Dec 2025 06:26:49 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.87.72) 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; Thu, 18 Dec 2025 06:26:43 -0700 Received: from [127.0.0.1] (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.58 via Frontend Transport; Thu, 18 Dec 2025 06:26:40 -0700 From: Ludovic Desroches Date: Thu, 18 Dec 2025 14:26:06 +0100 Subject: [PATCH v2 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: <20251218-lcd_cleanup_mainline-v2-8-df837aba878f@microchip.com> References: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@microchip.com> In-Reply-To: <20251218-lcd_cleanup_mainline-v2-0-df837aba878f@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/ZANAwAKAT455hP3e2QtAcsmYgBpRADxs5WwSpLHexLLPdA+Ag7BoEpd0T98A1MYa C3r5qhF9MOJAjMEAAEKAB0WIQQAMEvJiWmsW41tNU0+OeYT93tkLQUCaUQA8QAKCRA+OeYT93tk LQpBEADDm8axtqGmQ6pBRiJfC22kJFO0nLsMZDsY2Qb/vSknc2TIe9gdqAvmBSG87AHRlV18GGm UoqB+IoBkyzlOq8WnFfSc9zArT9sxm7zPw1zk9farQEoIduOP39DB0xsb+TBbSM9tPLDhm7yJWE lusSRkzyoIAgASTSvIiEFAf4Xunz3hZXJCNuaNSygjGLz6P9EXlFkx896DyBxVK3S5okIcgRqKc JQnTZ+N4VTb2DckBKPwjKXfERPW3VaM5Z3cTx74+vzuccXO/0zbuHG+mnuz6yeymNoJfEG7Cbr8 SHwz40iwe0L6WaMxJFbewpfI1wQhct8QfDx7NiZSoTYCu0LGpDgSYZjGjfyhs0mk/3ZRbinjG18 U/Vqj6tL63YgvNDGxECl5JNO4iS59StGK0k/g9wetn2aB9TMyF/miLDKs6FfcIvE3yK2cV5Azhr AmHPw+WBV3Z7J0LAmkzzfJtX+BFGq0B9ZXeQGJGSPWg6uyUlrVGixBiKw1TxwW1GUl4v1umEa47 0h34Vqidj5VoIqge3GlsdxEr6XK96zolCmepHseh6cVhm5PSdYfGm7c+F/1vhihOKD/CNhU3+0a 8yziU3EO7ZJ/dPcgOIsgVjy56bPwyPAXCMA3IGRglebzCrBx1pVkUbrettg7JuaEu6c0PwaXVPx CNzohovPgq7jvMQ== 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