From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 7DA1641C62 for ; Mon, 20 Apr 2026 07:39:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776670795; cv=none; b=QycycYrX0Cp1FjP3dMhQMkf5Jy8TcqXkHUnSzsPQze4ps3lSw8R0oqk70aWCxemigGEfzfXyim5jq+ytKK1ewPrVX8LUAg/1kdIRgt1pDKvevSFR+3VJ9J3Rm+UrkF1fPoeL3qFLTIk/2nxJYXt2ddMsIOGoqNXXBJ9AjdbGlMk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776670795; c=relaxed/simple; bh=h5X8mvnWFYyheHoQha8Qk/qry3UTG9rgIRFxoNfFRpA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gw40TGuWdnTzQiNFoIqbmOF9VUg0dg9is6cNGv0J2Pe+/Yoi5WxwVsGlaq2PjJwhGdWK78jMNnlBQOqFM2y5LBuv7blos3JHl/9mk8AnVkdirjctGN8ivlyeWMZjE+POkn5l1T4J1ywRpt7XxgS5JH7BNaesDO13IxoCmC6NncM= 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=TgouWiF9; arc=none smtp.client-ip=209.85.214.175 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="TgouWiF9" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2ab46931cf1so26201245ad.0 for ; Mon, 20 Apr 2026 00:39:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776670794; x=1777275594; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dj7/VWJAYljedX89eSjbw1RVS0mtVMWYTOlQIVg73N4=; b=TgouWiF9ptb9U2IMAzflt2I2LA9doOY7ENdJ3u1vNMRq3+vphJtrTVDmiHCJMJzzci Yo/Lz5vHJjd8Coc9xKwAdRV9+ucLODyL7t7l6n5Y2csK+x0Mh8w0NVnt6Ime4p/z7+a+ Nq7A8IJcFX8x8rLOknKepfr6UEq5xL8MurX2vPDak6MUTxUP2WVVb6M53hdtrgS//5ms zao2GJ80WvKmPdU/nrCJCouQuR1i/Rt7lWBpj0YyDpV2EimYZiZP58CxE2Gmyc0fq0Cc Yzm7TLvKs0DNm8PlVRFfGCW72Ey5wFutSzNxuzzmMEvee5chsQ+HPjA1SBe3wY7gnq1N Rg0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776670794; x=1777275594; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dj7/VWJAYljedX89eSjbw1RVS0mtVMWYTOlQIVg73N4=; b=Dqrs2gIazFSuSH2qD0E/q+s1Gx8zH5fPn6M9eHBwOiJ8d+qlrlCkl4TfccGUELo0bA E23dl45Y6Vxv3GXs0CiqwkGUKDNW57a2zbULKv4B2TJcqljIbG+xUBkntbooUUZl5twF 5XTfDU47aHzR4y46okCcfjOh/gIVSN1KBxQsBsWs23TUt8LGlnuCWDmAfB3mG8XGa10R U0VUjRUDZdxD9bTY/n45AwrduoXzcUiWCk6Vq8eHFEcCoR+BXe0V6GKLMoB1pE3FlgNg kl9HIa2LlcnF/FXBy+siZWw3ubt/OFwdRN/4d1G5GOutUcYgU5FX2CwByJ5I+EbM3Kz3 Y6eg== X-Forwarded-Encrypted: i=1; AFNElJ9dWJcIKCVr9E6vJgcck9xq9DCOHb8ruldGWvziB/+ymUzKWXC1Ijy7ITo3Z2wu+DXs9ugIZU5DUs6WrzU=@vger.kernel.org X-Gm-Message-State: AOJu0Yz9cy2AuC+auqPopl4vdW38SG/KmyyGN2YC1MAz64lpvrWjopwK qQVWh/nE7rPxaGwCthR20huYcmSIG3wO2++LKAcn4yeWNJpv/6ifhVE= X-Gm-Gg: AeBDietZIwrRylsH4bvVNQbpxa0Gor04RgM18WjsUWohwXcLRBEPrINBHfGl95VnHdm sot1j4MrAmexR0CSzk9m78dt6yGVQ9g0qoXh4seTTyllTNTEgntFzVQ+f6HXF1uW47R224cQflp 1JfwOP9k1wcSv3n3Glz6nZrTdNtT9hXUNayUsAquS1W/cO80KdCDmdoQ/YSsNeMn7GukVO+jVhH AaYyMHG/O8ti9xg37WgvXN6nlROxNjnJzY8kZo5TcMaFY2hshVqcbjzCsByQElCHUCDwF/REb5y MpwbLWIz3KG+5I1irCV3zIsjK75lvEreJ73Fu0JuavbPjkyzqMQ3AlOXbuf7t+8WPnQJgrMQAWL SgEGtCxoOJdNZp4TkUrmytPQ3VGIsv4gGx8TpQbmceiSXNgcCp3gVNk6sBLKn5h5J0EF4fxMNU0 JWlxoNGkiWtCjbTDXUjNWYCQez7GSEtENfpRdDSu1nHIqb1PXx0M2XCY1nXw2ktlSSovqhUb++z zg9c+I5gw== X-Received: by 2002:a17:903:1110:b0:2b4:636b:dc4f with SMTP id d9443c01a7336-2b5f9e950a0mr105085335ad.15.1776670793641; Mon, 20 Apr 2026 00:39:53 -0700 (PDT) Received: from localhost.localdomain ([1.226.165.54]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5fab0cf67sm92864705ad.51.2026.04.20.00.39.50 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 20 Apr 2026 00:39:53 -0700 (PDT) From: Myeonghun Pak To: Sumit Semwal , Casey Connolly Cc: Myeonghun Pak , Neil Armstrong , 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: lg-sw43408: remove panel on DSI attach failure Date: Mon, 20 Apr 2026 16:38:27 +0900 Message-ID: <20260420073945.65849-1-mhun512@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The probe path registers the panel by calling drm_panel_add() in sw43408_add(), then returns the result of mipi_dsi_attach() directly from sw43408_probe(). If mipi_dsi_attach() fails, the probe path exits without calling drm_panel_remove(), leaving the panel registered in the global DRM panel list. The .remove() callback does not cover this case because it is only invoked after a successful probe. Fix this by unwinding the panel registration with drm_panel_remove() 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-lg-sw43408.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-lg-sw43408.c b/drivers/gpu/drm/panel/panel-lg-sw43408.c index 293826c50..0eb78bc90 100644 --- a/drivers/gpu/drm/panel/panel-lg-sw43408.c +++ b/drivers/gpu/drm/panel/panel-lg-sw43408.c @@ -294,7 +294,13 @@ static int sw43408_probe(struct mipi_dsi_device *dsi) dsi->dsc = &ctx->dsc; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret < 0) { + drm_panel_remove(&ctx->base); + return ret; + } + + return 0; } static void sw43408_remove(struct mipi_dsi_device *dsi) --