On Tue, Jun 18, 2013 at 08:25:31AM -0300, Ezequiel Garcia wrote:
> Now that mbus device tree binding has been introduced, remove the address
> decoding window management from this driver.
> A suitable 'ranges' entry should be added to the devbus-compatible node in
> the device tree, as described by the mbus binding documentation.
> 
> Signed-off-by: Ezequiel Garcia <ezequiel.gar...@free-electrons.com>
> ---
>  drivers/memory/mvebu-devbus.c | 64 
> ++-----------------------------------------
>  1 file changed, 2 insertions(+), 62 deletions(-)

Unfortunately, the patch adding mvebu-devbus is going through gregkh's
tree.  Either this patch needs to wait for v3.12, or ask Greg if he can
take this one.

thx,

Jason.

> 
> diff --git a/drivers/memory/mvebu-devbus.c b/drivers/memory/mvebu-devbus.c
> index 978e8e3..94c9248 100644
> --- a/drivers/memory/mvebu-devbus.c
> +++ b/drivers/memory/mvebu-devbus.c
> @@ -208,16 +208,11 @@ static int mvebu_devbus_probe(struct platform_device 
> *pdev)
>  {
>       struct device *dev = &pdev->dev;
>       struct device_node *node = pdev->dev.of_node;
> -     struct device_node *parent;
>       struct devbus *devbus;
>       struct resource *res;
>       struct clk *clk;
>       unsigned long rate;
> -     const __be32 *ranges;
> -     int err, cs;
> -     int addr_cells, p_addr_cells, size_cells;
> -     int ranges_len, tuple_len;
> -     u32 base, size;
> +     int err;
>  
>       devbus = devm_kzalloc(&pdev->dev, sizeof(struct devbus), GFP_KERNEL);
>       if (!devbus)
> @@ -248,68 +243,13 @@ static int mvebu_devbus_probe(struct platform_device 
> *pdev)
>               return err;
>  
>       /*
> -      * Allocate an address window for this device.
> -      * If the device probing fails, then we won't be able to
> -      * remove the allocated address decoding window.
> -      *
> -      * FIXME: This is only a temporary hack! We need to do this here
> -      * because we still don't have device tree bindings for mbus.
> -      * Once that support is added, we will declare these address windows
> -      * statically in the device tree, and remove the window configuration
> -      * from here.
> -      */
> -
> -     /*
> -      * Get the CS to choose the window string.
> -      * This is a bit hacky, but it will be removed once the
> -      * address windows are declared in the device tree.
> -      */
> -     cs = (((unsigned long)devbus->base) % 0x400) / 8;
> -
> -     /*
> -      * Parse 'ranges' property to obtain a (base,size) window tuple.
> -      * This will be removed once the address windows
> -      * are declared in the device tree.
> -      */
> -     parent = of_get_parent(node);
> -     if (!parent)
> -             return -EINVAL;
> -
> -     p_addr_cells = of_n_addr_cells(parent);
> -     of_node_put(parent);
> -
> -     addr_cells = of_n_addr_cells(node);
> -     size_cells = of_n_size_cells(node);
> -     tuple_len = (p_addr_cells + addr_cells + size_cells) * sizeof(__be32);
> -
> -     ranges = of_get_property(node, "ranges", &ranges_len);
> -     if (ranges == NULL || ranges_len != tuple_len)
> -             return -EINVAL;
> -
> -     base = of_translate_address(node, ranges + addr_cells);
> -     if (base == OF_BAD_ADDR)
> -             return -EINVAL;
> -     size = of_read_number(ranges + addr_cells + p_addr_cells, size_cells);
> -
> -     /*
> -      * Create an mbus address windows.
> -      * FIXME: Remove this, together with the above code, once the
> -      * address windows are declared in the device tree.
> -      */
> -     err = mvebu_mbus_add_window(devbus_wins[cs], base, size);
> -     if (err < 0)
> -             return err;
> -
> -     /*
>        * We need to create a child device explicitly from here to
>        * guarantee that the child will be probed after the timing
>        * parameters for the bus are written.
>        */
>       err = of_platform_populate(node, NULL, NULL, dev);
> -     if (err < 0) {
> -             mvebu_mbus_del_window(base, size);
> +     if (err < 0)
>               return err;
> -     }
>  
>       return 0;
>  }
> -- 
> 1.8.1.5
> 
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to