From nobody Thu Apr 9 08:51:36 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (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 4213D43E9ED for ; Tue, 10 Mar 2026 09:20:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773134417; cv=none; b=TU2UULyeS6RjB0i1OpTbEnphw47MmACpvtcr83axZ3bLVEzCKOuGy68jkxFMEfztTr3puAL3u1Oeve8NektcazuB8x47orTRQg5I+Ej3Zjer3pAQE4P/01CwuPqyaP6lduipTOqJZ40zobR/V84rsrFEstIfBjfX/PzU4AUR5co= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773134417; c=relaxed/simple; bh=QBdzYysaaQkUcvRADn2zPVz9rZjaIa7yreyOYyJaWT0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JEnUdo8D42oyJEzgydLjTWtZA2kglf2z3Q+ln8YfvqAdQ6WMYzPzrf7ebcS5HZFOYBYkZJu+XHMxbQumJoW/7sArRPoCZ0NlzJpYewQbrBK9V0XUnUIJxDeSuITiGkreWUy1IvXd+MhSBH9rXpDkm6orv27wrWFULDHpyuyst7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=hBNinlZf; arc=none smtp.client-ip=209.85.210.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="hBNinlZf" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-82735a41920so4678686b3a.2 for ; Tue, 10 Mar 2026 02:20:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1773134414; x=1773739214; 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=7hRZKxmDkekxeTijUMv0DHtFKCuWghYPEZ/UxQrV0i0=; b=hBNinlZfz5/Ao5mSaRXBGBzRgPjfWNKYH89I75APg7w+1gmJzipZBItBz3g1JWBtqO vP/q1XZPZL9E7Nrgs7kQ/qg8Dcsf4rgBX6sau1c/x2EZgo17hhJtmUah92p+LjPEPYLL BaGGrCyEYyyjZXqgSuOIXZs4s5fjfFEbkfZmA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773134414; x=1773739214; 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=7hRZKxmDkekxeTijUMv0DHtFKCuWghYPEZ/UxQrV0i0=; b=kMxk45OCl7eUi3s8npnpXUMm6eaYBXa2o+GltBsvc+P50maMgB0OAI3YkGc0ahNOjR /Tv/sZbmMQjp35YsJxfGDpsEq+6s1ukFadyl9IvvXdexSXCznjEeDn/AnHma0OMvzELC s7K+7ZHyaRJnJSSrdyZ4Ultd3mbWJeguhM3j6aONa+GrFvMsQxRHPzYn1Dih7GOR5FT3 uhlrCNsGg9BS/NuF/2Lqmnp95W4VGfjO4jk1Yrt8ickhta4O42vgt0ozVo0uNQCBC1iG jfeAIVAs0xo4Wg3+O7LbnuT+Dv11I/rQJymDaoBP0kwU5AfsewztP1sCHcXeX2cQ6K6/ 1nbg== X-Forwarded-Encrypted: i=1; AJvYcCUSj8URP3aQTbwj4mWtbA1zHhH4rwIIOc3Qxa62/Y/hqgYNREPZXx1LoNZJvq7EhMOZXH2CjUBb/Iypsz8=@vger.kernel.org X-Gm-Message-State: AOJu0Yxj5lAz/vErOS+jM4mRUf8NSDFwBdIBMoOJPx3djvPklyJ+SPhM UZSayln2gvCz4rnkNywn0IbCDdGEffwdp9sFdbi3KdRkkQ6OZ88j9s+wRn6EKfpp+A== X-Gm-Gg: ATEYQzwO9vE/MMPpamSIXVSLfYeqWP0hlVDMYZ0v3X1f20UY/OdfvmkOxyoTQnp50h6 GiXHjUkVpeBDvMrXI+RRodYWedLBDmNHFFMKTemjYwgSDdbLyotkzRB0UiVsypjpuShXjrbD95a zHWGpBMd4LM30C9hlOkYq5wYPs0nYpYdvokasLvhvm26CUo+FF/qSJfWyFgd6g0HXOA/ZbtBLdb WaCrH4VMihz7lvrGx+bHBjf0/+28uBpWu44vpYN12NdOcLh/EvSf07HhuGw74ZgxF8p9i+3zNAu 05cq2BcHYDdD1nUSvCBhCDa9pObYoXuHDXqBDKDI6/SqiYQoJbovnSAORdnRx4IHuPCyTbwkCT1 mq+LHUtVg88Pl3cbgJw9L2RNNBn0wEGCLiMojQ7TwL7a8mRVjGb6Q+t0owx51eXqMmPNZbUrDsK E8E0NCGxSRj7gfGG/nAMpP+lmLlxESoCmZYpV2BFwdcez3poMWcu+Ga5eHCugRGUA5Hf7lg1ho4 TKWCFSI X-Received: by 2002:a05:6a00:13a4:b0:827:32d7:6690 with SMTP id d2e1a72fcca58-829a2d88478mr12094733b3a.13.1773134413720; Tue, 10 Mar 2026 02:20:13 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:ee38:e01e:e888:6900]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-829a48a3b74sm16965190b3a.45.2026.03.10.02.20.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 02:20:13 -0700 (PDT) From: Chen-Yu Tsai To: Matthias Brugger , AngeloGioacchino Del Regno , Ryder Lee , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas Cc: Chen-Yu Tsai , Bartosz Golaszewski , linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v4 6/7] PCI: mediatek-gen3: Disable device if further setup fails Date: Tue, 10 Mar 2026 17:19:45 +0800 Message-ID: <20260310091947.2742004-7-wenst@chromium.org> X-Mailer: git-send-email 2.53.0.473.g4a7958ca14-goog In-Reply-To: <20260310091947.2742004-1-wenst@chromium.org> References: <20260310091947.2742004-1-wenst@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If further setup fails after the device is powered on and link training succeeds, we want to place the device back in a quiescence state to avoid unintended activity and save power. This also helps with power state tracking and balancing once pwrctrl API is integrated. Power down the device in the error paths of mtk_pcie_startup_port() and mtk_pcie_probe(). Reviewed-by: AngeloGioacchino Del Regno Reviewed-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Chen-Yu Tsai --- Changes since v3: - Adapted to movement of existing setup code - Cleanup in mtk_pcie_setup() moved to mtk_pcie_probe() --- drivers/pci/controller/pcie-mediatek-gen3.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/cont= roller/pcie-mediatek-gen3.c index 3e5386c4cb35..f1a70b92cc9f 100644 --- a/drivers/pci/controller/pcie-mediatek-gen3.c +++ b/drivers/pci/controller/pcie-mediatek-gen3.c @@ -556,10 +556,14 @@ static int mtk_pcie_startup_port(struct mtk_gen3_pcie= *pcie) dev_err(pcie->dev, "PCIe link down, current LTSSM state: %s (%#x)\n", ltssm_state, val); - return err; + goto err_power_down_device; } =20 return 0; + +err_power_down_device: + mtk_pcie_device_power_down(pcie); + return err; } =20 #define MTK_MSI_FLAGS_REQUIRED (MSI_FLAG_USE_DEF_DOM_OPS | \ @@ -1219,6 +1223,7 @@ static int mtk_pcie_probe(struct platform_device *pde= v) return 0; =20 err_power_down_pcie: + mtk_pcie_device_power_down(pcie); mtk_pcie_power_down(pcie); err_tear_down_irq: mtk_pcie_irq_teardown(pcie); --=20 2.53.0.473.g4a7958ca14-goog