On Fri, Jan 24, 2014 at 12:08:15PM +0000, Mark Rutland wrote:On Fri, Jan 24, 2014 at 12:20:46AM +0000, Hanjun Guo wrote:I fully agree (IOW, I'll NAK patches that break this assumption; we wantOn 2014å01æ22æ 19:45, Mark Rutland wrote:ACPI and DT do similar jobs, and we should be mutually exclusive atOn Wed, Jan 22, 2014 at 08:26:50AM +0000, Linus Walleij wrote:ACPI and DT did the same job so I think they should mutually exclusive.On Fri, Jan 17, 2014 at 1:25 PM, Hanjun Guo <hanjun.guo@xxxxxxxxxx> wrote:How does it do that?
From: Amit Daniel Kachhap <amit.daniel@xxxxxxxxxxx>Actually I have a fat patch renaming CLOCKSOURCE_OF_DECLARE()
This macro does the same job as CLOCKSOURCE_OF_DECLARE. The device
name from the ACPI timer table is matched with all the registered
timer controllers and matching initialisation routine is invoked.
Signed-off-by: Amit Daniel Kachhap <amit.daniel@xxxxxxxxxxx>
Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
to TIMER_OF_DECLARE() and I think this macro, if needed, should
be named TIMER_ACPI_DECLARE().
The reason is that "clocksource" is a Linux-internal name and this
macro pertains to the hardware name in respective system
description type.
+#ifdef CONFIG_ACPIThis hammers down the world to compile one binary for ACPI
+#define CLOCKSOURCE_ACPI_DECLARE(name, compat, fn) \
+ static const struct acpi_device_id __clksrc_acpi_table_##name \
+ __used __section(__clksrc_acpi_table) \
+ = { .id = compat, \
+ .driver_data = (kernel_ulong_t)fn }
+#else
+#define CLOCKSOURCE_ACPI_DECLARE(name, compat, fn)
+#endif
and one binary for device tree. Maybe that's fine, I don't know.
As far as I could tell CONFIG_ACPI and CONFIG_OF are not mutually
exclusive, and this just means that we only build the datastructures for
matching from ACPI when CONFIG_ACPI is enabled.
Have I missed something?
I definitely don't want to see mutually exclusive ACPI and DT support.
if we enable both DT and ACPI in one system, this will leading confusions.
runtime. However, they should not be mutually exclusive at compile-time.
Being mutually exclusive at compile-time is just broken. It creates more
work for distributions (who need to ship double the number of kernels),
it increases the number of configurations requiring testing, and it
makes it easier for bugs to be introduced. It's just painful, and
there's no reason for it.
single kernel image whether it uses DT or ACPI).
At boot time the kernel needs to decide which to use for hardwareDo we still need the chosen node to be passed via DT for command line,
description, and completely ignore the other (which should not be
present, but lets not assume that or inevitably someone will break that
assumption for a quick hack).
The same kernel should boot on a system that has a DTB or a system that
has ACPI tables. On a system that's provided both it should use one or
the other, but not both.
even if the kernel uses ACPI?