From nobody Thu Apr 9 05:47:45 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (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 C3AC51EA7CB for ; Wed, 11 Mar 2026 07:52:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773215569; cv=none; b=F53cT1S+7A+6ZP/vZO42szF84mNtODqHkKzmY8M4m+TTLPUvRlhP5VSrvOkRwcznTUgAbFoxerr8XJzmg/HRNH/rMcW3oWEPlcZ2K/oId8UHBppIKXgrlQm2jgVzNHSqP0p43ZucYVvf/OaH15GxXCo4xhZCr5jh7HCnK5Oo92c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773215569; c=relaxed/simple; bh=Wj0U1ds5tnOHTv5YHW1mT+V8EiMFt+tECNQnEdXijVc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mhEEPKWrQn4Zyw8WVN1SQexKVXw5WnxuiISi7IjmgRcpc0QoF9xaj682vCEcA3qiJ/ALf1e9MgSXV+TYiIG/55PpLUwKtDl2YfzjLykp1wfnzvVW5l6tg6t83xXnRW9Ni1Fzl4I92M5RM5mk5Nme6BosvajN3kNSTx9DBdaQwp4= 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=mxUSZEsb; arc=none smtp.client-ip=209.85.216.49 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="mxUSZEsb" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-359894e17b8so7235798a91.1 for ; Wed, 11 Mar 2026 00:52:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1773215565; x=1773820365; 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=0m2X60AbRiPH6OZp8R6Aq2XdXF8mhqQvbj4ZWhmMt60=; b=mxUSZEsbL0/2JcyBBtCFANTbHFHun4fFyRLpU2RUCgMaUcmFfUJHyMDD4yCPDoD+e5 VqCFRmg4J4HEdr0GDv2GCG0BmPSgDdgv4IwXdtS3RJJ8IQG8LcTMAD3+pHArC8+/et2I VeA/6PVkD0kS/hRZ/ercx5kxwCoBQAk2rxowo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773215565; x=1773820365; 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=0m2X60AbRiPH6OZp8R6Aq2XdXF8mhqQvbj4ZWhmMt60=; b=GilJprY3RSmwJOUbsTTPBSExuM3Igo6sHYVI0v6knB3TBYDeEFjQUXE9lrekIabP5n XzT6DbLvKxjgXtICll9gZKzehfB+U6iJwcjuQR4tvXB8vvhoKhk14PYskqZaahYVW+o9 Qx1m6FEvuUgPCcLRJCfjW+ebmC2D8dhluERpGDL68dz7NXVuMnQnbSu3NUhurst5QSn/ WjG/KOfb83T5bpYFQ5or+PR3uS8jvbWqFO2UTMOH5ulLB4jHqPFGNDnsQprJf831K8KU fdI0PuAP6NCWWCfKIYb28t1diQHBTdOKTK6+c5SGBg3iESdBvyvByOSLf3txqOasTSyG OR7A== X-Forwarded-Encrypted: i=1; AJvYcCU1dykt0YpeoGqt+9ywW/i3C2wMwtvNHwEgiZbfRc/mk2pWU22q+UXUYh+R45XuaxwlhLT+Ti7hwdQjR78=@vger.kernel.org X-Gm-Message-State: AOJu0YyoqZkrkI+MTEvSM8UyFhrBccRQ2rj+z04cjhByQrIdXzchH5CI A+jLSC0R9PDF8aFvMXZSzKCcUcKLA0FR7nPD/ht3wh5+Vz1t/J1Ca1O8fs9ygua1Qg== X-Gm-Gg: ATEYQzzufRPEhASnuscg1UgnDyuJUE0+zoDeV59knhAzmpjXsYtrsWjiLT2OczTxwwJ jupLX9iIQfSIRq1fUHjQ2OJYnDImUFRarwprglIQ2e8ynvqhzCT7auUQyOsBKrlcb7RWQuRTVGP OORwkal8ucD4VeHOVIZaFPQvRF5kBWt8XTjkSI/BQnA9yywPl8G/0a+qll89uhu/uSZ3igphNw9 37ga6pp37zYRuV+nzAJNtZvDwa8jY90kHhftfIAdI/WE5ngEsguNrL4QbUuZN01ZqbHNhU1o06O rEqfh4ststZgzv7ynzB4eIZmEzbIXTcaCF4vVuNM+NVLCkr9x+k/TpVeXMAeOw5+DbW3na5lBf5 ersF0En9c80Aw3c/zh8P46s2TfdhsXPgdQes2Zb/1BodLDJTt0qiW7jenfJBCG/CiZuCzFxQDKw 8BNoh7i64SYdlwugQAKJL6dxwwwmxVKfHqpBFqu8wlzyWNDFPsmy0R5Zy0IbOh637Dn6SKIQuC2 nd4BJe9 X-Received: by 2002:a17:90b:4f85:b0:356:1edc:b6e with SMTP id 98e67ed59e1d1-35a011d0c0amr1809665a91.8.1773215564991; Wed, 11 Mar 2026 00:52:44 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2a00:79e0:201d:8:805b:14e9:f783:bcae]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35a0236f79asm727816a91.6.2026.03.11.00.52.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 00:52:43 -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, Bjorn Helgaas Subject: [PATCH v5 2/7] PCI: mediatek-gen3: Move mtk_pcie_setup_irq() out of mtk_pcie_setup() Date: Wed, 11 Mar 2026 15:52:17 +0800 Message-ID: <20260311075223.3303497-3-wenst@chromium.org> X-Mailer: git-send-email 2.53.0.473.g4a7958ca14-goog In-Reply-To: <20260311075223.3303497-1-wenst@chromium.org> References: <20260311075223.3303497-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" mtk_pcie_setup_irq() just sets up the IRQ domains for PCI INTx and MSI, and chains them to the controller's interrupt. It's not really related to the setup of the actual PCIe controller. Move the mtk_pcie_setup_irq() call out of and before mtk_pcie_setup(), and add a proper error message for when it fails. Reorder mtk_pcie_irq_teardown() in the remove callback to follow. Also create an error path in the probe function. Suggested-by: Bjorn Helgaas Link: https://lore.kernel.org/all/20260309215056.GA603013@bhelgaas/ Signed-off-by: Chen-Yu Tsai Reviewed-by: Bartosz Golaszewski --- Changes since v3: - New patch --- drivers/pci/controller/pcie-mediatek-gen3.c | 25 ++++++++++++--------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/cont= roller/pcie-mediatek-gen3.c index 1939cac995b5..04ae195d36c2 100644 --- a/drivers/pci/controller/pcie-mediatek-gen3.c +++ b/drivers/pci/controller/pcie-mediatek-gen3.c @@ -1152,10 +1152,6 @@ static int mtk_pcie_setup(struct mtk_gen3_pcie *pcie) if (err) goto err_setup; =20 - err =3D mtk_pcie_setup_irq(pcie); - if (err) - goto err_setup; - return 0; =20 err_setup: @@ -1181,21 +1177,28 @@ static int mtk_pcie_probe(struct platform_device *p= dev) pcie->soc =3D device_get_match_data(dev); platform_set_drvdata(pdev, pcie); =20 + err =3D mtk_pcie_setup_irq(pcie); + if (err) + return dev_err_probe(dev, err, "Failed to setup IRQ domains\n"); + err =3D mtk_pcie_setup(pcie); if (err) - return err; + goto err_tear_down_irq; =20 host->ops =3D &mtk_pcie_ops; host->sysdata =3D pcie; =20 err =3D pci_host_probe(host); - if (err) { - mtk_pcie_irq_teardown(pcie); - mtk_pcie_power_down(pcie); - return err; - } + if (err) + goto err_power_down_pcie; =20 return 0; + +err_power_down_pcie: + mtk_pcie_power_down(pcie); +err_tear_down_irq: + mtk_pcie_irq_teardown(pcie); + return err; } =20 static void mtk_pcie_remove(struct platform_device *pdev) @@ -1208,8 +1211,8 @@ static void mtk_pcie_remove(struct platform_device *p= dev) pci_remove_root_bus(host->bus); pci_unlock_rescan_remove(); =20 - mtk_pcie_irq_teardown(pcie); mtk_pcie_power_down(pcie); + mtk_pcie_irq_teardown(pcie); } =20 static void mtk_pcie_irq_save(struct mtk_gen3_pcie *pcie) --=20 2.53.0.473.g4a7958ca14-goog