All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Ray Jui <rjui@broadcom.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
	Arnd Bergmann <arnd@arndb.de>, Hauke Mehrtens <hauke@hauke-m.de>,
	linux-kernel@vger.kernel.org,
	bcm-kernel-feedback-list@broadcom.com, linux-pci@vger.kernel.org
Subject: Re: [PATCH 2/5] PCI: iproc: Add PAXC interface support
Date: Tue, 17 Nov 2015 16:45:39 -0800	[thread overview]
Message-ID: <564BCA33.9020801@gmail.com> (raw)
In-Reply-To: <564BCA4C.6030809@broadcom.com>

On 17/11/15 16:46, Ray Jui wrote:
> 
> 
> On 11/17/2015 4:34 PM, Florian Fainelli wrote:
>> On 17/11/15 16:31, Ray Jui wrote:
>>> Traditionally, all iProc PCIe root complexes use PAXB based wrapper,
>>> with an integrated on-chip Serdes to support external endpoint devices.
>>> On newer iProc platforms, a PAXC based wrapper is introduced, for
>>> connection with internally emulated PCIe endpoint devices in the ASIC
>>>
>>> This patch adds support for PAXC based iProc PCIe root complex in the
>>> iProc PCIe core driver. This change fators out common logic between
>>> PAXB and PAXC, and use tables to store register offsets that are
>>> different between PAXB and PAXC. This allows the driver to be scaled to
>>> support subsequent PAXC revisions in the future
>>>
>>> Signed-off-by: Ray Jui <rjui@broadcom.com>
>>> Reviewed-by: Scott Branden <sbranden@broadcom.com>
>>> ---
>>>   drivers/pci/host/pcie-iproc-platform.c |   8 ++
>>>   drivers/pci/host/pcie-iproc.c          | 202
>>> +++++++++++++++++++++++++++------
>>>   drivers/pci/host/pcie-iproc.h          |  19 ++++
>>>   3 files changed, 195 insertions(+), 34 deletions(-)
>>>
>>> diff --git a/drivers/pci/host/pcie-iproc-platform.c
>>> b/drivers/pci/host/pcie-iproc-platform.c
>>> index c9550dc..716b56b 100644
>>> --- a/drivers/pci/host/pcie-iproc-platform.c
>>> +++ b/drivers/pci/host/pcie-iproc-platform.c
>>> @@ -42,6 +42,13 @@ static int iproc_pcie_pltfm_probe(struct
>>> platform_device *pdev)
>>>       pcie->dev = &pdev->dev;
>>>       platform_set_drvdata(pdev, pcie);
>>>
>>> +    if (of_device_is_compatible(np, "brcm,iproc-pcie"))
>>> +        pcie->type = IPROC_PCIE_PAXB;
>>> +    else if (of_device_is_compatible(np, "brcm,iproc-pcie-paxc"))
>>> +        pcie->type = IPROC_PCIE_PAXC;
>>> +    else
>>> +        return -ENODEV;
>>
>> Sorry for not noticing earlier, but typically, to avoid repeating the
>> same compatible string twice (once if of_device_id, and somewhere else),
>> you would put the type in the .data member of the of_device_id lookup
>> table and you could fetch this directly here. So something like this:
>>
>>   static const struct of_device_id iproc_pcie_of_match_table[] = {
>>       { .compatible = "brcm,iproc-pcie", .data = (int
>> *)IPROC_PCIE_PAXB },
>> +    { .compatible = "brcm,iproc-pcie-paxc", .data = (int
>> *)IPROC_PCIE_PAXC },
>>       { /* sentinel */ }
>>
> 
> Just to confirm, if I do this, then the above code to check
> of_device_is_compatible becomes the following?
> 
> pcie->type = (enum iproc_pcie_type)of_id->data;

That is correct yes.
-- 
Florian

  reply	other threads:[~2015-11-18  0:46 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-18  0:31 [PATCH 0/5] Add iProc PCIe PAXC and MSI support Ray Jui
2015-11-18  0:31 ` [PATCH 1/5] PCI: iproc: Update iProc PCIe device tree binding Ray Jui
2015-11-18  0:31 ` [PATCH 2/5] PCI: iproc: Add PAXC interface support Ray Jui
2015-11-18  0:34   ` Florian Fainelli
2015-11-18  0:46     ` Ray Jui
2015-11-18  0:45       ` Florian Fainelli [this message]
2015-11-18  0:47         ` Ray Jui
2015-11-18  0:31 ` [PATCH 3/5] PCI: iproc: Add iProc PCIe MSI device tree binding Ray Jui
2015-11-18  0:31 ` [PATCH 4/5] PCI: iproc: Add iProc PCIe MSI support Ray Jui
2015-11-18  8:48   ` Marc Zyngier
2015-11-18  9:50     ` Arnd Bergmann
2015-11-19 19:22       ` Ray Jui
2015-11-19  1:37     ` Ray Jui
2015-11-19  2:56       ` Ray Jui
2015-11-19  7:23       ` Ray Jui
2015-11-19  8:31       ` Arnd Bergmann
2015-11-19 23:05         ` Ray Jui
2015-11-20  8:56       ` Marc Zyngier
2015-11-20 17:07         ` Ray Jui
2015-11-18  0:31 ` [PATCH 5/5] ARM: dts: Enable MSI support for Broadcom Cygnus Ray Jui

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=564BCA33.9020801@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=arnd@arndb.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bhelgaas@google.com \
    --cc=hauke@hauke-m.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=rjui@broadcom.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 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.