]> Git Repo - linux.git/commit
PCI: dwc: endpoint: Implement the pci_epc_ops::align_addr() operation
authorDamien Le Moal <[email protected]>
Sat, 12 Oct 2024 11:32:46 +0000 (20:32 +0900)
committerKrzysztof Wilczyński <[email protected]>
Mon, 4 Nov 2024 21:29:44 +0000 (21:29 +0000)
commite73ea1c2d4d8f7ba5daaf7aa51171f63cf79bcd8
tree9ae87a65fe5cae8c0718bb8cb395c4b9d2c166e4
parent08cac1006bfcc35fe363055a40e05d5410cdf010
PCI: dwc: endpoint: Implement the pci_epc_ops::align_addr() operation

The function dw_pcie_prog_outbound_atu() used to program outbound ATU
entries for mapping RC PCI addresses to local CPU addresses does not
allow PCI addresses that are not aligned to the value of region_align
of struct dw_pcie. This value is determined from the iATU hardware
registers during probing of the iATU (done by dw_pcie_iatu_detect()).
This value is thus valid for all DWC PCIe controllers, and valid
regardless of the hardware configuration used when synthesizing the
DWC PCIe controller.

Implement the ->align_addr() endpoint controller operation to allow
this mapping alignment to be transparently handled by endpoint function
drivers through the function pci_epc_mem_map().

Link: https://lore.kernel.org/linux-pci/[email protected]
Link: https://lore.kernel.org/linux-pci/[email protected]
Link: https://lore.kernel.org/linux-pci/[email protected]
Co-developed-by: Niklas Cassel <[email protected]>
Signed-off-by: Damien Le Moal <[email protected]>
[mani: squashed the patch that changed phy_addr_t to u64]
Signed-off-by: Manivannan Sadhasivam <[email protected]>
[kwilczynski: squashed patch that updated the pci_size variable]
Signed-off-by: Krzysztof Wilczyński <[email protected]>
Reviewed-by: Manivannan Sadhasivam <[email protected]>
drivers/pci/controller/dwc/pcie-designware-ep.c
This page took 0.057698 seconds and 4 git commands to generate.