Re: [PATCH v7 4/8] PCI: endpoint: Add support to handle multiple base for mapping outbound memory

From: Bjorn Helgaas
Date: Wed Apr 08 2020 - 19:46:54 EST


On Wed, Apr 08, 2020 at 04:37:56PM +0100, Lad Prabhakar wrote:
> R-Car PCIe controller has support to map multiple memory regions for
> mapping the outbound memory in local system also the controller limits
> single allocation for each region (that is, once a chunk is used from the
> region it cannot be used to allocate a new one). This features inspires to
> add support for handling multiple memory bases in endpoint framework.
>
> With this patch pci_epc_mem_init() initializes address space for endpoint
> controller which support single window and whereas __pci_epc_mem_init()
> now accepts pointer to multiple windows supported by endpoint controller.

Adding a double underscore prefix usually indicates an internal
function that skips some checking.

It doesn't seem like quite the right thing for this external interface
that adds functionality. Maybe the name could include something like
"multi"?

> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>

This needs an ack from Kishon, of course.

This patch seems like it does several things that could possibly be
split into separate patches?

- Change pci_epc_mem_init() interface to add page_size argument (the
only one that touches cadence & rockchip; it would be nice if this
were a tiny patch)

- Add struct pci_epc_mem_window

- Add a pci_epc_multi_mem_init() or similar, implement
pci_epc_mem_init() in terms of it (as you already do)

Bjorn