From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BC5C382295 for ; Mon, 20 Apr 2026 06:34:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776666886; cv=none; b=qwAeCeHjhsUEF8IlIJfY9WExuAkwH4IClfS3HVKiTkgR/tA0NC0l3z1SHRJm4P/1yXhNuBDslviXg5VpP4veVSfP3Dp+xIEXhobmeZu6e24ScpUVldz2o4EOevlZUdbfY57OZSkRcL3CIOpzJ8rPEvjgjCh116UtHArKDttpe0Q= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776666886; c=relaxed/simple; bh=ESDVuiR7Q+jYiXgPryhKY9IM49lPub8tOIWllyNvIrs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=pk6a4IWz48Ejd4T+g7wDdh7LeihR7twUq8i4piaYxQbQD8g3eP7Unsc1GDXXpo330V2eh+7qBevzEHntBXdi0YyNYYy4aDWb5trfePMaRYp8zV8Ihy92yjbLayooQ3Xa2K8k+XirHrMt8kddeUjIQgerncSo94EDu3kKXQqgOlw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Al2G/AuB; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Al2G/AuB" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-3585ec417f6so1612367a91.1 for ; Sun, 19 Apr 2026 23:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776666884; x=1777271684; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LZw6M1+Kjv5eGAQmOik2U10ct5aJbT9e2mhLsFRjRQA=; b=Al2G/AuBPk3QLs5RKoB8O03dUfh9paQbik6cvjBCVdr5m6F+D91gHcAl96JvbxMELf mkzelzBD1Dw0JvE2jjK/PiC8aMKWorjeQ2Gg71ZZK21nSVBD8r8aQsXuUq1azuMMKs/E KeJMaTQRCkRH2KywutL2jixq0xM0cmfFydn8W/QwgWHVy/5b8fIsX4YLamhD1ND46zQm Y3l7BJdJbY6rkHI1N0pgy4sSfJVmEXxd1qMcruS+vrCeKYHt88aKBZkp8rOuh48Qz5dW rN22IqdVB68pfVS8kCVUCalQAp1La1wSdByQRdWiabv+K++hoi+R5kvLn9tJ5FskC5jd XU3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776666884; x=1777271684; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LZw6M1+Kjv5eGAQmOik2U10ct5aJbT9e2mhLsFRjRQA=; b=hs4lQJFLsKKrEZXCv6CnAqRkFSLk6CAtEnt59WbtVa9OSde13N3zRmi3b4fnJoKslT SKWcJY5CN6ZzRe/VNrF6lTq8Cp2/YZZdSi1GOXKJzmlwWepMlQjO5S6n7DXkPP19bKpt Mu2UEDlpLphgu36Vg0YhaHRcDR0ML7habFpi+utg+b8/rzzoG54YhQwBWXE+dnv9CSdp Ku+xJHDbmZy79s9aw3YqATRnBUOAU5I6JPTSHbUFSf0aAqTcP0Umh4U5vfWzK7KTxwDo 5hsKQSjTMmPp4t3xJb4ur66VQKjyGBkhskPfGxqEJr8Q3tK0I8dGAaiy1jFr/cSJTCZ6 6zfQ== X-Forwarded-Encrypted: i=1; AFNElJ9DyWbp6fFY/r2B4bfGSSkrEiufsRWC+VomK4+065jhcd6sLMCBCxD7pEtWGoL5h0jBCtaz0hSViOqm2pw=@vger.kernel.org X-Gm-Message-State: AOJu0YyOFYDPiKSRpeiJ1tYwis/PNA2V2hqmK4WckG0SDNQKKE/wh4iE NmQrzDnwZ7qp3BX1VAmSvIYkfQ+EF6hBYBo4bYtXcwtoSOSuAXKRtYU= X-Gm-Gg: AeBDiev1zRDhXMMUMBZpnorU7P2asxjqTlHLZG1WaId6z/95nBpzg+fqEoAp38sQxaf 4kPX0G0nG5rKHoDNZM0s8EmZXmSE4M6JzKt38yrH0FKeYfFkzpVxmTTLPLurkbnmhGyJWZXS6vc LYpl99VVeJnTHviJfR4m7MeKTDJw/YjXL0/YaQ9qzCkCLwuF02mdH7Wg2O6JIFW+PfPn1BKTWfK YhnuSR4fFn/a+KZuteZOlhgqVI9BW9qWWMomCZewlz7mfUFn46btSobV7+eafk0HmDyS8Pr9+1j E8MOFK58WP1fpWo+wW6276nVc4ptjOfwG4m6+7VUrZ7YS4JgxaL8QYEnTn2ykEB8P8QpFUSa5un ybRmif/pL2M4ppz90Orin3DF4SgirppF3ZIioQ0MufGZQQ3KNn6TrycfckNAGD+9WoRtAhF+dhX gzD1bK+qYsLeijuxVUUC9fWdnh6M3qTaISkYuK7uZcN/47RjSwNtukwFMK5r/2HFEWOz/7WmjA/ mZ+smsheQ== X-Received: by 2002:a17:90a:51c3:b0:35f:b230:5889 with SMTP id 98e67ed59e1d1-361401ec4a7mr6196933a91.6.1776666884455; Sun, 19 Apr 2026 23:34:44 -0700 (PDT) Received: from localhost.localdomain ([1.226.165.54]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36148706043sm3862825a91.1.2026.04.19.23.34.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 19 Apr 2026 23:34:43 -0700 (PDT) From: Myeonghun Pak To: Neil Armstrong Cc: Myeonghun Pak , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ijae Kim , Taegyu Kim , Yuho Choi Subject: [PATCH v1] drm/panel: ili9881c: remove panel on DSI attach failure Date: Mon, 20 Apr 2026 15:34:08 +0900 Message-ID: <20260420063435.91650-1-mhun512@gmail.com> X-Mailer: git-send-email 2.47.1 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: 8bit The probe path calls drm_panel_add() before mipi_dsi_attach(). If mipi_dsi_attach() fails, the driver returns without calling drm_panel_remove(), leaving the panel registered in the global DRM panel list. The driver's .remove() callback does not handle this case because failed probe does not transition through the normal bound-device removal path. Fix this by unwinding drm_panel_add() when mipi_dsi_attach() fails. Co-developed-by: Ijae Kim Signed-off-by: Ijae Kim Co-developed-by: Taegyu Kim Signed-off-by: Taegyu Kim Co-developed-by: Yuho Choi Signed-off-by: Yuho Choi Signed-off-by: Myeonghun Pak --- drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c index 947b47841..be5e58658 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c @@ -2359,7 +2359,13 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi) dsi->format = MIPI_DSI_FMT_RGB888; dsi->lanes = ctx->desc->lanes; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret) { + drm_panel_remove(&ctx->panel); + return ret; + } + + return 0; } static void ili9881c_dsi_remove(struct mipi_dsi_device *dsi) -- 2.47.1