Loading arch/powerpc/include/asm/prom.h +2 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ static inline int of_node_to_nid(struct device_node *device) { return 0; } extern void of_instantiate_rtc(void); extern int of_get_ibm_chip_id(struct device_node *np); /* The of_drconf_cell struct defines the layout of the LMB array * specified in the device tree property * ibm,dynamic-reconfiguration-memory/ibm,dynamic-memory Loading arch/powerpc/kernel/prom.c +26 −0 Original line number Diff line number Diff line Loading @@ -795,6 +795,32 @@ struct device_node *of_find_next_cache_node(struct device_node *np) return NULL; } /** * of_get_ibm_chip_id - Returns the IBM "chip-id" of a device * @np: device node of the device * * This looks for a property "ibm,chip-id" in the node or any * of its parents and returns its content, or -1 if it cannot * be found. */ int of_get_ibm_chip_id(struct device_node *np) { of_node_get(np); while(np) { struct device_node *old = np; const __be32 *prop; prop = of_get_property(np, "ibm,chip-id", NULL); if (prop) { of_node_put(np); return be32_to_cpup(prop); } np = of_get_parent(np); of_node_put(old); } return -1; } #ifdef CONFIG_PPC_PSERIES /* * Fix up the uninitialized fields in a new device node: Loading Loading
arch/powerpc/include/asm/prom.h +2 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ static inline int of_node_to_nid(struct device_node *device) { return 0; } extern void of_instantiate_rtc(void); extern int of_get_ibm_chip_id(struct device_node *np); /* The of_drconf_cell struct defines the layout of the LMB array * specified in the device tree property * ibm,dynamic-reconfiguration-memory/ibm,dynamic-memory Loading
arch/powerpc/kernel/prom.c +26 −0 Original line number Diff line number Diff line Loading @@ -795,6 +795,32 @@ struct device_node *of_find_next_cache_node(struct device_node *np) return NULL; } /** * of_get_ibm_chip_id - Returns the IBM "chip-id" of a device * @np: device node of the device * * This looks for a property "ibm,chip-id" in the node or any * of its parents and returns its content, or -1 if it cannot * be found. */ int of_get_ibm_chip_id(struct device_node *np) { of_node_get(np); while(np) { struct device_node *old = np; const __be32 *prop; prop = of_get_property(np, "ibm,chip-id", NULL); if (prop) { of_node_put(np); return be32_to_cpup(prop); } np = of_get_parent(np); of_node_put(old); } return -1; } #ifdef CONFIG_PPC_PSERIES /* * Fix up the uninitialized fields in a new device node: Loading