From patchwork Wed Feb 8 14:27:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mikko Perttunen X-Patchwork-Id: 54452 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp3512850wrn; Wed, 8 Feb 2023 07:16:42 -0800 (PST) X-Google-Smtp-Source: AK7set+Azqu1TvhTkwL6hHlsJAMVtC9lyZUlu/DoNbxOBbhtxTQo3gBc5pj4nv5ojexmAKroraDV X-Received: by 2002:a05:6402:510f:b0:4aa:a515:58ad with SMTP id m15-20020a056402510f00b004aaa51558admr10164985edd.0.1675869402341; Wed, 08 Feb 2023 07:16:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675869402; cv=none; d=google.com; s=arc-20160816; b=km6kryFqYtqgVr0/x8EVwfJ/H3CUFRwDFacK4d2jFyoRL2B/UUYBcojghBWP4BCJkI ybIy//poRoVKPrsthfbkUBmV6T8JBBNAvQKMXNfnTj/1gZr6M+3KOfI9KtUM6hu9H+Dm FgAtfrvxddWi7e/aUJ2vYT6wdZzEoLn1osDCzHiE/z2ch+zqdGjvhMDuYnPyyoSY2gDS 8iTeGTy49tqsHS51fsFemedgyg1dWreVwabmcjOXsfXfVYgcW0kRxXk1DZqMWjxS/Lmq xjJq6Qr5DMtQBV6EVWYto0aMqnftG7ZGnXZdrdSYZkTR+tD4bF6CQtPD8CYgiBlWkbKN 0lcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=fCFps57B15FHQdPwPAyYnuvFWFV7vmGjGgHCpF0YfPQ=; b=cLTi43Z/jHMiw/K95LELaoiBR4UY+M5OrVV+nJZC39HIquIS1C6vBkDmHhNlJ/uIhS CCHDK1b5y/ONF1RTVcyY/tzkm4fl8ZaNCStSyRjxR6uVgaUsiXrxQBC2xl/0nvty5Pjz jzv00JPyjtLqXJpdADgpVhTXwAhDfVzcUDi0DlVNk9loTLzsi0v3xx/uFKObEHagqzPk 2gcC05NHu/rBPKwqYmLynYbKgnb/GsmGXSfNmjY6tIiAWsm4ptWPoHFPHEGegDtaCR1i snpTKQi2ts7MsfharcmYga2sWkWhSd4Bt5wMxBXSQ6iBveupzHr4mzsAXDsCdRIIhVg7 Sdqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@kapsi.fi header.s=20161220 header.b=ZNpFSrut; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kapsi.fi Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c6-20020a056402120600b004ab1682924bsi193696edw.425.2023.02.08.07.16.20; Wed, 08 Feb 2023 07:16:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@kapsi.fi header.s=20161220 header.b=ZNpFSrut; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kapsi.fi Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231620AbjBHOz1 (ORCPT + 99 others); Wed, 8 Feb 2023 09:55:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231341AbjBHOzW (ORCPT ); Wed, 8 Feb 2023 09:55:22 -0500 X-Greylist: delayed 1652 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 08 Feb 2023 06:55:19 PST Received: from mail.kapsi.fi (mail.kapsi.fi [IPv6:2001:67c:1be8::25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 817B99EEF; Wed, 8 Feb 2023 06:55:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=kapsi.fi; s=20161220; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject: Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=fCFps57B15FHQdPwPAyYnuvFWFV7vmGjGgHCpF0YfPQ=; b=ZNpFSrutA/LVslSvywVTmsYuUS HxdBpw8mBvCIWUPdrSElruwMdklqvrmEzTtLTftDHdqLEJTP70gBrqDfqR8XGj1kzJg45K8ev4ygr VnJYZ3Z9PBoi2j8CBDkFWL9/iy3I2teSMPWUNRW5ty4m04vKLVQoKTSFh2h2Sx7AT+t2A0QsSIHxP box+u66pJoKLV0MCsc+RcBIeuXF+c2KDDY92v71oZj+aDETWDpvqiV3zs09pFyMSPktpMYRkK+PfH xiRE1T9fVGaZKCj9HzuLbfDqJ0UHEBQ0SAHLeUfo7jfIRYWHemUBuvISuN0xu8csc4i+Hvysad3G+ YfQiHq5g==; Received: from 91-158-25-70.elisa-laajakaista.fi ([91.158.25.70] helo=toshino.localdomain) by mail.kapsi.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pPlQA-007jjc-Uv; Wed, 08 Feb 2023 16:27:38 +0200 From: Mikko Perttunen To: Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Rob Herring , Bjorn Helgaas , Thierry Reding , Jonathan Hunter Cc: Mikko Perttunen , linux-pci@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] PCI: tegra194: Handle errors in BPMP response Date: Wed, 8 Feb 2023 16:27:35 +0200 Message-Id: <20230208142735.3218707-1-cyndis@kapsi.fi> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 91.158.25.70 X-SA-Exim-Mail-From: cyndis@kapsi.fi X-SA-Exim-Scanned: No (on mail.kapsi.fi); SAEximRunCond expanded to false X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757276434642101646?= X-GMAIL-MSGID: =?utf-8?q?1757276434642101646?= From: Mikko Perttunen The return value from tegra_bpmp_transfer indicates the success or failure of the IPC transaction with BPMP. If the transaction succeeded, we also need to check the actual command's result code. Add code to do this. Signed-off-by: Mikko Perttunen Acked-by: Thierry Reding --- drivers/pci/controller/dwc/pcie-tegra194.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c index 02d78a12b6e7..cf5fd1c2efd3 100644 --- a/drivers/pci/controller/dwc/pcie-tegra194.c +++ b/drivers/pci/controller/dwc/pcie-tegra194.c @@ -1200,6 +1200,7 @@ static int tegra_pcie_bpmp_set_ctrl_state(struct tegra_pcie_dw *pcie, struct mrq_uphy_response resp; struct tegra_bpmp_message msg; struct mrq_uphy_request req; + int err; /* * Controller-5 doesn't need to have its state set by BPMP-FW in @@ -1222,7 +1223,13 @@ static int tegra_pcie_bpmp_set_ctrl_state(struct tegra_pcie_dw *pcie, msg.rx.data = &resp; msg.rx.size = sizeof(resp); - return tegra_bpmp_transfer(pcie->bpmp, &msg); + err = tegra_bpmp_transfer(pcie->bpmp, &msg); + if (err) + return err; + if (msg.rx.ret) + return -EINVAL; + + return 0; } static int tegra_pcie_bpmp_set_pll_state(struct tegra_pcie_dw *pcie, @@ -1231,6 +1238,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra_pcie_dw *pcie, struct mrq_uphy_response resp; struct tegra_bpmp_message msg; struct mrq_uphy_request req; + int err; memset(&req, 0, sizeof(req)); memset(&resp, 0, sizeof(resp)); @@ -1250,7 +1258,13 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra_pcie_dw *pcie, msg.rx.data = &resp; msg.rx.size = sizeof(resp); - return tegra_bpmp_transfer(pcie->bpmp, &msg); + err = tegra_bpmp_transfer(pcie->bpmp, &msg); + if (err) + return err; + if (msg.rx.ret) + return -EINVAL; + + return 0; } static void tegra_pcie_downstream_dev_to_D0(struct tegra_pcie_dw *pcie)