From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=pass header.oldest-pass=0 smtp.remote-ip=40.107.159.66 ARC-Seal: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=pass; t=1793689304; b=2Q5soUOKmbCfkkb4FJbTTuc9UoWmRM+DMZ8mUGunOWBgSAC62CSGQIHtkP/OanqZM/IF R+0pYFBl3PFFTqbf4lUISe7SUl8STaduKJwuiSratIG7F5UT4Wb5p7ID65ZdnwEPBwyi0 XA7VqYBstfr7uyFJ2cXUH4/LHYeNuts6NWmiHuWKxKSszk5JbmqssKD1C9odteAWtjK0Q NFOoiGC4rOk0eJPaUYyisyZ3lrL+QdOJommQzvBczu1sKpsHksIHsFh1CMDUhlNyTgSHl lwaRJ09K5Z1EKEBefQ/tFSoqEz8kvV5+ZbNzhakRU1LdKgX2BcVame58sKl5v5Y0CTg== ARC-Message-Signature: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793689304; h=DMARC-Filter:DKIM-Signature:Received:Received:Date:From:To:Cc: Subject:Message-ID:References:Content-Type:Content-Disposition: In-Reply-To:X-ClientProxiedBy:MIME-Version:X-MS-PublicTrafficType: X-MS-TrafficTypeDiagnostic:X-MS-Office365-Filtering-Correlation-Id: X-MS-Exchange-SenderADCheck:X-MS-Exchange-AntiSpam-Relay: X-Microsoft-Antispam:X-Microsoft-Antispam-Message-Info: X-Forefront-Antispam-Report: X-MS-Exchange-AntiSpam-MessageData-ChunkCount: X-MS-Exchange-AntiSpam-MessageData-0:X-OriginatorOrg: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-AuthSource:X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-OriginalArrivalTime: X-MS-Exchange-CrossTenant-FromEntityHeader: X-MS-Exchange-CrossTenant-Id:X-MS-Exchange-CrossTenant-MailboxType: X-MS-Exchange-CrossTenant-UserPrincipalName: X-MS-Exchange-Transport-CrossTenantHeadersStamped; bh=UCa4d7R+ROzkVoSXkT+2tcxvdLTNsKVHO67idXJZW+c=; b=h2ZDHcInGUOYWRCtwl9MwkLUjacoDFEfHB+NEWBK8kfQq/uFhqJHu1F/E77y5+gQWC6X gyPoutRrWcmZ/U6Sxd9OvK+nbgIB1HF8mj7EkgD+c4JJDTbxk5NPZJzzdqBb5pi4LcOPQ uWX+aY9VWGO3SKClOwMpBt4dkBHun8Hu5Y7Nj4b4IXvt7b6y2QcZYUetrebndWRDQRBPh tGtQpGoQ9Jy2c4iV8m634McjPlEsbIEedx20cAEwV5IWPx5P85UQdF+JkWlbT4CpDDOFk SPujeXX/4gQiAWa/vOnQ92z8obGMIiVuv7FeZZpfksM7dU/uy9rSQcvgVSZTu7xAxfA== ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=Cm4vrbqy; arc=pass header.oldest-pass=0 smtp.remote-ip=40.107.159.66 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013066.outbound.protection.outlook.com [40.107.159.66]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE841606A324 for ; Tue, 3 Nov 2026 07:01:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org DE841606A324 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=Cm4vrbqy ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yFw8eA0s6DORGZAOGkXxugxH7lM7dnAENCY+Yw0xqJ56sjHjRQEkfVjslqvHEx9G1nvHO3+3SwaHKe8bFoCleFElW3c73rtN7OHBQtkNQjyJVCZNrj6efpSEhJj5+q6x27wis/SZow/TsDwBgFP28xP4fP7K/E73Zxvu7ZRE0TqRcaZMAtFKCs8WBBm75X1o1uRCvCDDRyWTSpLKH6RlEW3MPVj84NE8rqeDzWCBxyhlbJ8ei7sb6nfcPr3oQVHOwAT2euH3f0s++opUENYkNXzfCv0+TDkU5eKRINo6xZCUNav+Zz7bm6crheNepdQh6dTNvGiMDHVgrYOOFyEuVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UCa4d7R+ROzkVoSXkT+2tcxvdLTNsKVHO67idXJZW+c=; b=jcMN77TyGnuokXvJOum8xxiFmL0Z3i9NwJGSqs2Lz/HXZ4k3JXqufTl7MgaZUGNMSHRneH7RCp+5okpaXNt6bE7wPWa2yC6oDMjyYT/PFWg6lT6xSEtnuOnZsof0ixobKOKBBPIMbSuo1JgVWkJmY17lbGiYT6ZV6Cf7NWqVqInWMxywjM5F5dJd/sn6VIG1GHNUPafZUYr5PSxIbTSatS3kn65B0vcW/uOUeVa1e4a3Y3kc7ee3aeGM35RtVpbtiLeNWKVIO072hYqZjc5Vafj34dRb/IY4eFn01aH8td09asXGC/yoMTFeCmvHcz+VPoxxVKclv586E9t0zVsFUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UCa4d7R+ROzkVoSXkT+2tcxvdLTNsKVHO67idXJZW+c=; b=Cm4vrbqyI8T7May5Zni033pDe4s63ncQD9Q6P9Ylcl2wSGSR2MH4BVpNzHNsxsFdUJNz7v2vzAgt/VGcq0AHcW8xzuf6Jk6c5pegTFuZZgFNZPPSeQ1o4LfCap5ramDEQdg4YjerTtSztwU5v61a/AvImk91AzRAGU5vVgKVUmiddWh3AuJExeut90Q0mxQSuO1/qN6gIMBDQ6Fodwh5hcFllEFkWkeYKJfuaWw5eYPdT93s32MKoZPo2jNnXQa0HjmNjy4vbdB5Nr9OpuXkXOysfPnUs7F8BhiK//Y1GNoAyM6Bd+odHO0KXFkJJ0cYGMGd3yT7cyGNYrMFdmUU4Q== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from MI9PR04MB350878.eurprd04.prod.outlook.com (2603:10a6:290:c0::7) by DU4PR04MB11032.eurprd04.prod.outlook.com (2603:10a6:10:58a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Tue, 3 Nov 2026 07:01:41 +0000 Received: from MI9PR04MB350878.eurprd04.prod.outlook.com ([fe80::8537:1cdd:6c49:6151]) by MI9PR04MB350878.eurprd04.prod.outlook.com ([fe80::8537:1cdd:6c49:6151%6]) with mapi id 15.21.0569.011; Tue, 3 Nov 2026 07:01:41 +0000 Date: Tue, 3 Nov 2026 15:03:21 +0800 From: Liu Ying To: sashiko-reviews@lists.linux.dev Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, imx@lists.linux.dev, robh@kernel.org, conor+dt@kernel.org, Frank.Li@kernel.org Subject: Re: [PATCH v9 04/16] drm/imx: dc-kms: Use driver specific .atomic_commit_tail callback Message-ID: References: <20261103-imx8-dc-prefetch-v9-0-3b985e7636e2@nxp.com> <20261103-imx8-dc-prefetch-v9-4-3b985e7636e2@nxp.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SI2PR02CA0037.apcprd02.prod.outlook.com (2603:1096:4:196::8) To MI9PR04MB350878.eurprd04.prod.outlook.com (2603:10a6:290:c0::7) X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MI9PR04MB350878:EE_|DU4PR04MB11032:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d264934-18a5-458e-83df-08df39784fe4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|23010399003|19092799006|22082099003|18002099003|56012099006|10067099003|261009223027099003|261022105027099003|261022075727099003|4143699003|11063799006|261028144727099003|261026140227099003|261026121527099003; X-Microsoft-Antispam-Message-Info: NwDwWtJXTVpvYqxnbMx71w85VXPmGIbyj2z+qvpbetTOBs3pNGrJQ9ZlFjpffih1WtdXtTlwl760vNBuuNkOlHz1/68SL6/msx7/ISw8aINF6oLEVG491PfFFm2fpM1firLvwgIKvIyZFx5RXoDW0fYMn3Jb1EAf/U7be5mlNY6x7wZnwoIbKU0CLRklfMXR00rShSFnC2w/HovypOk33iE/p3MdgMs6PbG7Q/PhFxcnGHOm+mfoYk+HlRMluBgalnf4Y0gbvh8ZAUybC6kKpejil7n3CZ4D9w3SSDJQ21BV2tcZNqZcaHf+UDEbuom2JmbOej7/o0NkzLmwhAylD5ItcXdfP9htGNwaNIEZ/TrBIeHH90YTyQOH0FAkSTOqUKuGUACsswdPtmDj8Vp+YNivHVtYgU9+E+piQPj1Bz8RximxNFPmCv27SmKCsQ2VvSpWNVpIAP/m1h2s8DPy2OKaAz9Ck19jW7BIDMW8xwDAHYmugxcDC6TcEm/prN0BN7fL0IP9UAzS+ie/BHaXV3iDvhhsvuznWI158Gcl1pTphC1BnwSKk1oF6GwV/HZjHmam6q6s9SjrsEFxLcTtDynfCNuLIvs8hL6MGrCkQTEgXMA6foQ5yWeTbMyMRqscCUrAToLAAEiAitygCJS7Bnivntsm2UI/QPasLA3G6hs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MI9PR04MB350878.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(19092799006)(22082099003)(18002099003)(56012099006)(10067099003)(261009223027099003)(261022105027099003)(261022075727099003)(4143699003)(11063799006)(261028144727099003)(261026140227099003)(261026121527099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OETbaS5tRPcrcxIGEJeEpn98LqeYx08uROcm26EW80Q0lPn/bHhQnV79jH0v?= =?us-ascii?Q?JJNOGmiqK89HbDODVbHTf5NFKCyLECBUrrDR2P6GCLBfN3ytG7ozJ3mRYQfM?= =?us-ascii?Q?XAmMcJ6ZvOkE87NNbmyj+b6TsLBdIeL/aRImoPKwmH1N7gYkzsKJ0PZSJdh3?= =?us-ascii?Q?RLAyomcMZP9Uue3fBxtIjOoYRIXYGBrFbESSVXD1nn6x/SsyBIXaEvwKZqll?= =?us-ascii?Q?mJfCS6P4MkUwL0X+N9xURuABbiQOd99sjGBjIbBHfF6DjunP8f06KJmUYRjb?= =?us-ascii?Q?67O0hL/TCVRzcwZWdc6Q7lCIaE45V72+vaXOpnFJA58in12grAz6xoNp7clD?= =?us-ascii?Q?Qd+50wuGusVecCumlQ1GJmYOc/La7+otvRVgT++j1qW+RT8qYigKhHR9/Oh2?= =?us-ascii?Q?2JChnt3dXEesDv1XbPcHhT8YsZijsnCKYXIUYsNyB+rWzOZc/MNu03pv4QDW?= =?us-ascii?Q?6EgvENtJdlIIp73OSy8yyqPYzeER0catqmxQbODcKZmypvFKnr/8V4sdBQBt?= =?us-ascii?Q?aOKu8+Hujj533Btva6bG/h3+ua7vlNMyhe8R7sWTZzI9Mbs9yvRgCcN/CnAU?= =?us-ascii?Q?f9W6JiPh5uiNaqDwSZCNRwI2bEPWIAzMlTZ7RF45JyX5udCw8+pR89sIytOd?= =?us-ascii?Q?jpmuRTTNXq+LrgtqEAtNLHRjsjijnjdPLRM+suf8yW4zMIwfZWxK/Bk2kay7?= =?us-ascii?Q?BFDStR3mpiAUDlKhANmbUFwfR0l/Xih6rPNmcmwRSWeq8oLMV1X6jgqs/o47?= =?us-ascii?Q?na2QcAf2BcXBDbPKQDduLUD7ilTTynAg/SUPuB8k5Xtej3judFcvoQGIgAbq?= =?us-ascii?Q?ZB0TKak49knucZHlqzrYTe5tAznLqP7To7iNZa2f/99O6RMz+kEhIOQC+UwN?= =?us-ascii?Q?GA60XkrCVCPuKf7yBh4e0jbNWYZLUn+yU78Pl7DSMu/B354wmayTTPNx3sG+?= =?us-ascii?Q?o9BJx1Mu9vm0p6EFMgvKsypeDQO44fJxitdxi41NBUDThL6LHwPC8fCxIv/j?= =?us-ascii?Q?M20aJUPmvzvfVvWoEsQncF0LlQcQFL76Dt5nTitH02H42I91ThVifPwwDDGf?= =?us-ascii?Q?u5EAqOdPEcAb/GE02dn/IC/DsW4Tk+t/Gx2pPHZQHXHAyFHzL1BACkvxN+fF?= =?us-ascii?Q?JyIoZLboSFS0kzv3E8cpsN+dpIa1YcVw+1r1iT7loPMFvKW7dvqHbY8hWbHN?= =?us-ascii?Q?XEcLVZEXBRztIcUn31gc6YUkbFeqSTmcj/wSUVv0W4a2b2O59oFyjd/vdtMI?= =?us-ascii?Q?sQ0TV2bStHtF2Vs7wX2kkt4NLPAsfyHmE5qtmxrjnq6UYf9A8zuvWaN86SvF?= =?us-ascii?Q?pZeehv/Fh0H36pBZH7xP2+tGewkIlYSL9NA1CgLQSuXe3L1f68hw+kOcx7Lx?= =?us-ascii?Q?qliVzvdOnMLfTAhE+IOc1pE+oXO9xK1Zn8t+4sZ1wZ8P8b8bFm0sFGj/92/k?= =?us-ascii?Q?CSlU+J4iuTJ7IFTYT79mK0CChdqLxtPlFew7ahFZ3YLtLk8ig9ZcV8Y0mKKc?= =?us-ascii?Q?XtoHp5GmNCoV62NASujsyCD2lb7kEhcxOPnr3xOUuXqy2B7hJKTEqNTwyEcH?= =?us-ascii?Q?DrB+VPaTVhsGefAKpQuNaFKsMBAiTIsgwWjG2IJhIUxjglu3i+nrVbwa+Jte?= =?us-ascii?Q?9WOcRBhYTBGr7yLoXXXD97AgWv93wC+wrVNtF4OjLUBt+RwVjzsLXSNrUdrK?= =?us-ascii?Q?TMHSSMyKnY2S3dw9JCe0CFkQN/3aBQGWENjSfBh4vfIzrMTT1vbHOguTtYyE?= =?us-ascii?Q?Lmd/scfVwQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d264934-18a5-458e-83df-08df39784fe4 X-MS-Exchange-CrossTenant-AuthSource: MI9PR04MB350878.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2026 07:01:41.1406 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FdnkPdsKC6QkPKNzEo/WjMCl/7oJ1BpPPWyLzB94tHJFSMcRHRtHo+jtYIGizjX/MizuWosgAHECs6eLd86oZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB11032 On Tue, Nov 03, 2026 at 06:39:15AM +0000, sashiko-bot@kernel.org wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [High] drm/imx: dc: plane disable skipped on modeset in dc_drm_atomic_commit_tail() > -- > > commit ff022f683849ca82589cd00028c8fb7c412423dc > Author: Liu Ying > > drm/imx: dc-kms: Use driver specific .atomic_commit_tail callback > > This commit introduces a custom atomic_commit_tail callback for the i.MX8qxp > Display Controller KMS driver that passes DRM_PLANE_COMMIT_ACTIVE_ONLY and > DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET to drm_atomic_helper_commit_planes() > to avoid accessing plane registers while clocks are disabled. > > > diff --git a/drivers/gpu/drm/imx/dc/dc-kms.c b/drivers/gpu/drm/imx/dc/dc-kms.c > > index 0e2ce6a425487..9ffa15ac43a25 100644 > > --- a/drivers/gpu/drm/imx/dc/dc-kms.c > > +++ b/drivers/gpu/drm/imx/dc/dc-kms.c > [ ... ] > > @@ -30,6 +31,29 @@ static const struct drm_mode_config_funcs dc_drm_mode_config_funcs = { > > .atomic_commit = drm_atomic_helper_commit, > > }; > > > > +static void dc_drm_atomic_commit_tail(struct drm_atomic_commit *state) > > +{ > > + struct drm_device *dev = state->dev; > > + > > + drm_atomic_helper_commit_modeset_disables(dev, state); > > + > > + drm_atomic_helper_commit_planes(dev, state, > > + DRM_PLANE_COMMIT_ACTIVE_ONLY | > > + DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET); > > [Severity: High] > Could passing DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET (and > DRM_PLANE_COMMIT_ACTIVE_ONLY) here leave the plane's FetchUnit source buffer > and LayerBlend enabled in hardware after the old framebuffer is cleaned up? No, because the plane's CRTC is being disabled, all hardware units backing the plane will effectively stop working together with the disabled CRTC. > > In drm_atomic_helper_commit_planes(), DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET > skips calling funcs->atomic_disable() when the CRTC needs a modeset: > > if (disabling && funcs->atomic_disable) { > struct drm_crtc_state *crtc_state; > > crtc_state = old_plane_state->crtc->state; > > if (drm_atomic_crtc_needs_modeset(crtc_state) && > no_disable) > continue; > > funcs->atomic_disable(plane, state); > } > > That flag is meant for drivers where the CRTC atomic_disable callback also > disables the CRTC's planes. However, in drivers/gpu/drm/imx/dc/dc-crtc.c, > dc_crtc_atomic_disable() only disables FrameGen and calls pm_runtime_put() on > the Display Engine and the shared Pixel Engine without disabling the planes: > > enable_irq(dc_crtc->irq_dec_seqcomplete); > dc_fg_disable(dc_crtc->fg); > DC_CRTC_WAIT_FOR_COMPLETION_TIMEOUT(dec_seqcomplete_done); > disable_irq(dc_crtc->irq_dec_seqcomplete); > > dc_fg_disable_clock(dc_crtc->fg); > > /* request pixel engine power-off as plane is off too */ > pm_runtime_put(dc_drm->pe->dev); > > And in drivers/gpu/drm/imx/dc/dc-plane.c, __dc_plane_atomic_disable() is what > actually disables the FetchUnit source buffer and LayerBlend: > > /* disable fetchunit in shadow */ > fu_ops = dc_fu_get_ops(dplane->fu); > fu_ops->disable_src_buf(dplane->fu, DC_FETCHUNIT_FRAC0); > > /* set ExtDst's source to ConstFrame */ > dc_ed_pec_src_sel(dplane->ed, dc_cf_get_link_id(dplane->cf)); > > When dc_crtc_atomic_enable() runs with new_crtc_state->plane_mask == 0, it > switches ed_cont's source selection to cf_cont, but it does not call > fu_ops->disable_src_buf(): That's fine, because FetchUnit and LayerBlend won't work if ed_cont's source selection is switched to cf_cont. > > /* show CRTC background if no plane is enabled */ > if (new_crtc_state->plane_mask == 0) { > /* constframe in content stream shows black frame */ > dc_cf_constantcolor_black(dc_crtc->cf_cont); > > cf_link = dc_cf_get_link_id(dc_crtc->cf_cont); > dc_ed_pec_src_sel(dc_crtc->ed_cont, cf_link); > } [...] -- Regards, Liu Ying