PCI: Add generic config accessors
authorRob Herring <robh@kernel.org>
Sat, 10 Jan 2015 02:34:39 +0000 (20:34 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 22 Jan 2015 19:59:45 +0000 (13:59 -0600)
commit1f94a94f67e1083e19fb7b436dd7ca7a4ba03f2b
treeab2370828b760ed28ca7500c37318c78fcfc6fef
parent453c02c28405978b7ef5d673023e5fec19bccf3f
PCI: Add generic config accessors

Many PCI controllers' configuration space accesses are memory-mapped and
vary only in address calculation and access checks.  There are 2 main
access methods: a decoded address space such as ECAM or a single address
and data register similar to x86.  This implementation can support both
cases as well as be used in cases that need additional pre- or post-access
handling.

Add a new pci_ops member, map_bus, which can do access checks and any
necessary setup.  It returns the address to use for the configuration space
access.  The access types supported are 32-bit only accesses or correct
byte, word, or dword sized accesses.

Tested-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
drivers/pci/access.c
include/linux/pci.h