Thread (32 messages) 32 messages, 12 authors, 2014-11-04
STALE4233d REVIEWED: 6 (6M)
Revisions (20)
  1. rfc [diff vs current]
  2. rfc [diff vs current]
  3. rfc [diff vs current]
  4. rfc [diff vs current]
  5. rfc [diff vs current]
  6. rfc [diff vs current]
  7. rfc [diff vs current]
  8. rfc [diff vs current]
  9. rfc [diff vs current]
  10. rfc [diff vs current]
  11. rfc [diff vs current]
  12. rfc [diff vs current]
  13. rfc [diff vs current]
  14. rfc [diff vs current]
  15. rfc current
  16. v2 [diff vs current]
  17. v2 [diff vs current]
  18. v2 [diff vs current]
  19. v3 [diff vs current]
  20. v3 [diff vs current]

[RFC PATCH 2/2] arm: pcibios: move to generic PCI domains

From: l.stach@pengutronix.de (Lucas Stach)
Date: 2014-11-03 11:33:51
Also in: linux-pci

Am Montag, den 03.11.2014, 11:23 +0000 schrieb Lorenzo Pieralisi:
On Mon, Nov 03, 2014 at 01:18:12AM +0000, Jingoo Han wrote:
quoted
On Thursday, October 30, 2014 8:45 PM, Lorenzo Pieralisi wrote:
quoted
Most if not all ARM PCI host controller device drivers either ignore the
domain field in the pci_sys_data structure or just increment it every
time a host controller is probed, using it as a domain counter.

Therefore, instead of relying on pci_sys_data to stash the domain number
in a standard location, ARM pcibios code can be moved to the newly
introduced generic PCI domains code, implemented in commits:

commit 41e5c0f81d3e676d671d96a0a1fafb27abfbd9
("of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()")

commit 670ba0c8883b576d0aec28bd7a838358a4be1
("PCI: Add generic domain handling")

In order to assign a domain number dynamically, the ARM pcibios defines
the function, called by core PCI code:

void pci_bus_assign_domain_nr(...)

that relies on a DT property to define the domain number or falls back to
a counter; its usage replaces the current domain assignment code in PCI
host controllers present in the kernel.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Phil Edworthy <redacted>
Cc: Jason Gunthorpe <redacted>
Cc: Jingoo Han <redacted>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Russell King <redacted>
Cc: Mohit Kumar <redacted>
Signed-off-by: Lorenzo Pieralisi <redacted>
(+CC Richard Zhu, Lucas Stach, Kishon Vijay Abraham I, Murali Karicheri)

Acked-by: Jingoo Han <redacted>
Thank you Jingoo.
quoted
For a long time, I have wanted the patch like this. Personally,
I want to increase the build coverage and keep the same binary
regardless of config options as possible; thus, I don't like
#ifdef guards such as '#ifdef CONFIG_PCI_DOMAINS'. When I submitted
the first patch for 'pcie-designware.c', I was not able to find
a way to remove '#ifdef CONFIG_PCI_DOMAINS' from 'pcie-designware.c'.

This patch looks good and I think that this patch will not make
the problem. However, I didn't test this patch with Exynos platform,
due to some reasons. So, I hope that other engineers test this patch
on other SoC platforms related to designware PCIe.

To Mohit Kumar (ST SPEAR13XX), Richard Zhu/Lucas Stach (IMX6)
    Kishon Vijay Abraham I (TI DRA7XX), Murali Karicheri (TI KEYSTONE)

Would you test this patch and share the result?
It would be very helpful. Thank you.
I am happy to wait for a week or two before asking to add this code to -next,
it would be definitely great to get more coverage on pcie-designware.
I've just tested this on i.MX6 on top of 3.18-rc3. Given that we only
use a single domain there this patch should obviously not break
anything. Testing backs this claim, so:

Tested-by: Lucas Stach <l.stach@pengutronix.de>

I also looked through the patch briefly and it seems sane to me, so this
is also:

Acked-by: Lucas Stach <l.stach@pengutronix.de>

I don't like the fact that a proper binding documentation is missing for
the "linux,pci-domain" property, but this isn't the fault of this
patchset.

Regards,
Lucas

-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help