[GIT PULL] ux500 patches for v3.4
Linus Walleij
linus.walleij at linaro.org
Fri Feb 24 01:51:02 EST 2012
On Tue, Feb 21, 2012 at 6:00 PM, Arnd Bergmann <arnd at arndb.de> wrote:
> Most of the patches look ok, but since this about a new SoC,
> I decided to take a much closer look and found a few issues that
> I think you can still fix:
Actually it's a sibling to U8500 more than a completely new one, an
incremental step.
> * The handling of the DB9540_ROM adds a number of special cases,
> but in the end it looks like this is not used anywhere, so I'd
> recomment just removing it. If you get something that needs the
> ROM to be mapped, just make that use ioremap.
It is used to read out the ASIC ID, like this:
+static unsigned int u9540_read_asicid(phys_addr_t addr)
+{
+ phys_addr_t base = addr & ~0xfff;
+ struct map_desc desc = {
+ .virtual = IO_ADDRESS_DB9540_ROM(base),
+ .pfn = __phys_to_pfn(base),
+ .length = SZ_16K,
+ .type = MT_DEVICE,
+ };
+
+ iotable_init(&desc, 1);
+
+ /* As in devicemaps_init() */
+ local_flush_tlb_all();
+ flush_cache_all();
+
+ return readl(__io_address_db9540_rom(addr));
+}
Notice that ioremap() cannot be used here since it is used at
arch init time (as was discussed a while back with Nicolas
I think). Most platforms need to use an approach like this
to get chip ID:s at early init time.
The read-out ASIC ID is then used for the cpu_is_u9540() function
which is then used for the cpu_is_u8500_family() to ensure that
the same codepath is used for the entire family.
So if I remove this part the support patch is moot.
> * You add a new irqs-db9540.h file, but the macros defined in there
> are not actually used. Better not add that file then, especially
> since the interrupt definitions will soon all move into device
> tree for ux500.
OK that's true, I've deleted it and will respin a v2 without
the IRQ file, then iterate the pull request.
> * I assume that we will need to add a few changes to make this
> actually work together with Lee's series.
It actually works just fine. I just merged this patchset into
next-20120224, compiled and booted, it JustWorks(TM) because the
changes are strangely enough orthogonal.
> I would suggest that
> I put your series into the next/soc branch and merge it into
> the next/soc2 branch as well, which already has his patches.
> Then you can add a patch on top that adds the necessary changes,
> if any.
Hm, not quite following but I think it will just work :-)
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list