@@ -14,6 +14,8 @@
#include <linux/slab.h>
#include <linux/string.h>
+#include "of_private.h"
+
/* Max address size we deal with */
#define OF_MAX_ADDR_CELLS 4
#define OF_CHECK_ADDR_COUNT(na) ((na) > 0 && (na) <= OF_MAX_ADDR_CELLS)
@@ -42,7 +44,7 @@ struct of_bus {
const char *name;
const char *addresses;
int (*match)(struct device_node *parent);
- void (*count_cells)(struct device_node *child,
+ void (*count_cells)(struct device_node *parent,
int *addrc, int *sizec);
u64 (*map)(__be32 *addr, const __be32 *range,
int na, int ns, int pna);
@@ -54,13 +56,13 @@ struct of_bus {
* Default translator (generic bus)
*/
-static void of_bus_default_count_cells(struct device_node *dev,
+static void of_bus_default_count_cells(struct device_node *parent,
int *addrc, int *sizec)
{
if (addrc)
- *addrc = of_n_addr_cells(dev);
+ *addrc = __of_n_addr_cells_parent(parent);
if (sizec)
- *sizec = of_n_size_cells(dev);
+ *sizec = __of_n_size_cells_parent(parent);
}
static u64 of_bus_default_map(__be32 *addr, const __be32 *range,
@@ -192,7 +194,7 @@ const __be32 *of_get_pci_address(struct device_node *dev, int bar_no, u64 *size,
of_node_put(parent);
return NULL;
}
- bus->count_cells(dev, &na, &ns);
+ bus->count_cells(parent, &na, &ns);
of_node_put(parent);
if (!OF_CHECK_ADDR_COUNT(na))
return NULL;
@@ -592,7 +594,7 @@ static u64 __of_translate_address(struct device_node *dev,
bus = of_match_bus(parent);
/* Count address cells & copy address locally */
- bus->count_cells(dev, &na, &ns);
+ bus->count_cells(parent, &na, &ns);
if (!OF_CHECK_COUNTS(na, ns)) {
pr_debug("Bad cell count for %pOF\n", dev);
goto bail;
@@ -634,7 +636,7 @@ static u64 __of_translate_address(struct device_node *dev,
/* Get new parent bus and counts */
pbus = of_match_bus(parent);
- pbus->count_cells(dev, &pna, &pns);
+ pbus->count_cells(parent, &pna, &pns);
if (!OF_CHECK_COUNTS(pna, pns)) {
pr_err("Bad cell count for %pOF\n", dev);
break;
@@ -726,7 +728,7 @@ const __be32 *of_get_address(struct device_node *dev, int index, u64 *size,
if (parent == NULL)
return NULL;
bus = of_match_bus(parent);
- bus->count_cells(dev, &na, &ns);
+ bus->count_cells(parent, &na, &ns);
of_node_put(parent);
if (!OF_CHECK_ADDR_COUNT(na))
return NULL;