On Tue, Nov 14, 2017 at 05:12:05PM -0500, Jim Quinlan wrote: > From: Florian Fainelli <f.fainelli@xxxxxxxxx> > > This commit adds a memory API suitable for ascertaining the sizes of > each of the N memory controllers in a Broadcom STB chip. Its first > user will be the Broadcom STB PCIe root complex driver, which needs > to know these sizes to properly set up DMA mappings for inbound > regions. > > We cannot use memblock here or anything like what Linux provides > because it collapses adjacent regions within a larger block, and here > we actually need per-memory controller addresses and sizes, which is > why we resort to manual DT parsing. > > Signed-off-by: Jim Quinlan <jim2101024@xxxxxxxxx> > --- > drivers/soc/bcm/brcmstb/Makefile | 2 +- > drivers/soc/bcm/brcmstb/memory.c | 172 +++++++++++++++++++++++++++++++++++++++ > include/soc/brcmstb/memory_api.h | 25 ++++++ > 3 files changed, 198 insertions(+), 1 deletion(-) > create mode 100644 drivers/soc/bcm/brcmstb/memory.c > create mode 100644 include/soc/brcmstb/memory_api.h > > diff --git a/drivers/soc/bcm/brcmstb/Makefile b/drivers/soc/bcm/brcmstb/Makefile > index 9120b27..4cea7b6 100644 > --- a/drivers/soc/bcm/brcmstb/Makefile > +++ b/drivers/soc/bcm/brcmstb/Makefile > @@ -1 +1 @@ > -obj-y += common.o biuctrl.o > +obj-y += common.o biuctrl.o memory.o > diff --git a/drivers/soc/bcm/brcmstb/memory.c b/drivers/soc/bcm/brcmstb/memory.c > new file mode 100644 > index 0000000..eb647ad9 > --- /dev/null > +++ b/drivers/soc/bcm/brcmstb/memory.c I sort of assume based on [1] that every new file should have an SPDX identifier ("The Linux kernel requires the precise SPDX identifier in all source files") and that the actual text of the GPL can be omitted. Only a few files in drivers/pci currently have an SPDX identifier. I don't know if that's oversight or work-in-progress or what. [1] https://lkml.kernel.org/r/20171204212120.484179273@xxxxxxxxxxxxx > @@ -0,0 +1,172 @@ > +/* > + * Copyright © 2015-2017 Broadcom > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * A copy of the GPL is available at > + * http://www.broadcom.com/licenses/GPLv2.php or from the Free Software > + * Foundation at https://www.gnu.org/licenses/ .