Message ID | 1398265476-29373-6-git-send-email-maxime.ripard@free-electrons.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wednesday 23 April 2014 17:04:36 Maxime Ripard wrote: > > -static void __init sunxi_dt_init(void) > -{ > - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > -} > - > -static const char * const sunxi_board_dt_compat[] = { > - "allwinner,sun4i-a10", > - "allwinner,sun5i-a10s", > - "allwinner,sun5i-a13", > - NULL, > -}; > - > -DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") > - .init_machine = sunxi_dt_init, > - .dt_compat = sunxi_board_dt_compat, > -MACHINE_END > - > static const char * const sun6i_board_dt_compat[] = { > "allwinner,sun6i-a31", > NULL, I'd like to hear more opinions on this. We could either rely on the generic code, or we could keep the entry with just the .dt_compat line and the name, so /proc/cpuinfo contains a meaningful platform name. Either approach works for me, but I think we should do this consistent across platforms. Olof, do you have an opinion? Arnd
On Wed, Apr 23, 2014 at 06:02:51PM +0200, Arnd Bergmann wrote: > On Wednesday 23 April 2014 17:04:36 Maxime Ripard wrote: > > > > -static void __init sunxi_dt_init(void) > > -{ > > - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > > -} > > - > > -static const char * const sunxi_board_dt_compat[] = { > > - "allwinner,sun4i-a10", > > - "allwinner,sun5i-a10s", > > - "allwinner,sun5i-a13", > > - NULL, > > -}; > > - > > -DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") > > - .init_machine = sunxi_dt_init, > > - .dt_compat = sunxi_board_dt_compat, > > -MACHINE_END > > - > > static const char * const sun6i_board_dt_compat[] = { > > "allwinner,sun6i-a31", > > NULL, > > I'd like to hear more opinions on this. We could either rely > on the generic code, or we could keep the entry with just > the .dt_compat line and the name, so /proc/cpuinfo contains > a meaningful platform name. Ah! I haven't thought of /proc/cpuinfo. I agree that having something meaningful in there would be much better. I'll respin the patch if Olof agrees. Thanks! Maxime
On Wed, Apr 23, 2014 at 9:02 AM, Arnd Bergmann <arnd@arndb.de> wrote: > On Wednesday 23 April 2014 17:04:36 Maxime Ripard wrote: >> >> -static void __init sunxi_dt_init(void) >> -{ >> - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); >> -} >> - >> -static const char * const sunxi_board_dt_compat[] = { >> - "allwinner,sun4i-a10", >> - "allwinner,sun5i-a10s", >> - "allwinner,sun5i-a13", >> - NULL, >> -}; >> - >> -DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") >> - .init_machine = sunxi_dt_init, >> - .dt_compat = sunxi_board_dt_compat, >> -MACHINE_END >> - >> static const char * const sun6i_board_dt_compat[] = { >> "allwinner,sun6i-a31", >> NULL, > > I'd like to hear more opinions on this. We could either rely > on the generic code, or we could keep the entry with just > the .dt_compat line and the name, so /proc/cpuinfo contains > a meaningful platform name. > > Either approach works for me, but I think we should do this > consistent across platforms. Olof, do you have an opinion? In reality, today, most platforms still need some out-of-tree stuff that usually goes into the mach directory on out of tree kernels. It also gives a place to stick the Kconfig entries, it's been nice to have them split out in per-platform Kconfigs instead of having them all modify and conflict the shared one. I know those aren't strong arguments to keep it, but given that all other things are more or less equal, it's a good a reason as any. But, I'm not picky either way. -Olof
Hi, On Mon, Apr 28, 2014 at 06:08:53PM -0700, Olof Johansson wrote: > On Wed, Apr 23, 2014 at 9:02 AM, Arnd Bergmann <arnd@arndb.de> wrote: > > On Wednesday 23 April 2014 17:04:36 Maxime Ripard wrote: > >> > >> -static void __init sunxi_dt_init(void) > >> -{ > >> - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > >> -} > >> - > >> -static const char * const sunxi_board_dt_compat[] = { > >> - "allwinner,sun4i-a10", > >> - "allwinner,sun5i-a10s", > >> - "allwinner,sun5i-a13", > >> - NULL, > >> -}; > >> - > >> -DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") > >> - .init_machine = sunxi_dt_init, > >> - .dt_compat = sunxi_board_dt_compat, > >> -MACHINE_END > >> - > >> static const char * const sun6i_board_dt_compat[] = { > >> "allwinner,sun6i-a31", > >> NULL, > > > > I'd like to hear more opinions on this. We could either rely > > on the generic code, or we could keep the entry with just > > the .dt_compat line and the name, so /proc/cpuinfo contains > > a meaningful platform name. > > > > Either approach works for me, but I think we should do this > > consistent across platforms. Olof, do you have an opinion? > > In reality, today, most platforms still need some out-of-tree stuff > that usually goes into the mach directory on out of tree kernels. It > also gives a place to stick the Kconfig entries, it's been nice to > have them split out in per-platform Kconfigs instead of having them > all modify and conflict the shared one. > > I know those aren't strong arguments to keep it, but given that all > other things are more or less equal, it's a good a reason as any. I guess the /proc/cpuinfo thing just tip the scales to keeping the minimal machines. I'll update the patches. Maxime
diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 1c62a0a021d7..205cd75f63f5 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c @@ -12,29 +12,11 @@ #include <linux/clk-provider.h> #include <linux/clocksource.h> -#include <linux/of_platform.h> #include <asm/mach/arch.h> #include "common.h" -static void __init sunxi_dt_init(void) -{ - of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); -} - -static const char * const sunxi_board_dt_compat[] = { - "allwinner,sun4i-a10", - "allwinner,sun5i-a10s", - "allwinner,sun5i-a13", - NULL, -}; - -DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)") - .init_machine = sunxi_dt_init, - .dt_compat = sunxi_board_dt_compat, -MACHINE_END - static const char * const sun6i_board_dt_compat[] = { "allwinner,sun6i-a31", NULL, @@ -49,18 +31,7 @@ static void __init sun6i_timer_init(void) } DT_MACHINE_START(SUN6I_DT, "Allwinner sun6i (A31) Family") - .init_machine = sunxi_dt_init, .init_time = sun6i_timer_init, .dt_compat = sun6i_board_dt_compat, .smp = smp_ops(sun6i_smp_ops), MACHINE_END - -static const char * const sun7i_board_dt_compat[] = { - "allwinner,sun7i-a20", - NULL, -}; - -DT_MACHINE_START(SUN7I_DT, "Allwinner sun7i (A20) Family") - .init_machine = sunxi_dt_init, - .dt_compat = sun7i_board_dt_compat, -MACHINE_END
The sun4i and sun7i machines are nothing more than a generic machine now, we can completely remove them. Only stays the sun6i machine, that needs to have its reset controller enabled before the timers. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> --- arch/arm/mach-sunxi/sunxi.c | 29 ----------------------------- 1 file changed, 29 deletions(-)