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