From nobody Thu Dec 18 07:18:07 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02B29C54E76 for ; Mon, 20 Nov 2023 10:08:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233035AbjKTKIc (ORCPT ); Mon, 20 Nov 2023 05:08:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233137AbjKTKIK (ORCPT ); Mon, 20 Nov 2023 05:08:10 -0500 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2082.outbound.protection.outlook.com [40.107.7.82]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4080FFF for ; Mon, 20 Nov 2023 02:08:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HUYDV21KNvs8nGKE6WwabwKuPNrKqOzqW+QCBNwAOpRV0IbUEh0Apn4mvZTIR03HbpUU5gXubSDmkIo3elwRwGk2i1FOl2zThldBAYETwPnJ/Nn1xSnctCwM+pyHy5zq6akmL1FE8Bsdv9D6FJ+WOOUxd0kLDMmBhQdT8kybuyuOBb+h6JGP3iA85SNuEar+bOSa/EC6qEc3OtfFeaJu2yimH1CkjMi+zx6PIZG6JzdXz5rlVHf8QVi76VO/G+bHnjDwOmeEAIyfoFAn+HfkRu3bi5fgCHmKFP4UVAS8QcQA5Nd4YQEMDduWVPggX9AXr2szH1ae8PzIYfVI6M/KSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=OkQEJHZp6uMV+dosh1mKLBdAJPmMmpzYpg2s1xzTuUs=; b=KVMQJLbcHwsb76QQKp2/J9O9fAk2+wkVRkHFbmXR8DhvOLpn6lw6lTah8FnEWF5d40Hqva+KzV9HUVzht2vY74fLqli0ZRrhp5MFkiztIg3zQJtVQ+ffcJW4jKLBzz4MOZfkYhrz448XVKiVRxYwqT3YeXvHsPujEZUi9soGqWTHf93sSetqywiXfPC1v1ldNCnyqSbB4HamH/kxKiBC29r4d4RLY530xInF05SUVmjqkcSsTtQ1C+sW72uya1IRennzh2fTl0V7gi5kTgMPQJdlbvSQK5zGg4unTvjo5YM1ZfpP+Lab3oPrBDzP4FFXN5nxTbeBsJfhorDBt7bHAA== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OkQEJHZp6uMV+dosh1mKLBdAJPmMmpzYpg2s1xzTuUs=; b=qzEy/yAQtvQJuthXh1Cn/e4SM2ReRGjqX5mP+KlpthcIielFXbdCwxUnQ5oJyCE3ti+COHvqhEr2Vj6OgpX4jAI5sYS87i/54oYzmSLLLU4TxrFCaf0oeCoYnLVzv7ZTdP/LX7NZ7GR4+REhVwwMK8wHhzhghvK+7ZE2iIzaM6k= Received: from AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) by AM8PR04MB7841.eurprd04.prod.outlook.com (2603:10a6:20b:244::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.16; Mon, 20 Nov 2023 10:08:00 +0000 Received: from AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::d99:f43f:65a3:9bf]) by AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::d99:f43f:65a3:9bf%6]) with mapi id 15.20.7025.015; Mon, 20 Nov 2023 10:08:00 +0000 From: Ying Liu To: Linus Walleij CC: "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "andrzej.hajda@intel.com" , "neil.armstrong@linaro.org" , "rfoss@kernel.org" , "Laurent.pinchart@ideasonboard.com" , "jonas@kwiboo.se" , "jernej.skrabec@gmail.com" , "airlied@gmail.com" , "daniel@ffwll.ch" , Ulf Hansson Subject: RE: [PATCH v3] drm/bridge: panel: Add a device link between drm device and panel device Thread-Topic: [PATCH v3] drm/bridge: panel: Add a device link between drm device and panel device Thread-Index: AQHZyPVXeBJTD139FkmL7cmc6zCmuLB6+eEAgAikP4A= Date: Mon, 20 Nov 2023 10:07:59 +0000 Message-ID: References: <20230807061115.3244501-1-victor.liu@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM7PR04MB7046:EE_|AM8PR04MB7841:EE_ x-ms-office365-filtering-correlation-id: 28b73867-680c-40f9-2297-08dbe9b0937d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: D5IYYNZl95KwIEdbEBp751mKZCniHSjlgc5TTbVZ3WDBxC8zkyJoklk4avf6tM+KFEgWsT7IEpv71WuOwXHxm3k1h1Qqb76RlgmkTeVq15ws4lT3JZZWitARfmtKw3+7LCmqCoOkEfLNuxzXpxbcumcgE7zp+mn0qPT/RNgfRJfcP+s/Qy1IW6P1BCcygPXvoQkC41IWS4F/ObmK/nkdNDj2RYXtoD8XvtyC9cIxh2kXnVPc7NWDTaC40ON09/8OeQhb45e9B/qeWY3l4FMyruIBCIXwuBRmDbJnaGYhpyBtXi8UDxzuiA2U00xuXJ+YX+RCOs4jsGKLsq1+SdrkE7t0nWkHVBuADSctSRY48xyZvmv6r8ym2fa/C1p9DY784aw4yS9sDt4rOXr5mcL8DvZdMJfRHQro68Sfznq1tVzNu0AnsNhAGarg225/Pn7fiTCDwz1iBlA/H/DwjWTdX84WoK2da1J1lS/NDAWdBmcEyMwPl5WWM7vbkUAwvwXlMvpDNAELJ0GJ4Bj5OPanfJTYoSofXwX3yQyqcNduMOBnWr25ULQe37ahIJBEfZ0beVUIt5gPc4awjIcWv9Cql1oCT57OFOYlhSNNYWV435hFAHnHJVZl3369UCVtMJ2W+ti4lLInJfVQFeHS2/XBIA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR04MB7046.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(376002)(346002)(136003)(366004)(39860400002)(230273577357003)(230922051799003)(230173577357003)(451199024)(64100799003)(1800799012)(186009)(41300700001)(66899024)(5660300002)(86362001)(7416002)(52536014)(33656002)(2906002)(38070700009)(122000001)(9686003)(6506007)(7696005)(53546011)(26005)(55016003)(83380400001)(45080400002)(966005)(478600001)(71200400001)(4326008)(8936002)(38100700002)(8676002)(66446008)(66476007)(66556008)(64756008)(54906003)(316002)(6916009)(66946007)(76116006);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SmNaSk5KQ2FkWnBTR21XTUZRdW03WHZBMzFQRFNHYjZuRzl6ZlVFeHNESjYz?= =?utf-8?B?cTBQdmg4eGlvdjNlMXdRTHh5SmxQVGJnZzA3L25oNnR1RGVQWWZxenU1UzdK?= =?utf-8?B?UUt3aVhLcHRCNUVieVZxNks4Y1BkdzExdGFGMzdvRzVBb2lzRzBXZUpDSUI4?= =?utf-8?B?d0N0WnQycEgrckRtSm9ldmlHa2NRekJqVlNnZjdQTzVHRzk0cWtEM1hSNHVD?= =?utf-8?B?NG9IOUJhTUJ0NWliU1VzZjJ0Ly9PanNNNHF0NHpKNWtXV1BuUXRxMWdWRGFp?= =?utf-8?B?ZVBLUVFyM09nTGJEOElYeWhXOWFvblM2cHNveWplQm9yYUtXMjY5WW9KRG9Q?= =?utf-8?B?UjRHRlhCM0Npd1lVVnVRaHdyckNzTVd0ZDdxcEc2aUdwOVpkdWFESXRkL1NK?= =?utf-8?B?YjdZOTJRK2d3TkI2WXlXLzhQUlNTMnJlTUt2Y1lNQU5ZbThxZnFWQ3BkLzY4?= =?utf-8?B?MG1yeEd4TnArN3dpQkJIeWJKMkxuODNxVm9OZ1FEUzBQV3NFakFidXdhY2Yz?= =?utf-8?B?aHoxMmxpYmVQenJGdW13TzFLbU1sRHZaRi9peVNaWCswN3AxTlE1cFArcTNF?= =?utf-8?B?TUtxOWk0MUJaKzZuekRLZnlsbUxXSWl6cGxlNzE1djJlZWNiUk00d0UzNTJV?= =?utf-8?B?L2VQWDJSL3hqOXgwSXJOeVovRzNXa3RuWXQxK0UzYkYyVmRQREhUbzFUcU9D?= =?utf-8?B?VklZdEpIVHEzaW9yZTYvZlF4Q1pBTThicGduRGptellxck5LeDNoZm9rWHE2?= =?utf-8?B?ajBIQjN5d0w4bU9uQ2VTZTNDSno4Zi9TZXBtT2lsR01yRTNvRWxZcXI4Z0E2?= =?utf-8?B?Vk1nYjI5cjlWY0lWeDVOM0lJcWVrTnhlYWUrdVkzZzJib1JJaTlZTGxuMzgv?= =?utf-8?B?QkM1ZEIxMnNrZEp2YzVPaXNLUVppTzlpRzM1Sno4UWhjcTRwQ0FsazRBbmRk?= =?utf-8?B?aDRMZlR6R2ttZ0JuWFc0bmJmOFVweFdCVjYvaXFBR2pzOHh1dFk1NTFtelFq?= =?utf-8?B?L1FRZURkelVLbzJ1YkN5YVBvWGtUTUZrR1k0T0lzN1c3bUYrUVJWUS9pdjJ4?= =?utf-8?B?VW96RUtqOGxlT003N0g5S2NSYjlnWlpHL2tacWFuVklqQWJ4cW9aOGlKaEhD?= =?utf-8?B?VEFBRDlPSGdaUjVMK0tzZVMxRDNOcSsrVi9jRzFDOUgwYXNNd3NLcW44eTFG?= =?utf-8?B?b3BhMGExME1EKzBiM2JlWldmZnNScXJpY3Jya0RiMzZFVGVrVkZ0UjU3SHBT?= =?utf-8?B?ZDcxZjJIZkIrNmhJV0ZUYllkSnZuYjVSV0tOT2RGaWMzMCtwRlg2SHBuNUZL?= =?utf-8?B?R3hxNHk2K3JLTitkK2o5V2hTVVV6cE9RZmtCTXI3VFpqMXczY1FTYnJWV0I1?= =?utf-8?B?UlpuWnJmVHBicGJwZ3J2UWgrNUMzTjJFREd0L1FHT2N4K2lVcTZPRkNsWUpR?= =?utf-8?B?NzdoZFFDaWlrS0RpZWJPZ2lUdERydURpZXdRZ3Z1dzRmUnBJcCtTTzNEQ2ov?= =?utf-8?B?aU1uV2lLQkpyWkROTjdtTi9XazBmWFZBaWswc3p4d01ITWFUL1ZOMjkvaGZx?= =?utf-8?B?U2NuNkY4bUg0ZGxLRHlhckJrTzlGZm9CaWpNeFlJWjFTejQvWDA1dHZOK1hE?= =?utf-8?B?UnlEcVBGUTRZKzJTRitTc1JIaGJrRlhyMnRYY2tueU8wYjJ3MTZUNjZ1OWlW?= =?utf-8?B?cHczNmNIMS83cmV1VWVIZUh3clZ2OHFpUzFZZWkvVy8vTlJZY09sNHh4TkZt?= =?utf-8?B?NURzeG5yNllDdXBDWks2ajRjMHdCeGFSMTErZXd4cldqdUMzR0J3VDZDZkJw?= =?utf-8?B?ZkpqNnBNbTJiWENKY0QrY2R5WVh3MkRVY1ZOZGlLZjBjakRZWG1lRWYrb3lN?= =?utf-8?B?b2JIK1YvcUtQSkd4S0QvTlU5ditaVXlNb1EyQUtEWmN0Nzcvekw0Tkh5Y3BK?= =?utf-8?B?MGIrM3V5YlBLUCtoSENlKy9CYi9wZHNmTTRlRU4wNHJFTFExTmpXY1Z1d2c0?= =?utf-8?B?dU9jdmlNbkFQU1BvdGNpYk9HZlIyZzdVci9zWUVFOU9tYnEyQmV4QWhiVGxo?= =?utf-8?B?T1lodkxFWCtkMmFBODB3RjlUcXlvVmlUaC9wa0NraDlOVkhZM3ZFRTNxUjlo?= =?utf-8?Q?MSKM=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 28b73867-680c-40f9-2297-08dbe9b0937d X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2023 10:08:00.0908 (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: LKoe4e+Fq11SQ5H/TJNPAYVQB9g4hOAc2mosVUEoFb48yy0QuqXemKkZW1aCiobnuOwOHoZQOUccEZsLG7UNlw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7841 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Linus, On Wednesday, November 15, 2023 6:00 AM, Linus Walleij wrote: > On Mon, Aug 7, 2023 at 8:06=E2=80=AFAM Liu Ying wrot= e: > > > Add the device link when panel bridge is attached and delete the link > > when panel bridge is detached. The drm device is the consumer while > > the panel device is the supplier. This makes sure that the drm device > > suspends eariler and resumes later than the panel device, hence resolves > > problems where the order is reversed, like the problematic case mention= ed > > in the below link. > > > > Link: > https://lore.k/ > ernel.org%2Flkml%2FCAPDyKFr0XjrU_udKoUKQ_q8RWaUkyqL%2B8fV- > 7s1CTMqi7u3- > Rg%40mail.gmail.com%2FT%2F&data=3D05%7C01%7Cvictor.liu%40nxp.com%7 > Cd007e6260de84d50c92b08dbe55d10e5%7C686ea1d3bc2b4c6fa92cd99c5c3 > 01635%7C0%7C0%7C638355960110773397%7CUnknown%7CTWFpbGZsb3d8 > eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3 > D%7C3000%7C%7C%7C&sdata=3DeXtezc2MPeFy1uo09iqHlYJq3iA6S%2BfxSre5y > s7xrhc%3D&reserved=3D0 > > Suggested-by: Ulf Hansson > > Signed-off-by: Liu Ying > > --- > > v2->v3: > > * Improve commit message s/swapped/reversed/. > > This patch causes a regression in the Ux500 MCDE > drivers/gpu/drm/mcde/* driver with the nt35510 panel > drivers/gpu/drm/panel/panel-novatek-nt35510.c > my dmesg looks like this: > > [ 1.678680] mcde a0350000.mcde: MCDE clk rate 199680000 Hz > [ 1.684448] mcde a0350000.mcde: found MCDE HW revision 3.0 (dev 8, > metal fix 0) > [ 1.692840] mcde-dsi a0351000.dsi: HW revision 0x02327457 > [ 1.699310] mcde-dsi a0351000.dsi: attached DSI device with 2 lanes > [ 1.705627] mcde-dsi a0351000.dsi: format 00000000, 24bpp > [ 1.711059] mcde-dsi a0351000.dsi: mode flags: 00000400 > [ 1.716400] mcde-dsi a0351000.dsi: registered DSI host > [ 1.722473] mcde-dsi a0352000.dsi: HW revision 0x02327457 > [ 1.727874] mcde-dsi a0352000.dsi: registered DSI host > [ 1.733734] mcde-dsi a0353000.dsi: HW revision 0x02327457 > [ 1.739135] mcde-dsi a0353000.dsi: registered DSI host > [ 1.814971] mcde-dsi a0351000.dsi: connected to panel > [ 1.820037] mcde-dsi a0351000.dsi: initialized MCDE DSI bridge > [ 1.825958] mcde a0350000.mcde: bound a0351000.dsi (ops > mcde_dsi_component_ops) > [ 1.833312] mcde-dsi a0352000.dsi: unused DSI interface > [ 1.838531] mcde a0350000.mcde: bound a0352000.dsi (ops > mcde_dsi_component_ops) > [ 1.845886] mcde-dsi a0353000.dsi: unused DSI interface > [ 1.851135] mcde a0350000.mcde: bound a0353000.dsi (ops > mcde_dsi_component_ops) > [ 1.858917] [drm:panel_bridge_attach] *ERROR* Failed to add device > link between a0350000.mcde and a0351000.dsi.0 Sorry for the breakage and a bit late response(I'm a bit busy with internal things). I think device_link_add() fails because a0351000.dsi.0 already depends on a0350000.mcde. Can you confirm that device_link_add() returns NULL right after it calls device_is_dependent()? Does this patch fix the issue? Tested-by: Linus Walleij --------------------------------------8<-----------------------------------= ---------------- diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c index e48823a4f1ed..d44de301a312 100644 --- a/drivers/gpu/drm/bridge/panel.c +++ b/drivers/gpu/drm/bridge/panel.c @@ -23,6 +23,7 @@ struct panel_bridge { struct drm_panel *panel; struct device_link *link; u32 connector_type; + bool is_independent; }; static inline struct panel_bridge * @@ -67,12 +68,17 @@ static int panel_bridge_attach(struct drm_bridge *bridg= e, struct drm_device *drm_dev =3D bridge->dev; int ret; - panel_bridge->link =3D device_link_add(drm_dev->dev, panel->dev, - DL_FLAG_STATELESS); - if (!panel_bridge->link) { - DRM_ERROR("Failed to add device link between %s and %s\n", - dev_name(drm_dev->dev), dev_name(panel->dev)); - return -EINVAL; + panel_bridge->is_independent =3D !device_is_dependent(drm_dev->dev, + panel->dev); + + if (panel_bridge->is_independent) { + panel_bridge->link =3D device_link_add(drm_dev->dev, panel-= >dev, + DL_FLAG_STATELESS); + if (!panel_bridge->link) { + DRM_ERROR("Failed to add device link between %s and= %s\n", + dev_name(drm_dev->dev), dev_name(panel->d= ev)); + return -EINVAL; + } } if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) @@ -92,7 +98,8 @@ static int panel_bridge_attach(struct drm_bridge *bridge, panel_bridge->connector_type); if (ret) { DRM_ERROR("Failed to initialize connector\n"); - device_link_del(panel_bridge->link); + if (panel_bridge->is_independent) + device_link_del(panel_bridge->link); return ret; } @@ -115,7 +122,8 @@ static void panel_bridge_detach(struct drm_bridge *brid= ge) struct panel_bridge *panel_bridge =3D drm_bridge_to_panel_bridge(br= idge); struct drm_connector *connector =3D &panel_bridge->connector; - device_link_del(panel_bridge->link); + if (panel_bridge->is_independent) + device_link_del(panel_bridge->link); /* * Cleanup the connector if we know it was initialized. --------------------------------------8<-----------------------------------= ---------------- > [ 1.869171] [drm:drm_bridge_attach] *ERROR* failed to attach bridge > /soc/mcde@a0350000/dsi@a0351000/panel to encoder None-34: -22 > [ 1.880920] [drm:drm_bridge_attach] *ERROR* failed to attach bridge > /soc/mcde@a0350000/dsi@a0351000 to encoder None-34: -22 > [ 1.892120] mcde a0350000.mcde: failed to attach display output bridge > [ 1.898773] mcde a0350000.mcde: adev bind failed: -22 > [ 1.903991] mcde a0350000.mcde: failed to add component master > [ 1.909912] mcde: probe of a0350000.mcde failed with error -22 > [ 1.916656] ------------[ cut here ]------------ > [ 1.921295] WARNING: CPU: 1 PID: 1 at drivers/regulator/core.c:2996 > _regulator_disable+0x130/0x190 > [ 1.930297] unbalanced disables for AUX6 > [ 1.934265] Modules linked in: > [ 1.937347] CPU: 1 PID: 1 Comm: swapper/0 Not tainted > 6.6.0-08649-g7d461b291e65 #3 > [ 1.944915] Hardware name: ST-Ericsson Ux5x0 platform (Device Tree > Support) > [ 1.951873] unwind_backtrace from show_stack+0x10/0x14 > [ 1.957122] show_stack from dump_stack_lvl+0x40/0x4c > [ 1.962188] dump_stack_lvl from __warn+0x84/0xc8 > [ 1.966918] __warn from warn_slowpath_fmt+0x124/0x190 > [ 1.972076] warn_slowpath_fmt from _regulator_disable+0x130/0x190 > [ 1.978271] _regulator_disable from regulator_bulk_disable+0x5c/0x100 > [ 1.984802] regulator_bulk_disable from nt35510_remove+0x1c/0x58 > [ 1.990905] nt35510_remove from mipi_dsi_drv_remove+0x18/0x20 > [ 1.996765] mipi_dsi_drv_remove from > device_release_driver_internal+0x184/0x1f8 > [ 2.004180] device_release_driver_internal from > bus_remove_device+0xc0/0xe4 > [ 2.011230] bus_remove_device from device_del+0x14c/0x464 > [ 2.016723] device_del from device_unregister+0xc/0x20 > [ 2.021972] device_unregister from mipi_dsi_remove_device_fn+0x34/0x3c > [ 2.028594] mipi_dsi_remove_device_fn from > device_for_each_child+0x64/0xa4 > [ 2.035583] device_for_each_child from > mipi_dsi_host_unregister+0x24/0x50 > [ 2.042480] mipi_dsi_host_unregister from platform_remove+0x20/0x5c > [ 2.048858] platform_remove from > device_release_driver_internal+0x184/0x1f8 > [ 2.055908] device_release_driver_internal from > bus_remove_device+0xc0/0xe4 > [ 2.062957] bus_remove_device from device_del+0x14c/0x464 > [ 2.068450] device_del from platform_device_del.part.0+0x10/0x74 > [ 2.074554] platform_device_del.part.0 from > platform_device_unregister+0x18/0x24 > [ 2.082061] platform_device_unregister from > of_platform_device_destroy+0x9c/0xac > [ 2.089569] of_platform_device_destroy from > device_for_each_child_reverse+0x78/0xbc > [ 2.097320] device_for_each_child_reverse from > devm_of_platform_populate_release+0x34/0x48 > [ 2.105682] devm_of_platform_populate_release from > devres_release_all+0x94/0xf8 > [ 2.113098] devres_release_all from device_unbind_cleanup+0xc/0x60 > [ 2.119384] device_unbind_cleanup from really_probe+0x1a0/0x2d8 > [ 2.125396] really_probe from __driver_probe_device+0x84/0xd4 > [ 2.131225] __driver_probe_device from driver_probe_device+0x30/0x104 > [ 2.137756] driver_probe_device from __driver_attach+0x90/0x178 > [ 2.143768] __driver_attach from bus_for_each_dev+0x7c/0xcc > [ 2.149444] bus_for_each_dev from bus_add_driver+0xcc/0x1cc > [ 2.155120] bus_add_driver from driver_register+0x7c/0x114 > [ 2.160705] driver_register from do_one_initcall+0x5c/0x190 > [ 2.166381] do_one_initcall from kernel_init_freeable+0x1f8/0x250 > [ 2.172576] kernel_init_freeable from kernel_init+0x18/0x12c > [ 2.178344] kernel_init from ret_from_fork+0x14/0x28 > [ 2.183410] Exception stack(0xf08c5fb0 to 0xf08c5ff8) > [ 2.188446] 5fa0: 00000000 > 00000000 00000000 00000000 > [ 2.196624] 5fc0: 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 00000000 > [ 2.204803] 5fe0: 00000000 00000000 00000000 00000000 00000013 > 00000000 > [ 2.211486] ---[ end trace 0000000000000000 ]--- > [ 2.216125] Failed to disable vddi: -EIO > [ 2.220062] panel-novatek-nt35510 a0351000.dsi.0: Failed to power off > > Reverting the patch solves the problem. > > See device tree at e.g.: > arch/arm/boot/dts/st/ste-ux500-samsung-skomer.dts > > The usual problems with patches like this is that our DSI panel > is attached in the DT without any graph: > > mcde@a0350000 { > status =3D "okay"; > pinctrl-names =3D "default"; > pinctrl-0 =3D <&dsi_default_mode>; > > dsi@a0351000 { > panel { > /* NT35510-based Hydis HVA40WV1 */ > compatible =3D "hydis,hva40wv1", > "novatek,nt35510"; > reg =3D <0>; > /* v_lcd_3v0 2.3-4.8V */ > vdd-supply =3D <&ab8500_ldo_aux4_= reg>; > /* v_lcd_1v8 1.65-3.3V */ > vddi-supply =3D <&ab8500_ldo_aux6= _reg>; > /* GPIO 139 */ > reset-gpios =3D <&gpio4 11 > GPIO_ACTIVE_LOW>; > pinctrl-names =3D "default"; > pinctrl-0 =3D <&display_default_m= ode>; > backlight =3D <&ktd253>; > }; > }; > }; > > The DSI bridge is inside the display controller (MCDE) and the panel is > right inside the DSI bridge. This indicates that the panel device already depends on the mcde device. Regards, Liu Ying > > Suggestions welcome, I'm clueless why this happens. > > Yours, > Linus Walleij