macintosh: Use of_node_name_{eq,prefix} for node name comparisons
PATCH 1/1 macintosh: Use of_node_name_{eq,prefix} for node name comparisons
Convert string compares of DT node names to use of_node_name_{eq,prefix} helpers instead. This removes direct access to the node name pointer.
This changes a single case insensitive node name comparison to case sensitive for "ata4". This is the only instance of a case insensitive comparison for all the open coded node name comparisons on powerpc. Searching the commit history, there doesn't appear to be any reason for it to be case insensitive.
A couple of open coded iterating thru the child node names are converted to use for_each_child_of_node() instead.
--- drivers/macintosh/ans-lcd.c | 2 +- drivers/macintosh/macio_asic.c | 33 +++++++++++------------ drivers/macintosh/rack-meter.c | 13 ++++----- drivers/macintosh/via-pmu.c | 4 +-- drivers/macintosh/windfarm_lm87_sensor.c | 4 +-- drivers/macintosh/windfarm_smu_controls.c | 4 +-- drivers/macintosh/windfarm_smu_sensors.c | 2 +- 7 files changed, 30 insertions(+), 32 deletions(-)
drivers/macintosh/ans-lcd.c +1 -1
@@ -160,7 +160,7 @@ anslcd_init(void)struct device_node * node; node =of_find_node_by_name (NULL ,"lcd" ); -if (!node || !node->parent ||strcmp (node->parent->name,"gc" )) { +if (!node || !of_node_name_eq (node->parent,"gc" )) {of_node_put (node);return -ENODEV ; }
drivers/macintosh/macio_asic.c +15 -18
@@ -190,11 +190,11 @@ static int macio_resource_quirks(struct device_node *np, struct resource *res,return 0 ;/* Grand Central has too large resource 0 on some machines */ -if (index ==0 && !strcmp (np->name,"gc" )) +if (index ==0 &&of_node_name_eq (np,"gc" )) res->end = res->start +0x1ffff ;/* Airport has bogus resource 2 */ -if (index >=2 && !strcmp (np->name,"radio" )) +if (index >=2 &&of_node_name_eq (np,"radio" ))return 1 ;#ifndef CONFIG_PPC64
@@ -207,20 +207,20 @@ static int macio_resource_quirks(struct device_node *np, struct resource *res,* level of hierarchy, but I don't really feel the need * for it */ -if (!strcmp (np->name,"escc" )) +if (of_node_name_eq (np,"escc" ))return 1 ;/* ESCC has bogus resources >= 3 */ -if (index >=3 && !(strcmp (np->name,"ch-a" ) && -strcmp (np->name,"ch-b" ))) +if (index >=3 && (of_node_name_eq (np,"ch-a" ) || +of_node_name_eq (np,"ch-b" )))return 1 ;/* Media bay has too many resources, keep only first one */ -if (index >0 && !strcmp (np->name,"media-bay" )) +if (index >0 &&of_node_name_eq (np,"media-bay" ))return 1 ;/* Some older IDE resources have bogus sizes */ -if (!strcmp (np->name,"IDE" ) || !strcmp (np->name,"ATA" ) || +if (of_node_name_eq (np,"IDE" ) ||of_node_name_eq (np,"ATA" ) ||of_node_is_type (np,"ide" ) ||of_node_is_type (np,"ata" )) {if (index ==0 && (res->end - res->start) >0xfff ) res->end = res->start +0xfff ;
@@ -260,7 +260,7 @@ static void macio_add_missing_resources(struct macio_dev *dev) irq_base =64 ;/* Fix SCC */ -if (strcmp (np->name,"ch-a" ) ==0 ) { +if (of_node_name_eq (np,"ch-a" )) {macio_create_fixup_irq (dev,0 ,15 + irq_base);macio_create_fixup_irq (dev,1 ,4 + irq_base);macio_create_fixup_irq (dev,2 ,5 + irq_base);
@@ -268,18 +268,18 @@ static void macio_add_missing_resources(struct macio_dev *dev) }/* Fix media-bay */ -if (strcmp (np->name,"media-bay" ) ==0 ) { +if (of_node_name_eq (np,"media-bay" )) {macio_create_fixup_irq (dev,0 ,29 + irq_base);printk (KERN_INFO "macio: fixed media-bay irq on gatwick\n" ); }/* Fix left media bay childs */ -if (dev->media_bay !=NULL &&strcmp (np->name,"floppy" ) ==0 ) { +if (dev->media_bay !=NULL &&of_node_name_eq (np,"floppy" )) {macio_create_fixup_irq (dev,0 ,19 + irq_base);macio_create_fixup_irq (dev,1 ,1 + irq_base);printk (KERN_INFO "macio: fixed left floppy irqs\n" ); } -if (dev->media_bay !=NULL &&strcasecmp (np->name,"ata4" ) ==0 ) { +if (dev->media_bay !=NULL &&of_node_name_eq (np,"ata4" )) {macio_create_fixup_irq (dev,0 ,14 + irq_base);macio_create_fixup_irq (dev,0 ,3 + irq_base);printk (KERN_INFO "macio: fixed left ide irqs\n" );
@@ -438,11 +438,8 @@ static struct macio_dev * macio_add_one_device(struct macio_chip *chip,static int macio_skip_device (struct device_node *np) { -if (strncmp (np->name,"battery" ,7 ) ==0 ) -return 1 ; -if (strncmp (np->name,"escc-legacy" ,11 ) ==0 ) -return 1 ; -return 0 ; +return of_node_name_prefix (np,"battery" ) || +of_node_name_prefix (np,"escc-legacy" ); }/**
@@ -489,9 +486,9 @@ static void macio_pci_add_devices(struct macio_chip *chip) root_res);if (mdev ==NULL )of_node_put (np); -else if (strncmp (np->name,"media-bay" ,9 ) ==0 ) +else if (of_node_name_prefix (np,"media-bay" )) mbdev = mdev; -else if (strncmp (np->name,"escc" ,4 ) ==0 ) +else if (of_node_name_prefix (np,"escc" )) sdev = mdev; }
drivers/macintosh/rack-meter.c +7 -6
@@ -376,18 +376,19 @@ static int rackmeter_probe(struct macio_dev* mdev,pr_debug ("rackmeter_probe()\n" );/* Get i2s-a node */ -while ((i2s =of_get_next_child (mdev->ofdev.dev.of_node, i2s)) !=NULL ) -if (strcmp (i2s->name,"i2s-a" ) ==0 ) -break ; +for_each_child_of_node (mdev->ofdev.dev.of_node, i2s) +if (of_node_name_eq (i2s,"i2s-a" )) +break ; +if (i2s ==NULL ) {pr_debug (" i2s-a child not found\n" ); goto bail; }/* Get lightshow or virtual sound */ -while ((np =of_get_next_child (i2s, np)) !=NULL ) { -if (strcmp (np->name,"lightshow" ) ==0 ) +for_each_child_of_node (i2s, np) { +if (of_node_name_eq (np,"lightshow" ))break ; -if ((strcmp (np->name,"sound" ) ==0 ) && +if (of_node_name_eq (np,"sound" ) &&of_get_property (np,"virtual" ,NULL ) !=NULL )break ; }
drivers/macintosh/via-pmu.c +2 -2
@@ -318,8 +318,8 @@ int __init find_via_pmu(void)PMU_INT_ADB |PMU_INT_TICK ; -if (vias->parent->name && ((strcmp (vias->parent->name,"ohare" ) ==0 ) - ||of_device_is_compatible (vias->parent,"ohare" ))) +if (of_node_name_eq (vias->parent,"ohare" ) || +of_device_is_compatible (vias->parent,"ohare" )) pmu_kind =PMU_OHARE_BASED ;else if (of_device_is_compatible (vias->parent,"paddington" )) pmu_kind =PMU_PADDINGTON_BASED ;
drivers/macintosh/windfarm_lm87_sensor.c +2 -2
@@ -110,8 +110,8 @@ static int wf_lm87_probe(struct i2c_client *client,* the Xserve G5 has several lm87's. However, for now we only * care about the internal temperature sensor */ -while ((np =of_get_next_child (client->dev.of_node, np)) !=NULL ) { -if (strcmp (np->name,"int-temp" )) +for_each_child_of_node (client->dev.of_node, np) { +if (!of_node_name_eq (np,"int-temp" ))continue ; loc =of_get_property (np,"location" ,NULL );if (!loc)
drivers/macintosh/windfarm_smu_controls.c +2 -2
@@ -267,7 +267,7 @@ static int __init smu_controls_init(void)/* Look for RPM fans */ for (fans =NULL ; (fans =of_get_next_child (smu, fans)) !=NULL ;) -if (!strcmp (fans->name,"rpm-fans" ) || +if (of_node_name_eq (fans,"rpm-fans" ) ||of_device_is_compatible (fans,"smu-rpm-fans" ))break ; for (fan = NULL;
@@ -287,7 +287,7 @@ static int __init smu_controls_init(void)/* Look for PWM fans */ for (fans =NULL ; (fans =of_get_next_child (smu, fans)) !=NULL ;) -if (!strcmp (fans->name,"pwm-fans" )) +if (of_node_name_eq (fans,"pwm-fans" ))break ;for (fan =NULL ; fans && (fan =of_get_next_child (fans, fan)) !=NULL ;) {
drivers/macintosh/windfarm_smu_sensors.c +1 -1
@@ -424,7 +424,7 @@ static int __init smu_sensors_init(void)/* Look for sensors subdir */ for (sensors =NULL ; (sensors =of_get_next_child (smu, sensors)) !=NULL ;) -if (!strcmp (sensors->name,"sensors" )) +if (of_node_name_eq (sensors,"sensors" ))break ;of_node_put (smu);
Signature · 1 line
2.19.1
Michael Ellerman
AppliedRe: macintosh: Use of_node_name_{eq, prefix} for node name comparisons
Quoted 9 lines · Rob Herring
Convert string compares of DT node names to use of_node_name_{eq,prefix} helpers instead. This removes direct access to the node name pointer.
This changes a single case insensitive node name comparison to case sensitive for "ata4". This is the only instance of a case insensitive comparison for all the open coded node name comparisons on powerpc. Searching the commit history, there doesn't appear to be any reason for it to be case insensitive.
Quoted 6 lines
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]>Signed-off-by Rob Herring <[email protected]>
Applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/f1e0addca8bd7386f8cabbc64c9988
cheers