On Fri, Aug 09, 2019 at 07:57:40PM +0200, [email protected] wrote: > From: Marek Vasut <[email protected]> > > In case the "dma-ranges" DT property contains either too many ranges > or the range start address is unaligned in such a way that populating > the range into the controller requires multiple entries, a situation > may occur where all ranges cannot be loaded into the controller. > > Currently, the driver refuses to probe in such a situation. Relax this > behavior, load as many ranges as possible and warn if some ranges do > not fit anymore.
What is the motivation for relaxing this? > Signed-off-by: Marek Vasut <[email protected]> > Cc: Geert Uytterhoeven <[email protected]> > Cc: Lorenzo Pieralisi <[email protected]> > Cc: Wolfram Sang <[email protected]> > Cc: [email protected] > To: [email protected] > --- > V2: Update on top of 1/3 > V3: No change > --- > drivers/pci/controller/pcie-rcar.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/controller/pcie-rcar.c > b/drivers/pci/controller/pcie-rcar.c > index 56a6433eb70b..e2735005ffd3 100644 > --- a/drivers/pci/controller/pcie-rcar.c > +++ b/drivers/pci/controller/pcie-rcar.c > @@ -1049,8 +1049,9 @@ static int rcar_pcie_inbound_ranges(struct rcar_pcie > *pcie, > > while (cpu_addr < cpu_end) { > if (idx >= MAX_NR_INBOUND_MAPS - 1) { > - dev_err(pcie->dev, "Failed to map inbound regions!\n"); > - return -EINVAL; > + dev_warn(pcie->dev, > + "Too many inbound regions, not all are > mapped.\n"); > + break; > } > /* > * Set up 64-bit inbound regions as the range parser doesn't > -- > 2.20.1 >
