Changeset 95fe5b1 in rtems-libbsd for linux


Ignore:
Timestamp:
Jan 10, 2018, 12:19:01 PM (21 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
c1e05b9ea378b2971e3d7704779112b4bc4296da, 4a77611a223ea883fb548679b516d326a020d447
Children:
a7d252c
Parents:
1342fad
git-author:
Sebastian Huber <sebastian.huber@…> (01/10/18 12:19:01)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/23/18 13:55:18)
Message:

dpaa: Use device tree throughout in BMan init

Update #3277.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • linux/drivers/soc/fsl/qbman/bman_ccsr.c

    r1342fad r95fe5b1  
    313313        int ret;
    314314        int node;
    315         int parent;
    316 
     315
     316        memset(&dn, 0, sizeof(dn));
     317
     318        name = "fsl,bman";
     319        node = fdt_node_offset_by_compatible(fdt, -1, name);
     320        if (node >= 0) {
    317321#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
    318         qoriq_reset_qman_and_bman();
    319         qoriq_clear_ce_portal(&qoriq_bman_portal[0][0],
    320             sizeof(qoriq_bman_portal[0]));
    321         qoriq_clear_ci_portal(&qoriq_bman_portal[1][0],
    322             sizeof(qoriq_bman_portal[1]));
     322                qoriq_reset_qman_and_bman();
     323                qoriq_clear_ce_portal(&qoriq_bman_portal[0][0],
     324                    sizeof(qoriq_bman_portal[0]));
     325                qoriq_clear_ci_portal(&qoriq_bman_portal[1][0],
     326                    sizeof(qoriq_bman_portal[1]));
    323327#endif
    324328
    325         memset(&dn, 0, sizeof(dn));
    326 
    327         name = "fsl,bman";
    328         node = fdt_node_offset_by_compatible(fdt, 0, name);
    329         if (node < 0)
    330                 panic("bman: no bman in FDT");
    331 
     329                dn.full_name = name;
     330                dn.offset = node;
     331                ret = fsl_bman_probe(&ofdev);
     332                if (ret != 0)
     333                        panic("bman: probe failed");
     334        }
     335
     336        name = "fsl,bman-portal";
     337        node = -1;
    332338        dn.full_name = name;
    333         dn.offset = node;
    334         ret = fsl_bman_probe(&ofdev);
    335         if (ret != 0)
    336                 panic("bman: probe failed");
    337 
    338         name = "fsl,bman-portal";
    339         node = fdt_node_offset_by_compatible(fdt, 0, name);
    340         if (node < 0)
    341                 panic("bman: no portals in FDT");
    342         parent = fdt_parent_offset(fdt, node);
    343         if (parent < 0)
    344                 panic("bman: no parent of portals in FDT");
    345         node = fdt_first_subnode(fdt, parent);
    346 
    347         dn.full_name = name;
    348         dn.offset = node;
    349339
    350340        for (cpu = 0; cpu < cpu_count; ++cpu) {
     
    353343                struct resource res;
    354344
     345                node = fdt_node_offset_by_compatible(fdt, node, name);
    355346                if (node < 0)
    356                         panic("bman: missing portal in FDT");
     347                        panic("bman: no affine portal for processor %i", cpu);
     348
     349                dn.offset = node;
    357350
    358351                ret = of_address_to_resource(&dn, 0, &res);
    359352                if (ret != 0)
    360353                        panic("bman: no portal CE address");
    361 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
    362                 pcfg->addr_virt[0] = (__iomem void *)
    363                     ((uintptr_t)&qoriq_bman_portal[0][0] + (uintptr_t)res.start);
     354                pcfg->addr_virt[0] = (__iomem void *)(uintptr_t)res.start;
     355#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) && \
     356    !defined(QORIQ_IS_HYPERVISOR_GUEST)
    364357                BSD_ASSERT((uintptr_t)pcfg->addr_virt[0] >=
    365358                    (uintptr_t)&qoriq_bman_portal[0][0]);
     
    371364                if (ret != 0)
    372365                        panic("bman: no portal CI address");
    373 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
    374                 pcfg->addr_virt[1] = (__iomem void *)
    375                     ((uintptr_t)&qoriq_bman_portal[0][0] + (uintptr_t)res.start);
     366                pcfg->addr_virt[1] = (__iomem void *)(uintptr_t)res.start;
     367#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) && \
     368    !defined(QORIQ_IS_HYPERVISOR_GUEST)
    376369                BSD_ASSERT((uintptr_t)pcfg->addr_virt[1] >=
    377370                    (uintptr_t)&qoriq_bman_portal[1][0]);
     
    391384
    392385                bman_p_irqsource_add(portal, BM_PIRQ_RCRI);
    393 
    394                 node = fdt_next_subnode(fdt, node);
    395                 dn.offset = node;
    396386        }
    397387}
Note: See TracChangeset for help on using the changeset viewer.