Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752565AbaAXMdE (ORCPT ); Fri, 24 Jan 2014 07:33:04 -0500 Received: from cam-admin0.cambridge.arm.com ([217.140.96.50]:44929 "EHLO cam-admin0.cambridge.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751185AbaAXMdB (ORCPT ); Fri, 24 Jan 2014 07:33:01 -0500 Date: Fri, 24 Jan 2014 12:32:59 +0000 From: Mark Rutland To: Hanjun Guo Cc: Linus Walleij , "Rafael J. Wysocki" , Catalin Marinas , Will Deacon , Russell King - ARM Linux , ACPI Devel Maling List , "linux-arm-kernel@lists.infradead.org" , "grant.likely@linaro.org" , Matthew Garrett , Olof Johansson , Bjorn Helgaas , Rob Herring , Arnd Bergmann , Patch Tracking , "linux-kernel@vger.kernel.org" , linaro-kernel , "linaro-acpi@lists.linaro.org" , Charles Garcia-Tobin , Amit Daniel Kachhap Subject: Re: [PATCH 18/20] clocksource / acpi: Add macro CLOCKSOURCE_ACPI_DECLARE Message-ID: <20140124123259.GI814@e106331-lin.cambridge.arm.com> References: <1389961514-13562-1-git-send-email-hanjun.guo@linaro.org> <1389961514-13562-19-git-send-email-hanjun.guo@linaro.org> <52E1AFE8.40601@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <52E1AFE8.40601@linaro.org> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 24, 2014 at 12:12:24AM +0000, Hanjun Guo wrote: > Hi Linus, > > Sorry for the late reply. > > On 2014年01月22日 16:26, Linus Walleij wrote: > > On Fri, Jan 17, 2014 at 1:25 PM, Hanjun Guo wrote: > > > >> From: Amit Daniel Kachhap > >> > >> 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 > >> Signed-off-by: Hanjun Guo > > Actually I have a fat patch renaming CLOCKSOURCE_OF_DECLARE() > > 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. > > That make sense to me too, I will update in next version if > this patch is still needed. > > > > >> +#ifdef CONFIG_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 > > This hammers down the world to compile one binary for ACPI > > and one binary for device tree. Maybe that's fine, I don't know. > > This is a problem we can have some discussion on it. > I prefer mutually exclusive ACPI and DT support. A lot of work has been put into making a single kernel boot everywhere. It's forced duplicated code to be factored out, and it's made the kernel more flexible. While it has been painful, it's forced a far higher quality standard across the board(s). Having a separate ACPI-capable or DT-capable kernels goes completely against that, and it's completely broken: * It doubles the testing effort required for a particular kernel. I can guarantee that we will miss bugs (even amazingly bad build bugs) because no-one will be able to test a full suite of kernels. * It introduces the possibility of completely pointles arbitrary differences between the two. How long until we see the first bug-fix that only works in one configuration? * It creates additional work for distributions, which need to build more kernels test them, distribute them, and document which platforms which kernels are supported on. This creates more pain for end-users too. Eventually we _will_ get fed up with all of those, and we'll have to do painful invasive work to make the kernel decide at runtime. Having separate kernels is a lazy shortcut. It's painful for everyone, leads to a greater maintenance overhead, it's not what we want now and not what we want in future. No thanks. Either the kernel figures out whether or not to deal with ACPI at runtime, or it doesn't deal with it at all. Thanks, Mark. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/