From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7612BC433FE for ; Mon, 10 Jan 2022 01:51:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237998AbiAJBux (ORCPT ); Sun, 9 Jan 2022 20:50:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238002AbiAJBus (ORCPT ); Sun, 9 Jan 2022 20:50:48 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF396C06173F; Sun, 9 Jan 2022 17:50:47 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 51ACE60F5F; Mon, 10 Jan 2022 01:50:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D33DBC36AF5; Mon, 10 Jan 2022 01:50:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641779446; bh=HRyZXJ92WI/s2s1A0I6rfukU8d0dSa+j4K0OxhFXYFA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d8uBE3GkgnisM2RwXJsgQgVY827Tl966KesvjkazyZuMxnO8pWAmLRqGhyBG7rDcL cRUro17iYJDZf8lwmqjMlbgbshjuGZSrHhEKj961UnHPEpaL4sopEs/RUrByZBp4UQ 2yOYwgZMK/RFFpXLtHqb+fQEx0aP+Jkj+guLRFGCUZsOcFAY2N6Czbuzl9xFXskNVS uTtTBHq9210MR3Avhfos++blVu9HqbLdnaAqT8OKoJMGlgoSbjcICfdf8arRvkx5rt 7HrC+b2XqCRc7RtblP+XUkmqUrBi4qj53LO0aNDQHP/3sEPV5Y1K754zCJi3IRm2rh QiLtggBqZ/gLQ== From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: Marc Zyngier , Lorenzo Pieralisi , Bjorn Helgaas Cc: pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?UTF-8?q?Marek=20Beh=C3=BAn?= , stable@vger.kernel.org Subject: [PATCH v2 11/23] PCI: aardvark: Fix setting MSI address Date: Mon, 10 Jan 2022 02:50:06 +0100 Message-Id: <20220110015018.26359-12-kabel@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220110015018.26359-1-kabel@kernel.org> References: <20220110015018.26359-1-kabel@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org From: Pali Rohár MSI address for receiving MSI interrupts needs to be correctly set before enabling processing of MSI interrupts. Move code for setting PCIE_MSI_ADDR_LOW_REG and PCIE_MSI_ADDR_HIGH_REG from advk_pcie_init_msi_irq_domain() to advk_pcie_setup_hw(), before enabling PCIE_CORE_CTRL2_MSI_ENABLE. After this we can remove the now unused member msi_msg, which was used only for MSI doorbell address. MSI address can be any address which cannot be used to DMA to. So change it to the address of the main struct advk_pcie. Fixes: 8c39d710363c ("PCI: aardvark: Add Aardvark PCI host controller driver") Signed-off-by: Pali Rohár Acked-by: Marc Zyngier Signed-off-by: Marek Behún Cc: stable@vger.kernel.org # f21a8b1b6837 ("PCI: aardvark: Move to MSI handling using generic MSI support") --- drivers/pci/controller/pci-aardvark.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index 51fedbcb41fb..79102704d82f 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -278,7 +278,6 @@ struct advk_pcie { raw_spinlock_t msi_irq_lock; DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); struct mutex msi_used_lock; - u16 msi_msg; int link_gen; struct pci_bridge_emul bridge; struct gpio_desc *reset_gpio; @@ -473,6 +472,7 @@ static void advk_pcie_disable_ob_win(struct advk_pcie *pcie, u8 win_num) static void advk_pcie_setup_hw(struct advk_pcie *pcie) { + phys_addr_t msi_addr; u32 reg; int i; @@ -561,6 +561,11 @@ static void advk_pcie_setup_hw(struct advk_pcie *pcie) reg |= LANE_COUNT_1; advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG); + /* Set MSI address */ + msi_addr = virt_to_phys(pcie); + advk_writel(pcie, lower_32_bits(msi_addr), PCIE_MSI_ADDR_LOW_REG); + advk_writel(pcie, upper_32_bits(msi_addr), PCIE_MSI_ADDR_HIGH_REG); + /* Enable MSI */ reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG); reg |= PCIE_CORE_CTRL2_MSI_ENABLE; @@ -1184,10 +1189,10 @@ static void advk_msi_irq_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) { struct advk_pcie *pcie = irq_data_get_irq_chip_data(data); - phys_addr_t msi_msg = virt_to_phys(&pcie->msi_msg); + phys_addr_t msi_addr = virt_to_phys(pcie); - msg->address_lo = lower_32_bits(msi_msg); - msg->address_hi = upper_32_bits(msi_msg); + msg->address_lo = lower_32_bits(msi_addr); + msg->address_hi = upper_32_bits(msi_addr); msg->data = data->hwirq; } @@ -1346,18 +1351,10 @@ static struct msi_domain_info advk_msi_domain_info = { static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie) { struct device *dev = &pcie->pdev->dev; - phys_addr_t msi_msg_phys; raw_spin_lock_init(&pcie->msi_irq_lock); mutex_init(&pcie->msi_used_lock); - msi_msg_phys = virt_to_phys(&pcie->msi_msg); - - advk_writel(pcie, lower_32_bits(msi_msg_phys), - PCIE_MSI_ADDR_LOW_REG); - advk_writel(pcie, upper_32_bits(msi_msg_phys), - PCIE_MSI_ADDR_HIGH_REG); - pcie->msi_inner_domain = irq_domain_add_linear(NULL, MSI_IRQ_NUM, &advk_msi_domain_ops, pcie); -- 2.34.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A8931C433EF for ; Mon, 10 Jan 2022 01:54:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0DwzYXm27IBZvDGh05qCdHJwijThIG1VAVaQAz8A2Ys=; b=RugKQemNH8e6Mp GM/MMlrLBZaVEIEZf5nO3Kf0X/66m3PU1QkRhkZg827A/jeiKt8So4wWl83QMAUAuRuEKj3xo7j0p ID2Bc9es+HWO0O/dOFA+QGsAu2DqUaPCMoFPRJ3P48yNsoH9ZAtg9ecN0m3v5bcttfIkb6nH39/fR 6MzVS/Wp58SlPUEAc0tVQihf6flK9/jlXorkJDQBualYRdqXL47LXF5atGsFdP45G1Gelgj38jpHI QAq2uOFxnWRu5SQbVLD3GbpqJVuBCvEVpHRpyhh4hKrN9z+YdBCPZjCqQnP4AoBUE8X1L5Wkc8m+1 b93vQkUzXPQNfVA7TWFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n6jsC-008nMS-FI; Mon, 10 Jan 2022 01:53:24 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n6jpf-008lht-Se for linux-arm-kernel@lists.infradead.org; Mon, 10 Jan 2022 01:50:49 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 67E4960F4A; Mon, 10 Jan 2022 01:50:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D33DBC36AF5; Mon, 10 Jan 2022 01:50:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641779446; bh=HRyZXJ92WI/s2s1A0I6rfukU8d0dSa+j4K0OxhFXYFA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d8uBE3GkgnisM2RwXJsgQgVY827Tl966KesvjkazyZuMxnO8pWAmLRqGhyBG7rDcL cRUro17iYJDZf8lwmqjMlbgbshjuGZSrHhEKj961UnHPEpaL4sopEs/RUrByZBp4UQ 2yOYwgZMK/RFFpXLtHqb+fQEx0aP+Jkj+guLRFGCUZsOcFAY2N6Czbuzl9xFXskNVS uTtTBHq9210MR3Avhfos++blVu9HqbLdnaAqT8OKoJMGlgoSbjcICfdf8arRvkx5rt 7HrC+b2XqCRc7RtblP+XUkmqUrBi4qj53LO0aNDQHP/3sEPV5Y1K754zCJi3IRm2rh QiLtggBqZ/gLQ== From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: Marc Zyngier , Lorenzo Pieralisi , Bjorn Helgaas Cc: pali@kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?UTF-8?q?Marek=20Beh=C3=BAn?= , stable@vger.kernel.org Subject: [PATCH v2 11/23] PCI: aardvark: Fix setting MSI address Date: Mon, 10 Jan 2022 02:50:06 +0100 Message-Id: <20220110015018.26359-12-kabel@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220110015018.26359-1-kabel@kernel.org> References: <20220110015018.26359-1-kabel@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220109_175048_052388_8224AB85 X-CRM114-Status: GOOD ( 15.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KCk1TSSBhZGRyZXNzIGZvciByZWNl aXZpbmcgTVNJIGludGVycnVwdHMgbmVlZHMgdG8gYmUgY29ycmVjdGx5IHNldCBiZWZvcmUKZW5h YmxpbmcgcHJvY2Vzc2luZyBvZiBNU0kgaW50ZXJydXB0cy4KCk1vdmUgY29kZSBmb3Igc2V0dGlu ZyBQQ0lFX01TSV9BRERSX0xPV19SRUcgYW5kIFBDSUVfTVNJX0FERFJfSElHSF9SRUcKZnJvbSBh ZHZrX3BjaWVfaW5pdF9tc2lfaXJxX2RvbWFpbigpIHRvIGFkdmtfcGNpZV9zZXR1cF9odygpLCBi ZWZvcmUKZW5hYmxpbmcgUENJRV9DT1JFX0NUUkwyX01TSV9FTkFCTEUuCgpBZnRlciB0aGlzIHdl IGNhbiByZW1vdmUgdGhlIG5vdyB1bnVzZWQgbWVtYmVyIG1zaV9tc2csIHdoaWNoIHdhcyB1c2Vk Cm9ubHkgZm9yIE1TSSBkb29yYmVsbCBhZGRyZXNzLiBNU0kgYWRkcmVzcyBjYW4gYmUgYW55IGFk ZHJlc3Mgd2hpY2ggY2Fubm90CmJlIHVzZWQgdG8gRE1BIHRvLiBTbyBjaGFuZ2UgaXQgdG8gdGhl IGFkZHJlc3Mgb2YgdGhlIG1haW4gc3RydWN0IGFkdmtfcGNpZS4KCkZpeGVzOiA4YzM5ZDcxMDM2 M2MgKCJQQ0k6IGFhcmR2YXJrOiBBZGQgQWFyZHZhcmsgUENJIGhvc3QgY29udHJvbGxlciBkcml2 ZXIiKQpTaWduZWQtb2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgpBY2tlZC1i eTogTWFyYyBaeW5naWVyIDxtYXpAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogTWFyZWsgQmVo w7puIDxrYWJlbEBrZXJuZWwub3JnPgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZyAjIGYyMWE4 YjFiNjgzNyAoIlBDSTogYWFyZHZhcms6IE1vdmUgdG8gTVNJIGhhbmRsaW5nIHVzaW5nIGdlbmVy aWMgTVNJIHN1cHBvcnQiKQotLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJr LmMgfCAyMSArKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvcGNpLWFhcmR2YXJrLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5j CmluZGV4IDUxZmVkYmNiNDFmYi4uNzkxMDI3MDRkODJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLWFhcmR2YXJrLmMKQEAgLTI3OCw3ICsyNzgsNiBAQCBzdHJ1Y3QgYWR2a19wY2llIHsKIAly YXdfc3BpbmxvY2tfdCBtc2lfaXJxX2xvY2s7CiAJREVDTEFSRV9CSVRNQVAobXNpX3VzZWQsIE1T SV9JUlFfTlVNKTsKIAlzdHJ1Y3QgbXV0ZXggbXNpX3VzZWRfbG9jazsKLQl1MTYgbXNpX21zZzsK IAlpbnQgbGlua19nZW47CiAJc3RydWN0IHBjaV9icmlkZ2VfZW11bCBicmlkZ2U7CiAJc3RydWN0 IGdwaW9fZGVzYyAqcmVzZXRfZ3BpbzsKQEAgLTQ3Myw2ICs0NzIsNyBAQCBzdGF0aWMgdm9pZCBh ZHZrX3BjaWVfZGlzYWJsZV9vYl93aW4oc3RydWN0IGFkdmtfcGNpZSAqcGNpZSwgdTggd2luX251 bSkKIAogc3RhdGljIHZvaWQgYWR2a19wY2llX3NldHVwX2h3KHN0cnVjdCBhZHZrX3BjaWUgKnBj aWUpCiB7CisJcGh5c19hZGRyX3QgbXNpX2FkZHI7CiAJdTMyIHJlZzsKIAlpbnQgaTsKIApAQCAt NTYxLDYgKzU2MSwxMSBAQCBzdGF0aWMgdm9pZCBhZHZrX3BjaWVfc2V0dXBfaHcoc3RydWN0IGFk dmtfcGNpZSAqcGNpZSkKIAlyZWcgfD0gTEFORV9DT1VOVF8xOwogCWFkdmtfd3JpdGVsKHBjaWUs IHJlZywgUENJRV9DT1JFX0NUUkwwX1JFRyk7CiAKKwkvKiBTZXQgTVNJIGFkZHJlc3MgKi8KKwlt c2lfYWRkciA9IHZpcnRfdG9fcGh5cyhwY2llKTsKKwlhZHZrX3dyaXRlbChwY2llLCBsb3dlcl8z Ml9iaXRzKG1zaV9hZGRyKSwgUENJRV9NU0lfQUREUl9MT1dfUkVHKTsKKwlhZHZrX3dyaXRlbChw Y2llLCB1cHBlcl8zMl9iaXRzKG1zaV9hZGRyKSwgUENJRV9NU0lfQUREUl9ISUdIX1JFRyk7CisK IAkvKiBFbmFibGUgTVNJICovCiAJcmVnID0gYWR2a19yZWFkbChwY2llLCBQQ0lFX0NPUkVfQ1RS TDJfUkVHKTsKIAlyZWcgfD0gUENJRV9DT1JFX0NUUkwyX01TSV9FTkFCTEU7CkBAIC0xMTg0LDEw ICsxMTg5LDEwIEBAIHN0YXRpYyB2b2lkIGFkdmtfbXNpX2lycV9jb21wb3NlX21zaV9tc2coc3Ry dWN0IGlycV9kYXRhICpkYXRhLAogCQkJCQkgc3RydWN0IG1zaV9tc2cgKm1zZykKIHsKIAlzdHJ1 Y3QgYWR2a19wY2llICpwY2llID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7Ci0J cGh5c19hZGRyX3QgbXNpX21zZyA9IHZpcnRfdG9fcGh5cygmcGNpZS0+bXNpX21zZyk7CisJcGh5 c19hZGRyX3QgbXNpX2FkZHIgPSB2aXJ0X3RvX3BoeXMocGNpZSk7CiAKLQltc2ctPmFkZHJlc3Nf bG8gPSBsb3dlcl8zMl9iaXRzKG1zaV9tc2cpOwotCW1zZy0+YWRkcmVzc19oaSA9IHVwcGVyXzMy X2JpdHMobXNpX21zZyk7CisJbXNnLT5hZGRyZXNzX2xvID0gbG93ZXJfMzJfYml0cyhtc2lfYWRk cik7CisJbXNnLT5hZGRyZXNzX2hpID0gdXBwZXJfMzJfYml0cyhtc2lfYWRkcik7CiAJbXNnLT5k YXRhID0gZGF0YS0+aHdpcnE7CiB9CiAKQEAgLTEzNDYsMTggKzEzNTEsMTAgQEAgc3RhdGljIHN0 cnVjdCBtc2lfZG9tYWluX2luZm8gYWR2a19tc2lfZG9tYWluX2luZm8gPSB7CiBzdGF0aWMgaW50 IGFkdmtfcGNpZV9pbml0X21zaV9pcnFfZG9tYWluKHN0cnVjdCBhZHZrX3BjaWUgKnBjaWUpCiB7 CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBjaWUtPnBkZXYtPmRldjsKLQlwaHlzX2FkZHJfdCBt c2lfbXNnX3BoeXM7CiAKIAlyYXdfc3Bpbl9sb2NrX2luaXQoJnBjaWUtPm1zaV9pcnFfbG9jayk7 CiAJbXV0ZXhfaW5pdCgmcGNpZS0+bXNpX3VzZWRfbG9jayk7CiAKLQltc2lfbXNnX3BoeXMgPSB2 aXJ0X3RvX3BoeXMoJnBjaWUtPm1zaV9tc2cpOwotCi0JYWR2a193cml0ZWwocGNpZSwgbG93ZXJf MzJfYml0cyhtc2lfbXNnX3BoeXMpLAotCQkgICAgUENJRV9NU0lfQUREUl9MT1dfUkVHKTsKLQlh ZHZrX3dyaXRlbChwY2llLCB1cHBlcl8zMl9iaXRzKG1zaV9tc2dfcGh5cyksCi0JCSAgICBQQ0lF X01TSV9BRERSX0hJR0hfUkVHKTsKLQogCXBjaWUtPm1zaV9pbm5lcl9kb21haW4gPQogCQlpcnFf ZG9tYWluX2FkZF9saW5lYXIoTlVMTCwgTVNJX0lSUV9OVU0sCiAJCQkJICAgICAgJmFkdmtfbXNp X2RvbWFpbl9vcHMsIHBjaWUpOwotLSAKMi4zNC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=