PCI: dwc: designware: Add new *ops* for CPU addr fixup
authorKishon Vijay Abraham I <kishon@ti.com>
Mon, 13 Mar 2017 13:43:22 +0000 (19:13 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 4 Apr 2017 13:30:10 +0000 (08:30 -0500)
commita660083eb06c5bb0ad049377dbd2522e4b1551d6
tree584103fa6b396db693c314b4dcded93ddc9753f1
parent1b497e6493c49bbb55c89f53562f7f853495e90d
PCI: dwc: designware: Add new *ops* for CPU addr fixup

Some platforms (like dra7xx) require only the least 28 bits of the
corresponding 32 bit CPU address to be programmed in the address
translation unit. This modified address is stored in io_base/mem_base/
cfg0_base/cfg1_base in dra7xx_pcie_host_init(). While this is okay for
host mode where the address range is fixed, device mode requires different
addresses to be programmed based on the host buffer address.  Add a new
ops to get the least 28 bits of the corresponding 32 bit CPU address and
invoke it before programming the address translation unit.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Joao Pinto <jpinto@synopsys.com>
drivers/pci/dwc/pcie-designware.c
drivers/pci/dwc/pcie-designware.h