From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Murali Karicheri <m-karicheri2@ti.com>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
Grygorii Strashko <grygorii.strashko@ti.com>,
Mohit Kumar <mohit.kumar@st.com>,
Jingoo Han <jg1.han@samsung.com>,
Santosh Shilimkar <santosh.shilimkar@ti.com>,
Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: [PATCH v1 5/5] pci: keystone: add pcie driver based on designware core driver
Date: Thu, 15 May 2014 18:23:05 +0200 [thread overview]
Message-ID: <6048322.x3M3sdDEWO@wuerfel> (raw)
In-Reply-To: <1400169692-9677-6-git-send-email-m-karicheri2@ti.com>
On Thursday 15 May 2014 12:01:32 Murali Karicheri wrote:
> +static int
> +keystone_pcie_fault(unsigned long addr, unsigned int fsr,
> + struct pt_regs *regs)
> +{
> + unsigned long instr = *(unsigned long *) instruction_pointer(regs);
> +
> + if ((instr & 0x0e100090) == 0x00100090) {
> + int reg = (instr >> 12) & 15;
> +
> + regs->uregs[reg] = -1;
> + regs->ARM_pc += 4;
> + }
> +
> + return 0;
> +}
This needs to check in the PCI host registers what happened and do
some appropriate action. If the fault was not caused by PCIe, it
should not be ignored here but get passed on to the next handler.
> +static int __init ks_pcie_probe(struct platform_device *pdev)
> +{
> + struct device_node *np = pdev->dev.of_node;
> + struct device *dev = &pdev->dev;
> + struct keystone_pcie *ks_pcie;
> + void __iomem *devstat;
> + struct pcie_port *pp;
> + struct resource *res;
> + struct phy *phy;
> + int ret = 0;
> + u32 val;
> +
> + ks_pcie = devm_kzalloc(&pdev->dev, sizeof(*ks_pcie),
> + GFP_KERNEL);
> + if (!ks_pcie) {
> + dev_err(dev, "no memory for keystone pcie\n");
> + return -ENOMEM;
> + }
> +
> + /* check if serdes phy needs to be enabled */
> + if (of_get_property(np, "ti,init-phy", NULL) != NULL) {
> + phy = devm_phy_get(dev, "pcie-phy");
> + if (IS_ERR(phy))
> + return PTR_ERR(phy);
> +
> + ret = phy_init(phy);
> + if (ret < 0)
> + return ret;
> + }
I think you can just call devm_phy_get() unconditionally here and
get rid of the ti,init-phy property. If there is no phy, don't
initialize it.
> +
> + ret = add_pcie_port(ks_pcie, pdev);
> + if (ret < 0)
> + goto fail_clk;
> +
> + platform_set_drvdata(pdev, ks_pcie);
Set the platform data first, then add the port.
> + dev_info(dev, "pcie rc probe success\n");
Remove this.
> +#ifdef CONFIG_PCI_KEYSTONE
> +/*
> + * The KeyStone PCIe controller has maximum read request size of 256 bytes.
> + */
> +static void quirk_limit_readrequest(struct pci_dev *dev)
> +{
> + int readrq = pcie_get_readrq(dev);
> +
> + if (readrq > 256)
> + pcie_set_readrq(dev, 256);
> +}
> +DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_limit_readrequest);
> +#endif /* CONFIG_PCI_KEYSTONE */
This doesn't work: you can't just limit do this for all devices just based
on PCI_KEYSTONE being enabled, you have to check if you are actually using
this controller.
Arnd
next prev parent reply other threads:[~2014-05-15 16:23 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-15 16:01 [PATCH v1 0/5] Add Keystone PCIe controller driver Murali Karicheri
2014-05-15 16:01 ` [PATCH v1 1/5] ARM: keystone: add pcie related options Murali Karicheri
2014-05-16 0:27 ` Jingoo Han
2014-05-16 14:36 ` Karicheri, Muralidharan
2014-05-15 16:01 ` [PATCH v1 2/5] pci: designware: enhancements to support keystone pcie Murali Karicheri
2014-05-16 2:40 ` Jingoo Han
2014-05-16 20:46 ` Karicheri, Muralidharan
2014-05-16 22:15 ` Kumar Gala
2014-05-16 22:49 ` Murali Karicheri
2014-05-15 16:01 ` [PATCH v1 3/5] phy: pci serdes phy driver for keystone Murali Karicheri
2014-05-15 16:14 ` Arnd Bergmann
2014-05-23 17:14 ` Murali Karicheri
2014-05-23 19:23 ` Arnd Bergmann
2014-05-27 16:46 ` Murali Karicheri
2014-05-27 18:36 ` Arnd Bergmann
2014-06-02 6:16 ` Kishon Vijay Abraham I
2014-06-02 6:45 ` Jingoo Han
2014-06-02 14:28 ` Murali Karicheri
2014-05-15 16:01 ` [PATCH v1 4/5] pci: dw: add common functions to support old hw based pci driver Murali Karicheri
2014-05-16 20:47 ` Karicheri, Muralidharan
2014-05-15 16:01 ` [PATCH v1 5/5] pci: keystone: add pcie driver based on designware core driver Murali Karicheri
2014-05-15 16:23 ` Arnd Bergmann [this message]
2014-05-15 17:45 ` Murali Karicheri
2014-05-15 18:20 ` Arnd Bergmann
2014-05-15 18:39 ` Jason Gunthorpe
2014-05-15 20:04 ` Murali Karicheri
2014-05-15 20:52 ` Jason Gunthorpe
2014-05-16 20:29 ` Karicheri, Muralidharan
2014-05-20 17:02 ` Jason Gunthorpe
2014-05-20 17:22 ` Bjorn Helgaas
2014-05-20 17:42 ` Jason Gunthorpe
2014-05-21 23:32 ` Murali Karicheri
2014-05-22 0:55 ` Jason Gunthorpe
[not found] ` <537E7823.5060609@ti.com>
2014-05-26 23:31 ` Jason Gunthorpe
2014-05-16 20:26 ` Murali Karicheri
2014-05-19 12:06 ` Arnd Bergmann
2014-05-19 21:10 ` Murali Karicheri
2014-05-20 7:55 ` Arnd Bergmann
2014-05-20 17:17 ` Bjorn Helgaas
2014-05-29 15:34 ` Murali Karicheri
2014-05-15 16:28 ` Arnd Bergmann
2014-05-16 22:44 ` Murali Karicheri
2014-05-19 12:12 ` Arnd Bergmann
2014-05-16 20:47 ` Karicheri, Muralidharan
2014-05-16 0:48 ` [PATCH v1 0/5] Add Keystone PCIe controller driver Jingoo Han
2014-05-16 20:40 ` Karicheri, Muralidharan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6048322.x3M3sdDEWO@wuerfel \
--to=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=grygorii.strashko@ti.com \
--cc=jg1.han@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=m-karicheri2@ti.com \
--cc=mohit.kumar@st.com \
--cc=santosh.shilimkar@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox