Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp572535imu; Thu, 13 Dec 2018 00:13:45 -0800 (PST) X-Google-Smtp-Source: AFSGD/W75271IgMppaMK+LgnKpijJgqjZKvYF9Q+Za74+O2UA/NNdbzu7AYV08h7LxiPCrOZieGl X-Received: by 2002:a17:902:ac8f:: with SMTP id h15mr21954563plr.245.1544688825709; Thu, 13 Dec 2018 00:13:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544688825; cv=none; d=google.com; s=arc-20160816; b=O5Sa3MaB5cBz2PRXK8x+Ld0sHN747ISQz23GTRMsLN9oqiKrk/JyxTSJ1MQTyW+oKG eDqbMlEY2Fh1an/p7I9SqBkRISwCYMhyqrTZyZNpirB5cwLgPgtPTLoKE2nRPJgxT21i WT+9ZZuAIqRShzphCKp803ZiiK+qWAyJS8l1F/w3WWzHDHPhjAIGDaLLMmZk6pHGzug1 M17iQqs+Rhqc17Mp7YOpSjf1IDtJiZnKCuGQkfw1fqwh+FgmNNLSXFc36iTiiBaTbxM5 45KSMLOfIf5Heig0IrFAamts2li9qm8xS0jIE+2UZah2ayXtrrPl7R5kMNM74hQvR62Q OWRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:in-reply-to :subject:cc:to:from:user-agent:references; bh=KchXAUzC4fYT/tq4HDtTXeVWTNL6B5hXJvkYPLix3Fk=; b=DAN2RrCvw798KqbhsSJBiScsZemxPke4Ah7hfTRM7CZ3NaIabrpaXPb7V8csRD28vK nt4e/gP2uwHp82ndJ24NGESY/w5gezNSimr2KwRTrRZCX5U4RVLq4zbJlP0b+1v1D6t3 /rneI7tqZVY9mTjS2ksYPLn///N0/omt/R+5XoKLUa9w8KCv6vHh3JQa3Obp6Muw5z0j /jfyqfQzrYTebnRgB57OO8UL1RlL7pORqNB3HTk6yXqjOmcQuGWOIyr6wiM0cwjSjVTq c8+Amue9RRyjrrbJVRxzWGbMNmsvQbpKXCbubJAUg1iFs0YVfNHH3FvbKvw6mLI4eZXK gSDw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o19si1069864pfi.261.2018.12.13.00.13.30; Thu, 13 Dec 2018 00:13:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727188AbeLMIMk (ORCPT + 99 others); Thu, 13 Dec 2018 03:12:40 -0500 Received: from guitar.tcltek.co.il ([192.115.133.116]:50418 "EHLO mx.tkos.co.il" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726500AbeLMIMk (ORCPT ); Thu, 13 Dec 2018 03:12:40 -0500 Received: from tarshish (unknown [10.0.8.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.tkos.co.il (Postfix) with ESMTPS id AB5C644011A; Thu, 13 Dec 2018 10:12:38 +0200 (IST) References: <1544687042-16595-1-git-send-email-hongxing.zhu@nxp.com> User-agent: mu4e 1.0; emacs 25.2.2 From: Baruch Siach To: Richard Zhu Cc: "bhelgaas\@google.com" , "lorenzo.pieralisi\@arm.com" , "l.stach\@pengutronix.de" , "andrew.smirnov\@gmail.com" , "linux-pci\@vger.kernel.org" , "linux-kernel\@vger.kernel.org" , "linux-arm-kernel\@lists.infradead.org" Subject: Re: [v2] PCI: imx: make msi work without pcieportbus In-reply-to: <1544687042-16595-1-git-send-email-hongxing.zhu@nxp.com> Date: Thu, 13 Dec 2018 10:12:38 +0200 Message-ID: <87zht96e15.fsf@tkos.co.il> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Richard, One more comment that occurred to me only now. Richard Zhu writes: > MSI_EN of iMX PCIe RC would be asserted when > PCIEPORTBUS driver is selected. > Thus, the MSI works fine on iMX PCIe before. > Assert it unconditionally when MSI is supported. > Otherwise, the MSI wouldn't be triggered although > the EP is present and the MSIs are assigned. > > Signed-off-by: Richard Zhu > --- > drivers/pci/controller/dwc/pci-imx6.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 26087b3..d3e4296 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -74,6 +74,7 @@ struct imx6_pcie { > #define PHY_PLL_LOCK_WAIT_USLEEP_MAX 200 > > /* PCIe Root Complex registers (memory-mapped) */ > +#define PCI_MSI_CAP 0x50 > #define PCIE_RC_LCR 0x7c > #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN1 0x1 > #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN2 0x2 > @@ -926,6 +927,7 @@ static int imx6_pcie_probe(struct platform_device *pdev) > struct resource *dbi_base; > struct device_node *node = dev->of_node; > int ret; > + u16 val; > > imx6_pcie = devm_kzalloc(dev, sizeof(*imx6_pcie), GFP_KERNEL); > if (!imx6_pcie) > @@ -1070,6 +1072,11 @@ static int imx6_pcie_probe(struct platform_device *pdev) > ret = imx6_add_pcie_port(imx6_pcie, pdev); > if (ret < 0) > return ret; > + if (IS_ENABLED(CONFIG_PCI_MSI)) { CONFIG_PCI_IMX6 depends on CONFIG_PCI_MSI_IRQ_DOMAIN that in turn depends on CONFIG_PCI_MSI. So this condition should always be true. If so, you can drop this one as well. > + val = dw_pcie_readw_dbi(pci, PCI_MSI_CAP + PCI_MSI_FLAGS); > + val |= PCI_MSI_FLAGS_ENABLE; > + dw_pcie_writew_dbi(pci, PCI_MSI_CAP + PCI_MSI_FLAGS, val); > + } > > return 0; > } baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -