lkml.org 
[lkml]   [2012]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 54/75] powerpc/85xx: dont call of_platform_bus_probe() twice
    3.3-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Timur Tabi <timur@freescale.com>

    commit 8a95bc8dfe06982fc2b8a0a2adda7baa2346a17b upstream.

    Commit 46d026ac ("powerpc/85xx: consolidate of_platform_bus_probe calls")
    replaced platform-specific of_device_id tables with a single function
    that probes the most of the busses in 85xx device trees. If a specific
    platform needed additional busses probed, then it could call
    of_platform_bus_probe() again. Typically, the additional platform-specific
    busses are children of existing busses that have already been probed.
    of_platform_bus_probe() does not handle those child busses automatically.

    Unfortunately, this doesn't actually work. The second (platform-specific)
    call to of_platform_bus_probe() never finds any of the busses it's asked
    to find.

    To remedy this, the platform-specific of_device_id tables are eliminated,
    and their entries are merged into mpc85xx_common_ids[], so that all busses
    are probed at once.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/platforms/85xx/common.c | 6 ++++++
    arch/powerpc/platforms/85xx/mpc85xx_mds.c | 11 +----------
    arch/powerpc/platforms/85xx/p1022_ds.c | 13 +------------
    3 files changed, 8 insertions(+), 22 deletions(-)

    --- a/arch/powerpc/platforms/85xx/common.c
    +++ b/arch/powerpc/platforms/85xx/common.c
    @@ -21,6 +21,12 @@ static struct of_device_id __initdata mp
    { .compatible = "fsl,qe", },
    { .compatible = "fsl,cpm2", },
    { .compatible = "fsl,srio", },
    + /* So that the DMA channel nodes can be probed individually: */
    + { .compatible = "fsl,eloplus-dma", },
    + /* For the PMC driver */
    + { .compatible = "fsl,mpc8548-guts", },
    + /* Probably unnecessary? */
    + { .compatible = "gpio-leds", },
    {},
    };

    --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
    +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
    @@ -405,12 +405,6 @@ static int __init board_fixups(void)
    machine_arch_initcall(mpc8568_mds, board_fixups);
    machine_arch_initcall(mpc8569_mds, board_fixups);

    -static struct of_device_id mpc85xx_ids[] = {
    - { .compatible = "fsl,mpc8548-guts", },
    - { .compatible = "gpio-leds", },
    - {},
    -};
    -
    static int __init mpc85xx_publish_devices(void)
    {
    if (machine_is(mpc8568_mds))
    @@ -418,10 +412,7 @@ static int __init mpc85xx_publish_device
    if (machine_is(mpc8569_mds))
    simple_gpiochip_init("fsl,mpc8569mds-bcsr-gpio");

    - mpc85xx_common_publish_devices();
    - of_platform_bus_probe(NULL, mpc85xx_ids, NULL);
    -
    - return 0;
    + return mpc85xx_common_publish_devices();
    }

    machine_device_initcall(mpc8568_mds, mpc85xx_publish_devices);
    --- a/arch/powerpc/platforms/85xx/p1022_ds.c
    +++ b/arch/powerpc/platforms/85xx/p1022_ds.c
    @@ -303,18 +303,7 @@ static void __init p1022_ds_setup_arch(v
    pr_info("Freescale P1022 DS reference board\n");
    }

    -static struct of_device_id __initdata p1022_ds_ids[] = {
    - /* So that the DMA channel nodes can be probed individually: */
    - { .compatible = "fsl,eloplus-dma", },
    - {},
    -};
    -
    -static int __init p1022_ds_publish_devices(void)
    -{
    - mpc85xx_common_publish_devices();
    - return of_platform_bus_probe(NULL, p1022_ds_ids, NULL);
    -}
    -machine_device_initcall(p1022_ds, p1022_ds_publish_devices);
    +machine_device_initcall(p1022_ds, mpc85xx_common_publish_devices);

    machine_arch_initcall(p1022_ds, swiotlb_setup_bus_notifier);




    \
     
     \ /
      Last update: 2012-05-04 23:21    [W:0.032 / U:28.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site