powerpc: Use of_node_name_eq for node name comparisons
Subsystems (5)
PATCH 1/1 powerpc: Use of_node_name_eq for node name comparisons
Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer.
A couple of open coded iterating thru the child node names are converted to use for_each_child_of_node() instead.
Cc Benjamin Herrenschmidt <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Michael Ellerman <[email protected]>
Cc Alistair Popple <[email protected]>
Cc Matt Porter <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Arnd Bergmann <[email protected]>
Signed-off-by Rob Herring <[email protected]>
--- arch/powerpc/kernel/legacy_serial.c | 7 +++-- arch/powerpc/platforms/44x/warp.c | 4 +-- arch/powerpc/platforms/52xx/efika.c | 6 ++--- arch/powerpc/platforms/cell/setup.c | 2 +- arch/powerpc/platforms/cell/spu_manage.c | 10 ++------ arch/powerpc/platforms/chrp/setup.c | 5 +--- arch/powerpc/platforms/powermac/feature.c | 11 ++++---- arch/powerpc/platforms/powermac/low_i2c.c | 4 +-- arch/powerpc/platforms/powermac/pci.c | 27 ++++++++------------ arch/powerpc/platforms/powermac/pfunc_base.c | 7 +++-- arch/powerpc/platforms/powermac/pic.c | 4 +-- arch/powerpc/platforms/powermac/setup.c | 10 ++------ arch/powerpc/platforms/powermac/udbg_scc.c | 2 +- arch/powerpc/platforms/powernv/opal.c | 2 +- arch/powerpc/platforms/pseries/setup.c | 2 +- 15 files changed, 39 insertions(+), 64 deletions(-)
arch/powerpc/kernel/legacy_serial.c +3 -4
@@ -398,8 +398,7 @@ void __init find_legacy_serial_ports(void)/* Next, fill our array with ISA ports */ for_each_node_by_type (np,"serial" ) {struct device_node *isa =of_get_parent (np); -if (isa && (!strcmp (isa->name,"isa" ) || - !strcmp (isa->name,"lpc" ))) { +if (of_node_name_eq (isa,"isa" ) ||of_node_name_eq (isa,"lpc" )) {if (of_device_is_available (np)) { index =add_legacy_isa_port (np, isa);if (index >=0 && np == stdout)
@@ -413,11 +412,11 @@ void __init find_legacy_serial_ports(void)/* Next, try to locate PCI ports */ for (np =NULL ; (np =of_find_all_nodes (np));) {struct device_node *pci, *parent =of_get_parent (np); -if (parent && !strcmp (parent->name,"isa" )) { +if (of_node_name_eq (parent,"isa" )) {of_node_put (parent);continue ; } -if (strcmp (np->name,"serial" ) && +if (!of_node_name_eq (np,"serial" ) && !of_node_is_type (np,"serial" )) {of_node_put (parent);continue ;
arch/powerpc/platforms/44x/warp.c +2 -2
@@ -179,9 +179,9 @@ static int pika_setup_leds(void) }for_each_child_of_node (np, child) -if (strcmp (child->name,"green" ) ==0 ) +if (of_node_name_eq (child,"green" )) green_led =of_get_gpio (child,0 ); -else if (strcmp (child->name,"red" ) ==0 ) +else if (of_node_name_eq (child,"red" )) red_led =of_get_gpio (child,0 );of_node_put (np);
arch/powerpc/platforms/52xx/efika.c +2 -4
@@ -82,11 +82,9 @@ static void __init efika_pcisetup(void)return ; } -for (pcictrl =NULL ;;) { - pcictrl =of_get_next_child (root, pcictrl); -if ((pcictrl ==NULL ) || (strcmp (pcictrl->name,"pci" ) ==0 )) +for_each_child_of_node (root, pcictrl) +if (of_node_name_eq (pcictrl,"pci" ))break ; - }of_node_put (root);
arch/powerpc/platforms/cell/setup.c +1 -1
@@ -131,7 +131,7 @@ static int cell_setup_phb(struct pci_controller *phb) np = phb->dn; model =of_get_property (np,"model" ,NULL ); -if (model ==NULL ||strcmp (np->name,"pci" )) +if (model ==NULL || !of_node_name_eq (np,"pci" ))return 0 ;/* Setup workarounds for spider */
arch/powerpc/platforms/cell/spu_manage.c +2 -8
@@ -458,7 +458,6 @@ static void init_affinity_node(int cbe)struct device_node *vic_dn, *last_spu_dn;phandle avoid_ph;const phandle *vic_handles; -const char *name;int lenp, i, added; last_spu = list_first_entry(&cbe_spu_info[cbe].spus, struct spu,
@@ -480,12 +479,7 @@ static void init_affinity_node(int cbe)if (!vic_dn)continue ; -/* a neighbour might be spe, mic-tm, or bif0 */ - name =of_get_property (vic_dn,"name" ,NULL ); -if (!name) -continue ; - -if (strcmp (name,"spe" ) ==0 ) { +if (of_node_name_eq (vic_dn,"spe" ) ) { spu =devnode_spu (cbe, vic_dn); avoid_ph = last_spu_dn->phandle; }else {
@@ -498,7 +492,7 @@ static void init_affinity_node(int cbe) spu =neighbour_spu (cbe, vic_dn, last_spu_dn);if (!spu)continue ; -if (!strcmp (name,"mic-tm" )) { +if (of_node_name_eq (vic_dn,"mic-tm" )) { last_spu->has_mem_affinity =1 ; spu->has_mem_affinity =1 ; }
arch/powerpc/platforms/chrp/setup.c +1 -4
@@ -287,10 +287,7 @@ static __init void chrp_init(void)* or /pci@80000000/isa@C/serial@i2F8 * The optional graphics card has also type 'serial' in VGA mode. */ - property =of_get_property (node,"name" ,NULL ); -if (!property) - goto out_put; -if (!strcmp (property,"failsafe" ) || !strcmp (property,"serial" )) +if (of_node_name_eq (node,"failsafe" ) ||of_node_name_eq (node,"serial" ))add_preferred_console ("ttyS" ,0 ,NULL ); out_put:of_node_put (node);
arch/powerpc/platforms/powermac/feature.c +5 -6
@@ -173,9 +173,9 @@ static long ohare_htw_scc_enable(struct device_node *node, long param, macio =macio_find (node,0 );if (!macio)return -ENODEV ; -if (!strcmp (node->name,"ch-a" )) +if (of_node_name_eq (node,"ch-a" )) chan_mask =MACIO_FLAG_SCCA_ON ; -else if (!strcmp (node->name,"ch-b" )) +else if (of_node_name_eq (node,"ch-b" )) chan_mask =MACIO_FLAG_SCCB_ON ;else return -ENODEV ;
@@ -610,9 +610,9 @@ static long core99_scc_enable(struct device_node *node, long param, long value) macio =macio_find (node,0 );if (!macio)return -ENODEV ; -if (!strcmp (node->name,"ch-a" )) +if (of_node_name_eq (node,"ch-a" )) chan_mask =MACIO_FLAG_SCCA_ON ; -else if (!strcmp (node->name,"ch-b" )) +else if (of_node_name_eq (node,"ch-b" )) chan_mask =MACIO_FLAG_SCCB_ON ;else return -ENODEV ;
@@ -1392,8 +1392,7 @@ static long g5_mpic_enable(struct device_node *node, long param, long value)if (parent ==NULL )return 0 ; - is_u3 =strcmp (parent->name,"u3" ) ==0 || -strcmp (parent->name,"u4" ) ==0 ; + is_u3 =of_node_name_eq (parent,"u3" ) ||of_node_name_eq (parent,"u4" );of_node_put (parent);if (!is_u3)return 0 ;
arch/powerpc/platforms/powermac/low_i2c.c +2 -2
@@ -617,7 +617,7 @@ static void __init kw_i2c_probe(void)* but not for now */ child =of_get_next_child (np,NULL ); - multibus = !child ||strcmp (child->name,"i2c-bus" ); + multibus = !of_node_name_eq (child,"i2c-bus" );of_node_put (child);/* For a multibus setup, we get the bus count based on the
@@ -1205,7 +1205,7 @@ static void pmac_i2c_devscan(void (*callback)(struct device_node *dev,if (bus !=pmac_i2c_find_bus (np))continue ;for (p = whitelist; p->name !=NULL ; p++) { -if (strcmp (np->name, p->name)) +if (!of_node_name_eq (np, p->name))continue ;if (p->compatible && !of_device_is_compatible (np, p->compatible))
arch/powerpc/platforms/powermac/pci.c +11 -16
@@ -501,9 +501,7 @@ static void __init init_p2pbridge(void)/* XXX it would be better here to identify the specific PCI-PCI bridge chip we have. */ p2pbridge =of_find_node_by_name (NULL ,"pci-bridge" ); -if (p2pbridge ==NULL - || p2pbridge->parent ==NULL - ||strcmp (p2pbridge->parent->name,"pci" ) !=0 ) +if (p2pbridge ==NULL || !of_node_name_eq (p2pbridge->parent,"pci" )) goto done;if (pci_device_from_OF_node (p2pbridge, &bus, &devfn) <0 ) {DBG ("Can't find PCI infos for PCI<->PCI bridge\n" );
@@ -828,14 +826,14 @@ static int __init pmac_add_bridge(struct device_node *dev)if (of_device_is_compatible (dev,"uni-north" )) { primary =setup_uninorth (hose, &rsrc); disp_name ="UniNorth" ; - }else if (strcmp (dev->name,"pci" ) ==0 ) { + }else if (of_node_name_eq (dev,"pci" )) {/* XXX assume this is a mpc106 (grackle) */ setup_grackle (hose); disp_name ="Grackle (MPC106)" ; - }else if (strcmp (dev->name,"bandit" ) ==0 ) { + }else if (of_node_name_eq (dev,"bandit" )) {setup_bandit (hose, &rsrc); disp_name ="Bandit" ; - }else if (strcmp (dev->name,"chaos" ) ==0 ) { + }else if (of_node_name_eq (dev,"chaos" )) {setup_chaos (hose, &rsrc); disp_name ="Chaos" ; primary =0 ;
@@ -914,16 +912,14 @@ void __init pmac_pci_init(void) "of device tree\n");return ; } -for (np =NULL ; (np =of_get_next_child (root, np)) !=NULL ;) { -if (np->name ==NULL ) -continue ; -if (strcmp (np->name,"bandit" ) ==0 - ||strcmp (np->name,"chaos" ) ==0 - ||strcmp (np->name,"pci" ) ==0 ) { +for_each_child_of_node (root, np) { +if (of_node_name_eq (np,"bandit" ) + ||of_node_name_eq (np,"chaos" ) + ||of_node_name_eq (np,"pci" )) {if (pmac_add_bridge (np) ==0 )of_node_get (np); } -if (strcmp (np->name,"ht" ) ==0 ) { +if (of_node_name_eq (np,"ht" )) {of_node_get (np); ht = np; }
@@ -983,7 +979,7 @@ static bool pmac_pci_enable_device_hook(struct pci_dev *dev)/* Firewire & GMAC were disabled after PCI probe, the driver is * claiming them, we must re-enable them now. */ -if (uninorth_child && !strcmp (node->name,"firewire" ) && +if (uninorth_child &&of_node_name_eq (node,"firewire" ) && (of_device_is_compatible (node,"pci106b,18" ) ||of_device_is_compatible (node,"pci106b,30" ) ||of_device_is_compatible (node,"pci11c1,5811" ))) {
@@ -991,7 +987,7 @@ static bool pmac_pci_enable_device_hook(struct pci_dev *dev)pmac_call_feature (PMAC_FTR_1394_ENABLE , node,0 ,1 ); updatecfg =1 ; } -if (uninorth_child && !strcmp (node->name,"ethernet" ) && +if (uninorth_child &&of_node_name_eq (node,"ethernet" ) &&of_device_is_compatible (node,"gmac" )) {pmac_call_feature (PMAC_FTR_GMAC_ENABLE , node,0 ,1 ); updatecfg =1 ;
@@ -1262,4 +1258,3 @@ struct pci_controller_ops pmac_pci_controller_ops = { .enable_device_hook = pmac_pci_enable_device_hook,#endif }; -
arch/powerpc/platforms/powermac/pfunc_base.c +3 -4
@@ -101,9 +101,8 @@ static void macio_gpio_init_one(struct macio_chip *macio)* Find the "gpio" parent node */ -for (gparent =NULL ; - (gparent =of_get_next_child (macio->of_node, gparent)) !=NULL ;) -if (strcmp (gparent->name,"gpio" ) ==0 ) +for_each_child_of_node (macio->of_node, gparent) +if (of_node_name_eq (gparent,"gpio" ))break ;if (gparent ==NULL )return ;
@@ -313,7 +312,7 @@ static void uninorth_install_pfunc(void)* Install handlers for the hwclock child if any */ for (np =NULL ; (np =of_get_next_child (uninorth_node, np)) !=NULL ;) -if (strcmp (np->name,"hw-clock" ) ==0 ) { +if (of_node_name_eq (np,"hw-clock" )) { unin_hwclock = np;break ; }
arch/powerpc/platforms/powermac/pic.c +2 -2
@@ -553,13 +553,13 @@ void __init pmac_pic_init(void)for_each_node_with_property (np,"interrupt-controller" ) {/* Skip /chosen/interrupt-controller */ -if (strcmp (np->name,"chosen" ) ==0 ) +if (of_node_name_eq (np,"chosen" ))continue ;/* It seems like at least one person wants * to use BootX on a machine with an AppleKiwi * controller which happens to pretend to be an * interrupt controller too. */ -if (strcmp (np->name,"AppleKiwi" ) ==0 ) +if (of_node_name_eq (np,"AppleKiwi" ))continue ;/* I think we found one ! */ of_irq_dflt_pic = np;
arch/powerpc/platforms/powermac/setup.c +2 -8
@@ -560,15 +560,9 @@ static int __init check_pmac_serial_console(void) }pr_debug ("stdout is %pOF\n" , prom_stdout); - name =of_get_property (prom_stdout,"name" ,NULL ); -if (!name) { -pr_debug (" stdout package has no name !\n" ); - goto not_found; - } - -if (strcmp (name,"ch-a" ) ==0 ) +if (of_node_name_eq (prom_stdout,"ch-a" )) offset =0 ; -else if (strcmp (name,"ch-b" ) ==0 ) +else if (of_node_name_eq (prom_stdout,"ch-b" )) offset =1 ;else goto not_found;
arch/powerpc/platforms/powermac/udbg_scc.c +1 -1
@@ -87,7 +87,7 @@ void udbg_scc_init(int force_scc)for (ch =NULL ; (ch =of_get_next_child (escc, ch)) !=NULL ;) {if (ch == stdout) ch_def =of_node_get (ch); -if (strcmp (ch->name,"ch-a" ) ==0 ) +if (of_node_name_eq (ch,"ch-a" )) ch_a =of_node_get (ch); }if (ch_def ==NULL && !force_scc)
arch/powerpc/platforms/powernv/opal.c +1 -1
@@ -877,7 +877,7 @@ static int __init opal_init(void) consoles =of_find_node_by_path ("/ibm,opal/consoles" );if (consoles) {for_each_child_of_node (consoles, np) { -if (strcmp (np->name,"serial" )) +if (!of_node_name_eq (np,"serial" ))continue ;of_platform_device_create (np,NULL ,NULL ); }
arch/powerpc/platforms/pseries/setup.c +1 -1
@@ -190,7 +190,7 @@ static void __init pseries_setup_i8259_cascade(void)of_node_put (old);if (np ==NULL )break ; -if (strcmp (np->name,"pci" ) !=0 ) +if (!of_node_name_eq (np,"pci" ))continue ; addrp =of_get_property (np,"8259-interrupt-acknowledge" ,NULL );if (addrp ==NULL )
Signature · 1 line
2.19.1
Michael Ellerman
AppliedQuoted 6 lines · Rob Herring
Convert string compares of DT node names to use
of_node_name_eqhelper instead. This removes direct access to the node name pointer.A couple of open coded iterating thru the child node names are converted to use
for_each_child_of_node()instead.
Quoted 9 lines
Cc Benjamin Herrenschmidt <[email protected]>Cc Paul Mackerras <[email protected]>Cc Michael Ellerman <[email protected]>Cc Alistair Popple <[email protected]>Cc Matt Porter <[email protected]>Cc Anatolij Gustschin <[email protected]>Cc Arnd Bergmann <[email protected]>Signed-off-by Rob Herring <[email protected]>
Applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/2c8e65b595cf0bf7c1413404dff9b9
cheers