Message ID | 20241012113246.95634-5-dlemoal@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Manivannan Sadhasivam |
Headers | show |
Series | Improve PCI memory mapping API | expand |
On Sat, Oct 12, 2024 at 08:32:44PM +0900, Damien Le Moal wrote: > Document the new functions pci_epc_mem_map() and pci_epc_mem_unmap(). > Also add the documentation for the functions pci_epc_map_addr() and > pci_epc_unmap_addr() that were missing. > > Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> - Mani > Reviewed-by: Niklas Cassel <cassel@kernel.org> > --- > Documentation/PCI/endpoint/pci-endpoint.rst | 29 +++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst > index 21507e3cc238..35f82f2d45f5 100644 > --- a/Documentation/PCI/endpoint/pci-endpoint.rst > +++ b/Documentation/PCI/endpoint/pci-endpoint.rst > @@ -117,6 +117,35 @@ by the PCI endpoint function driver. > The PCI endpoint function driver should use pci_epc_mem_free_addr() to > free the memory space allocated using pci_epc_mem_alloc_addr(). > > +* pci_epc_map_addr() > + > + A PCI endpoint function driver should use pci_epc_map_addr() to map to a RC > + PCI address the CPU address of local memory obtained with > + pci_epc_mem_alloc_addr(). > + > +* pci_epc_unmap_addr() > + > + A PCI endpoint function driver should use pci_epc_unmap_addr() to unmap the > + CPU address of local memory mapped to a RC address with pci_epc_map_addr(). > + > +* pci_epc_mem_map() > + > + A PCI endpoint controller may impose constraints on the RC PCI addresses that > + can be mapped. The function pci_epc_mem_map() allows endpoint function > + drivers to allocate and map controller memory while handling such > + constraints. This function will determine the size of the memory that must be > + allocated with pci_epc_mem_alloc_addr() for successfully mapping a RC PCI > + address range. This function will also indicate the size of the PCI address > + range that was actually mapped, which can be less than the requested size, as > + well as the offset into the allocated memory to use for accessing the mapped > + RC PCI address range. > + > +* pci_epc_mem_unmap() > + > + A PCI endpoint function driver can use pci_epc_mem_unmap() to unmap and free > + controller memory that was allocated and mapped using pci_epc_mem_map(). > + > + > Other EPC APIs > ~~~~~~~~~~~~~~ > > -- > 2.47.0 >
diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst index 21507e3cc238..35f82f2d45f5 100644 --- a/Documentation/PCI/endpoint/pci-endpoint.rst +++ b/Documentation/PCI/endpoint/pci-endpoint.rst @@ -117,6 +117,35 @@ by the PCI endpoint function driver. The PCI endpoint function driver should use pci_epc_mem_free_addr() to free the memory space allocated using pci_epc_mem_alloc_addr(). +* pci_epc_map_addr() + + A PCI endpoint function driver should use pci_epc_map_addr() to map to a RC + PCI address the CPU address of local memory obtained with + pci_epc_mem_alloc_addr(). + +* pci_epc_unmap_addr() + + A PCI endpoint function driver should use pci_epc_unmap_addr() to unmap the + CPU address of local memory mapped to a RC address with pci_epc_map_addr(). + +* pci_epc_mem_map() + + A PCI endpoint controller may impose constraints on the RC PCI addresses that + can be mapped. The function pci_epc_mem_map() allows endpoint function + drivers to allocate and map controller memory while handling such + constraints. This function will determine the size of the memory that must be + allocated with pci_epc_mem_alloc_addr() for successfully mapping a RC PCI + address range. This function will also indicate the size of the PCI address + range that was actually mapped, which can be less than the requested size, as + well as the offset into the allocated memory to use for accessing the mapped + RC PCI address range. + +* pci_epc_mem_unmap() + + A PCI endpoint function driver can use pci_epc_mem_unmap() to unmap and free + controller memory that was allocated and mapped using pci_epc_mem_map(). + + Other EPC APIs ~~~~~~~~~~~~~~