Re: [PATCH v4 5/5] clk: dt: binding for basic gate clock

From: Tomasz Figa
Date: Sat Sep 07 2013 - 07:57:09 EST


Hi Tony,

On Wednesday 04 of September 2013 10:59:09 Tony Lindgren wrote:
> * Haojian Zhuang <haojian.zhuang@xxxxxxxxxx> [130903 20:11]:
> > We can see that it'll try to find static mapping. What's the static
> > mapping? If we define iotable in machine driver, we have the static
> > mapping, just like debug_ll. If we parse everything from DTS file,
> > it'll always get a new virtual address from vm area. So it always
> > create a new page mapping even for one register.
>
> I may not follow you here.. But it seems that you've missing something
> with the static mapping: It's found based on the physical address. So
> if you create static mappings for your SoC with iotable_init(), those
> mappings will be available everywhere including drivers when you do
> ioremap().

The thing is that today we are moving in favour of fully dynamic mapping,
based on data from device tree, with as little as possible (or even no)
static mapping based on hardcoded values.

So, back to the original problem, we end up doing multiple dynamic
mappings of the same physical page, because there is no refcounting in
ioremap and, if it doesn't find a static mapping containing the region
we're interested in, it simply creates a new mapping.

Best regards,
Tomasz

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/