Changes in kernel/genarch/src/ofw/ebus.c [63e27ef:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/ofw/ebus.c
r63e27ef ra35b458 55 55 if (!prop) 56 56 return false; 57 57 58 58 ranges = prop->size / sizeof(ofw_ebus_range_t); 59 59 range = prop->value; 60 60 61 61 unsigned int i; 62 62 63 63 for (i = 0; i < ranges; i++) { 64 64 if (reg->space != range[i].child_space) … … 67 67 range[i].size)) { 68 68 ofw_pci_reg_t pci_reg; 69 69 70 70 pci_reg.space = range[i].parent_space; 71 71 pci_reg.addr = range[i].parent_base + 72 72 (reg->addr - range[i].child_base); 73 73 pci_reg.size = reg->size; 74 74 75 75 return ofw_pci_apply_ranges(node->parent, &pci_reg, pa); 76 76 } … … 86 86 ofw_tree_property_t *prop; 87 87 ofw_tree_node_t *controller; 88 88 89 89 prop = ofw_tree_getprop(node, "interrupt-map"); 90 90 if (!prop || !prop->value) … … 93 93 ofw_ebus_intr_map_t *intr_map = prop->value; 94 94 size_t count = prop->size / sizeof(ofw_ebus_intr_map_t); 95 95 96 96 assert(count); 97 97 98 98 prop = ofw_tree_getprop(node, "interrupt-map-mask"); 99 99 if (!prop || !prop->value) 100 100 return false; 101 101 102 102 ofw_ebus_intr_mask_t *intr_mask = prop->value; 103 103 104 104 assert(prop->size == sizeof(ofw_ebus_intr_mask_t)); 105 105 106 106 uint32_t space = reg->space & intr_mask->space_mask; 107 107 uint32_t addr = reg->addr & intr_mask->addr_mask; 108 108 uint32_t intr = interrupt & intr_mask->intr_mask; 109 109 110 110 unsigned int i; 111 111 for (i = 0; i < count; i++) { … … 127 127 if (!controller) 128 128 return false; 129 129 130 130 if (str_cmp(ofw_tree_node_name(controller), "pci") != 0) { 131 131 /*
Note:
See TracChangeset
for help on using the changeset viewer.