[PATCH] powerpc: populate the default bus with machine_arch_initcall

Michael Ellerman mpe at ellerman.id.au
Fri Aug 12 14:39:32 AEST 2016


Kevin Hao <haokexin at gmail.com> writes:

> With the commit 44a7185c2ae6 ("of/platform: Add common method to
> populate default bus"), a default function is introduced to populate
> the default bus and this function is invoked at the arch_initcall_sync
> level. This will override the arch specific population of default bus
> which run at a lower level than arch_initcall_sync. Since not all
> powerpc specific buses are added to the of_default_bus_match_table[],
> this causes some powerpc specific bus are not probed. Fix this by
> using a more preceding initcall.
>
> Signed-off-by: Kevin Hao <haokexin at gmail.com>
> ---
> Of course we can adjust the powerpc arch codes to use the
> of_platform_default_populate_init(), but it has high risk to break
> other boards given the complicated powerpc specific buses. So I would
> like just to fix the broken boards in the current release, and cook 
> a patch to change to of_platform_default_populate_init() for linux-next.
>
> Only boot test on a mpc8315erdb board.
>
>  arch/powerpc/platforms/40x/ep405.c               | 2 +-
>  arch/powerpc/platforms/40x/ppc40x_simple.c       | 2 +-
>  arch/powerpc/platforms/40x/virtex.c              | 2 +-
>  arch/powerpc/platforms/40x/walnut.c              | 2 +-
>  arch/powerpc/platforms/44x/canyonlands.c         | 2 +-
>  arch/powerpc/platforms/44x/ebony.c               | 2 +-
>  arch/powerpc/platforms/44x/iss4xx.c              | 2 +-
>  arch/powerpc/platforms/44x/ppc44x_simple.c       | 2 +-
>  arch/powerpc/platforms/44x/ppc476.c              | 2 +-
>  arch/powerpc/platforms/44x/sam440ep.c            | 2 +-
>  arch/powerpc/platforms/44x/virtex.c              | 2 +-
>  arch/powerpc/platforms/44x/warp.c                | 2 +-
>  arch/powerpc/platforms/82xx/ep8248e.c            | 2 +-
>  arch/powerpc/platforms/82xx/km82xx.c             | 2 +-
>  arch/powerpc/platforms/82xx/mpc8272_ads.c        | 2 +-
>  arch/powerpc/platforms/82xx/pq2fads.c            | 2 +-
>  arch/powerpc/platforms/83xx/mpc831x_rdb.c        | 2 +-
>  arch/powerpc/platforms/83xx/mpc834x_itx.c        | 2 +-
>  arch/powerpc/platforms/85xx/ppa8548.c            | 2 +-
>  arch/powerpc/platforms/8xx/adder875.c            | 2 +-
>  arch/powerpc/platforms/8xx/ep88xc.c              | 2 +-
>  arch/powerpc/platforms/8xx/mpc86xads_setup.c     | 2 +-
>  arch/powerpc/platforms/8xx/mpc885ads_setup.c     | 2 +-
>  arch/powerpc/platforms/8xx/tqm8xx_setup.c        | 2 +-
>  arch/powerpc/platforms/cell/setup.c              | 2 +-
>  arch/powerpc/platforms/embedded6xx/gamecube.c    | 2 +-
>  arch/powerpc/platforms/embedded6xx/linkstation.c | 2 +-
>  arch/powerpc/platforms/embedded6xx/mvme5100.c    | 2 +-
>  arch/powerpc/platforms/embedded6xx/storcenter.c  | 2 +-
>  arch/powerpc/platforms/embedded6xx/wii.c         | 2 +-
>  arch/powerpc/platforms/pasemi/setup.c            | 2 +-

That's not a very minimal fix.

Every one of those initcall changes could be introducing a bug, by
changing the order vs other init calls.

Can we just go back to the old behaviour on ppc?

cheers


More information about the Linuxppc-dev mailing list