From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> To: Bjorn Helgaas <helgaas@kernel.org> Cc: Bjorn Helgaas <bhelgaas@google.com>, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, Rob Herring <robh+dt@kernel.org>, Ian Campbell <ijc+devicetree@hellion.org.uk>, Pawel Moll <pawel.moll@arm.com>, Mark Rutland <mark.rutland@arm.com>, Kumar Gala <galak@codeaurora.org>, Lior Amsalem <alior@marvell.com>, Andrew Lunn <andrew@lunn.ch>, Yehuda Yitschak <yehuday@marvell.com>, Jason Cooper <jason@lakedaemon.net>, Hanna Hawa <hannah@marvell.com>, Nadav Haklai <nadavh@marvell.com>, Gregory Clement <gregory.clement@free-electrons.com>, linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Subject: Re: [PATCH v2 0/2] pci: host: new driver for Marvell Armada 7K/8K PCIe controller Date: Mon, 25 Apr 2016 21:21:03 +0200 [thread overview] Message-ID: <20160425212103.0f646a3a@free-electrons.com> (raw) In-Reply-To: <20160425172846.GB1759@localhost> Hello, On Mon, 25 Apr 2016 12:28:46 -0500, Bjorn Helgaas wrote: > It *is* pretty trivial. The reason I'm hesitating is because we have > all these DesignWare-based drivers (dra7xx, exynos, imx6, ks, ls, > dw_plat, hisi, qcom, spear13xx, and now armada8k), and they're > *mostly* similar, but they differ in minor, annoying ways. This is > becoming a significant maintenance burden for me, and I'd like to > figure out how to mitigate that. Understood. > For now, I don't have any great ideas except that it would be nice to > remove needless variations. The following is a typical code > structure, but it's not universally followed: > > XXX_pcie_probe > XXX_add_pcie_port > dw_pcie_host_init > XXX_pcie_host_init > dw_pcie_setup_rc > XXX_pcie_establish_link Indeed, the first step towards having more common code is to make the code to be factorized look as similar as possible. > There's a hodge-podge of ways to get related resources (clocks and > PHYs) and initialize them. IRQ setup is not really consistent across > all the drivers. It's sort of disappointing that most of these > drivers have a "dbi_base" resource, but they use different DT property > names for it. > > The armada8k driver doesn't have a DRV_add_pcie_port() function or a > DRV_pcie_establish_link() function, and it has its own "wait for link" > timeout loop instead of using dw_pcie_wait_for_link(). > > How about if you just shuffle those bits around into > an armada8k_add_pcie_port() and an armada8k_pcie_establish_link(), and > we'll call that good for now? I'll take a stab at that tomorrow and send an updated version. Thanks for the feedback! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 0/2] pci: host: new driver for Marvell Armada 7K/8K PCIe controller Date: Mon, 25 Apr 2016 21:21:03 +0200 [thread overview] Message-ID: <20160425212103.0f646a3a@free-electrons.com> (raw) In-Reply-To: <20160425172846.GB1759@localhost> Hello, On Mon, 25 Apr 2016 12:28:46 -0500, Bjorn Helgaas wrote: > It *is* pretty trivial. The reason I'm hesitating is because we have > all these DesignWare-based drivers (dra7xx, exynos, imx6, ks, ls, > dw_plat, hisi, qcom, spear13xx, and now armada8k), and they're > *mostly* similar, but they differ in minor, annoying ways. This is > becoming a significant maintenance burden for me, and I'd like to > figure out how to mitigate that. Understood. > For now, I don't have any great ideas except that it would be nice to > remove needless variations. The following is a typical code > structure, but it's not universally followed: > > XXX_pcie_probe > XXX_add_pcie_port > dw_pcie_host_init > XXX_pcie_host_init > dw_pcie_setup_rc > XXX_pcie_establish_link Indeed, the first step towards having more common code is to make the code to be factorized look as similar as possible. > There's a hodge-podge of ways to get related resources (clocks and > PHYs) and initialize them. IRQ setup is not really consistent across > all the drivers. It's sort of disappointing that most of these > drivers have a "dbi_base" resource, but they use different DT property > names for it. > > The armada8k driver doesn't have a DRV_add_pcie_port() function or a > DRV_pcie_establish_link() function, and it has its own "wait for link" > timeout loop instead of using dw_pcie_wait_for_link(). > > How about if you just shuffle those bits around into > an armada8k_add_pcie_port() and an armada8k_pcie_establish_link(), and > we'll call that good for now? I'll take a stab at that tomorrow and send an updated version. Thanks for the feedback! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
next prev parent reply other threads:[~2016-04-25 19:21 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-04-14 15:36 [PATCH v2 0/2] pci: host: new driver for Marvell Armada 7K/8K PCIe controller Thomas Petazzoni 2016-04-14 15:36 ` Thomas Petazzoni 2016-04-14 15:36 ` [PATCH v2 1/2] dt-bindings: pci: add DT binding " Thomas Petazzoni 2016-04-14 15:36 ` Thomas Petazzoni 2016-04-14 17:40 ` Rob Herring 2016-04-14 17:40 ` Rob Herring 2016-04-14 20:18 ` Thomas Petazzoni 2016-04-14 20:18 ` Thomas Petazzoni 2016-04-14 20:31 ` Rob Herring 2016-04-14 20:31 ` Rob Herring 2016-04-14 15:36 ` [PATCH v2 2/2] pci: host: new driver " Thomas Petazzoni 2016-04-14 15:36 ` Thomas Petazzoni 2016-04-25 13:46 ` [PATCH v2 0/2] " Thomas Petazzoni 2016-04-25 13:46 ` Thomas Petazzoni 2016-04-25 17:28 ` Bjorn Helgaas 2016-04-25 17:28 ` Bjorn Helgaas 2016-04-25 19:21 ` Thomas Petazzoni [this message] 2016-04-25 19:21 ` Thomas Petazzoni 2016-04-26 8:42 ` Thomas Petazzoni 2016-04-26 8:42 ` Thomas Petazzoni 2016-04-26 8:42 ` Thomas Petazzoni 2016-04-26 17:00 ` Bjorn Helgaas 2016-04-26 17:00 ` Bjorn Helgaas 2016-04-26 19:09 ` Thomas Petazzoni 2016-04-26 19:09 ` Thomas Petazzoni
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=20160425212103.0f646a3a@free-electrons.com \ --to=thomas.petazzoni@free-electrons.com \ --cc=alior@marvell.com \ --cc=andrew@lunn.ch \ --cc=bhelgaas@google.com \ --cc=devicetree@vger.kernel.org \ --cc=galak@codeaurora.org \ --cc=gregory.clement@free-electrons.com \ --cc=hannah@marvell.com \ --cc=helgaas@kernel.org \ --cc=ijc+devicetree@hellion.org.uk \ --cc=jason@lakedaemon.net \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pci@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=nadavh@marvell.com \ --cc=pawel.moll@arm.com \ --cc=robh+dt@kernel.org \ --cc=sebastian.hesselbarth@gmail.com \ --cc=yehuday@marvell.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.