Changeset e4923c8 in rtems-libbsd


Ignore:
Timestamp:
01/17/18 13:30:44 (5 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
5, 5-freebsd-12, 6-freebsd-12, master
Children:
cfc149b
Parents:
0f1d2f6
git-author:
Sebastian Huber <sebastian.huber@…> (01/17/18 13:30:44)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/23/18 13:54:59)
Message:

linux/of_address.h: of_address_to_resource()

Translate address in of_address_to_resource().

Update #3277.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • linux/drivers/net/ethernet/freescale/fman/fman.c

    r0f1d2f6 re4923c8  
    27892789        const char *fdt = bsp_fdt_get();
    27902790        struct device_node *fm_node;
     2791        struct device_node muram_node_storage;
     2792        struct device_node *muram_node;
    27912793#endif /* __rtems__ */
    27922794        u32 val, range[2];
     
    28922894                goto fman_node_put;
    28932895        }
     2896#else /* __rtems__ */
     2897        memset(&muram_node_storage, 0, sizeof(muram_node_storage));
     2898        muram_node = &muram_node_storage;
     2899        muram_node->offset = fdt_node_offset_by_compatible(fdt,
     2900            fm_node->offset, "fsl,fman-muram");
     2901#endif /* __rtems__ */
    28942902
    28952903        err = of_address_to_resource(muram_node, 0,
     
    29012909                goto fman_node_put;
    29022910        }
    2903 #else /* __rtems__ */
    2904         {
    2905                 int node = fdt_node_offset_by_compatible(fdt,
    2906                     fm_node->offset, "fsl,fman-muram");
    2907                 struct device_node muram_node = {
    2908                         .offset = node
    2909                 };
    2910                 struct resource res;
    2911 
    2912                 err = of_address_to_resource(&muram_node, 0, &res);
    2913                 if (err != 0) {
    2914                         pr_err("could not find MURAM node\n");
    2915                         goto fman_node_put;
    2916                 }
    2917                 fman->dts_params.muram_res.start = phys_base_addr + res.start;
    2918                 fman->dts_params.muram_res.end = phys_base_addr + res.end - 1;
    2919         }
    2920 #endif /* __rtems__ */
    2921 #ifndef __rtems__
    29222911        of_node_put(muram_node);
    2923 #endif /* __rtems__ */
    29242912
    29252913        err = devm_request_irq(&of_dev->dev, irq, fman_irq, 0, "fman", fman);
  • linux/drivers/soc/fsl/qbman/qman_ccsr.c

    r0f1d2f6 re4923c8  
    873873        memset(&dev, 0, sizeof(dev));
    874874        dev.pdev.dev.of_node = &dev.of_node;
    875 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
    876         dev.pdev.dev.base = (uintptr_t)&qoriq;
    877 #endif
    878875        dev.of_node.offset = node;
    879876        dev.of_node.full_name = name;
  • rtemsbsd/powerpc/include/linux/device.h

    r0f1d2f6 re4923c8  
    8080{
    8181
    82         return (void __iomem *)(dev->base + (uintptr_t)offset);
     82        return (void __iomem *)(uintptr_t)offset;
    8383}
    8484
  • rtemsbsd/sys/powerpc/compat.c

    r0f1d2f6 re4923c8  
    330330{
    331331        const void *fdt = bsp_fdt_get();
     332        int node;
    332333        int ac;
    333334        int sc;
     
    337338
    338339        memset(res, 0, sizeof(*res));
    339 
    340         ac = get_address_cells(fdt, dn->offset);
     340        node = dn->offset;
     341
     342        ac = get_address_cells(fdt, node);
    341343        if (ac < 0)
    342344                return (-EINVAL);
    343345
    344         sc = get_size_cells(fdt, dn->offset);
     346        sc = get_size_cells(fdt, node);
    345347        if (sc < 0)
    346348                return (-EINVAL);
    347349
    348         p = fdt_getprop(fdt, dn->offset, "reg", &len);
     350        p = fdt_getprop(fdt, node, "reg", &len);
    349351        if (p == NULL)
    350352                return (-EINVAL);
     
    355357                return (-EINVAL);
    356358
    357         while (ac > 0) {
    358                 res->start = (res->start << 32) | fdt32_to_cpu(p[i]);
    359                 ++i;
    360                 --ac;
    361         }
    362 
    363         while (sc > 0) {
    364                 res->end = (res->end << 32) | fdt32_to_cpu(p[i]);
    365                 ++i;
    366                 --sc;
    367         }
     359        res->start = translate_address(fdt, node, ac, sc, &p[i]);
     360        res->end = of_read_number(&p[i + ac], sc);
    368361        res->end += res->start;
    369 
    370362        return (0);
    371363}
Note: See TracChangeset for help on using the changeset viewer.