All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Rob Herring <robh@kernel.org>
Cc: "Alyssa Rosenzweig" <alyssa@rosenzweig.io>,
	"Hector Martin" <marcan@marcan.st>,
	"Sven Peter" <sven@svenpeter.dev>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Mark Kettenis" <kettenis@openbsd.org>,
	"Stan Skowronek" <stan@corellium.com>,
	asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-pci@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/7] PCI: apple: Add T602x PCIe support
Date: Thu, 13 Feb 2025 18:01:33 +0000	[thread overview]
Message-ID: <86r041sozm.wl-maz@kernel.org> (raw)
In-Reply-To: <CAL_JsqJ-sYsy-11_UiEKrKok49-a-VJUvm3vBGbpu9vY3TKLUw@mail.gmail.com>

On Thu, 13 Feb 2025 17:56:19 +0000,
Rob Herring <robh@kernel.org> wrote:
> 
> On Tue, Feb 11, 2025 at 1:54 PM Alyssa Rosenzweig <alyssa@rosenzweig.io> wrote:
> >
> > From: Hector Martin <marcan@marcan.st>
> >
> > This version of the hardware moved around a bunch of registers, so we
> > drop the old compatible for these and introduce register offset
> > structures to handle the differences.
> >
> > Signed-off-by: Hector Martin <marcan@marcan.st>
> > Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
> > ---
> >  drivers/pci/controller/pcie-apple.c | 125 ++++++++++++++++++++++++++++++------
> >  1 file changed, 105 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
> > index 7f4839fb0a5b15a9ca87337f53c14a1ce08301fc..7c598334427cb56ca066890ac61143ae1d3ed744 100644
> > --- a/drivers/pci/controller/pcie-apple.c
> > +++ b/drivers/pci/controller/pcie-apple.c
> > @@ -26,6 +26,7 @@
> >  #include <linux/list.h>
> >  #include <linux/module.h>
> >  #include <linux/msi.h>
> > +#include <linux/of_device.h>
> 
> Drivers should not need this...
> 
> > +const struct reg_info t602x_hw = {
> > +       .phy_lane_ctl = 0,
> > +       .port_msiaddr = PORT_T602X_MSIADDR,
> > +       .port_msiaddr_hi = PORT_T602X_MSIADDR_HI,
> > +       .port_refclk = 0,
> > +       .port_perst = PORT_T602X_PERST,
> > +       .port_rid2sid = PORT_T602X_RID2SID,
> > +       .port_msimap = PORT_T602X_MSIMAP,
> > +       .max_rid2sid = 512, /* 16 on t602x, guess for autodetect on future HW */
> > +       .max_msimap = 512, /* 96 on t602x, guess for autodetect on future HW */
> > +};
> > +
> > +static const struct of_device_id apple_pcie_of_match_hw[] = {
> > +       { .compatible = "apple,t6020-pcie", .data = &t602x_hw },
> > +       { .compatible = "apple,pcie", .data = &t8103_hw },
> > +       { }
> > +};
> 
> You should not have 2 match tables.
> 
> > @@ -750,13 +828,19 @@ static int apple_pcie_init(struct pci_config_window *cfg)
> >         struct platform_device *platform = to_platform_device(dev);
> >         struct device_node *of_port;
> >         struct apple_pcie *pcie;
> > +       const struct of_device_id *match;
> >         int ret;
> >
> > +       match = of_match_device(apple_pcie_of_match_hw, dev);
> > +       if (!match)
> > +               return -ENODEV;
> > +
> >         pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
> >         if (!pcie)
> >                 return -ENOMEM;
> >
> >         pcie->dev = dev;
> > +       pcie->hw = match->data;
> >
> >         mutex_init(&pcie->lock);
> >
> > @@ -795,6 +879,7 @@ static const struct pci_ecam_ops apple_pcie_cfg_ecam_ops = {
> >  };
> >
> >  static const struct of_device_id apple_pcie_of_match[] = {
> > +       { .compatible = "apple,t6020-pcie", .data = &apple_pcie_cfg_ecam_ops },
> >         { .compatible = "apple,pcie", .data = &apple_pcie_cfg_ecam_ops },
> >         { }
> 
> You are going to need to merge the data to 1 struct.
> 
> And then use (of_)?device_get_match_data() in probe().

No, that will break the driver. This isn't a standalone driver, but
only an ECAM shim (as you can tell from the actual probe function).

	M.

-- 
Without deviation from the norm, progress is not possible.

  reply	other threads:[~2025-02-13 18:01 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-11 19:54 [PATCH 0/7] PCI: apple: support t6020 Alyssa Rosenzweig
2025-02-11 19:54 ` [PATCH 1/7] dt-bindings: pci: apple,pcie: Add t6020 support Alyssa Rosenzweig
2025-02-13  9:09   ` Krzysztof Kozlowski
2025-02-11 19:54 ` [PATCH 2/7] PCI: apple: Fix missing OF node reference in apple_pcie_setup_port Alyssa Rosenzweig
2025-02-11 19:54 ` [PATCH 3/7] PCI: apple: Set only available ports up Alyssa Rosenzweig
2025-02-11 20:33   ` Bjorn Helgaas
2025-02-11 19:54 ` [PATCH 4/7] PCI: apple: Move port PHY registers to their own reg items Alyssa Rosenzweig
2025-02-11 19:54 ` [PATCH 5/7] PCI: apple: Drop poll for CORE_RC_PHYIF_STAT_REFCLK Alyssa Rosenzweig
2025-02-11 19:54 ` [PATCH 6/7] PCI: apple: Use gpiod_set_value_cansleep in probe flow Alyssa Rosenzweig
2025-02-11 19:54 ` [PATCH 7/7] PCI: apple: Add T602x PCIe support Alyssa Rosenzweig
2025-02-12  9:55   ` Marc Zyngier
2025-02-13 19:51     ` Sven Peter
2025-02-14 11:13       ` Marc Zyngier
2025-02-13  4:16   ` kernel test robot
2025-02-13 17:56   ` Rob Herring
2025-02-13 18:01     ` Marc Zyngier [this message]
2025-02-21 15:47       ` Rob Herring

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=86r041sozm.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=alyssa@rosenzweig.io \
    --cc=asahi@lists.linux.dev \
    --cc=bhelgaas@google.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kettenis@openbsd.org \
    --cc=krzk+dt@kernel.org \
    --cc=kw@linux.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=marcan@marcan.st \
    --cc=robh@kernel.org \
    --cc=stan@corellium.com \
    --cc=sven@svenpeter.dev \
    /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 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.