Message ID | 20181107053943.4307-13-alistair@popple.id.au |
---|---|
State | Superseded |
Headers | show |
Series | Cleanup old code | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | master/apply_patch Successfully applied |
snowpatch_ozlabs/build-multiarch | success | Test build-multiarch on branch master |
Reviewed-by: Amitay Isaacs <amitay@ozlabs.org> On Wed, 2018-11-07 at 16:39 +1100, Alistair Popple wrote: > Clean up the target addressing functions and rename them to be > consistent with other libpdbg function names. > > Signed-off-by: Alistair Popple <alistair@popple.id.au> > --- > libpdbg/cfam.c | 4 ++-- > libpdbg/device.c | 11 +++++------ > libpdbg/device.h | 7 ------- > libpdbg/i2c.c | 2 +- > libpdbg/libpdbg.h | 4 +++- > libpdbg/p8chip.c | 4 ++-- > libpdbg/p9chip.c | 2 +- > libpdbg/target.c | 2 +- > 8 files changed, 15 insertions(+), 21 deletions(-) > > diff --git a/libpdbg/cfam.c b/libpdbg/cfam.c > index 1f0c938..67ab22e 100644 > --- a/libpdbg/cfam.c > +++ b/libpdbg/cfam.c > @@ -295,7 +295,7 @@ static int cfam_hmfsi_read(struct fsi *fsi, > uint32_t addr, uint32_t *data) > { > struct pdbg_target *parent_fsi = > pdbg_target_require_parent("fsi", &fsi->target); > > - addr += dt_get_address(&fsi->target, 0, NULL); > + addr += pdbg_target_address(&fsi->target, NULL); > > return fsi_read(parent_fsi, addr, data); > } > @@ -304,7 +304,7 @@ static int cfam_hmfsi_write(struct fsi *fsi, > uint32_t addr, uint32_t data) > { > struct pdbg_target *parent_fsi = > pdbg_target_require_parent("fsi", &fsi->target); > > - addr += dt_get_address(&fsi->target, 0, NULL); > + addr += pdbg_target_address(&fsi->target, NULL); > > return fsi_write(parent_fsi, addr, data); > } > diff --git a/libpdbg/device.c b/libpdbg/device.c > index a7212a6..5cd8302 100644 > --- a/libpdbg/device.c > +++ b/libpdbg/device.c > @@ -658,17 +658,16 @@ static u32 dt_n_size_cells(const struct > pdbg_target *node) > return dt_prop_get_u32_def(node->parent, "#size-cells", 1); > } > > -u64 dt_get_address(const struct pdbg_target *node, unsigned int > index, > - u64 *out_size) > +uint64_t pdbg_target_address(struct pdbg_target *target, uint64_t > *out_size) > { > const struct dt_property *p; > - u32 na = dt_n_address_cells(node); > - u32 ns = dt_n_size_cells(node); > + u32 na = dt_n_address_cells(target); > + u32 ns = dt_n_size_cells(target); > u32 pos, n; > > - p = dt_require_property(node, "reg", -1); > + p = dt_require_property(target, "reg", -1); > n = (na + ns) * sizeof(u32); > - pos = n * index; > + pos = n; > assert((pos + n) <= p->len); > if (out_size) > *out_size = dt_get_number(p->prop + pos + na * > sizeof(u32), ns); > diff --git a/libpdbg/device.h b/libpdbg/device.h > index a050a23..29224a2 100644 > --- a/libpdbg/device.h > +++ b/libpdbg/device.h > @@ -44,11 +44,4 @@ const void *dt_prop_get(const struct pdbg_target > *node, const char *prop); > const void *dt_prop_get_def(const struct pdbg_target *node, const > char *prop, > void *def); > > -/* Address accessors ("reg" properties parsing). No translation, > - * only support "simple" address forms (1 or 2 cells). Asserts > - * if address doesn't exist > - */ > -u64 dt_get_address(const struct pdbg_target *node, unsigned int > index, > - u64 *out_size); > - > #endif /* __DEVICE_H */ > diff --git a/libpdbg/i2c.c b/libpdbg/i2c.c > index b1580e1..9cb6271 100644 > --- a/libpdbg/i2c.c > +++ b/libpdbg/i2c.c > @@ -131,7 +131,7 @@ int i2c_target_probe(struct pdbg_target *target) > int addr; > > bus = dt_prop_get_def(&pib->target, "bus", "/dev/i2c4"); > - addr = dt_get_address(&pib->target, 0, NULL); > + addr = pdbg_target_address(&pib->target, NULL); > assert(addr); > > i2c_data = malloc(sizeof(*i2c_data)); > diff --git a/libpdbg/libpdbg.h b/libpdbg/libpdbg.h > index 4a21671..f8fe3e8 100644 > --- a/libpdbg/libpdbg.h > +++ b/libpdbg/libpdbg.h > @@ -73,7 +73,7 @@ void pdbg_target_set_property(struct pdbg_target > *target, const char *name, cons > /* Get the given property and return the size */ > void *pdbg_target_property(struct pdbg_target *target, const char > *name, size_t *size); > int pdbg_target_u32_property(struct pdbg_target *target, const char > *name, uint32_t *val); > -uint64_t pdbg_get_address(struct pdbg_target *target, uint64_t > *size); > +uint64_t pdbg_target_address(struct pdbg_target *target, uint64_t > *size); > > /* Old deprecated for names for the above. Do not use for new > projects > * as these will be removed at some future point. */ > @@ -81,6 +81,8 @@ uint64_t pdbg_get_address(struct pdbg_target > *target, uint64_t *size); > pdbg_target_set_property(target, name, val, size) > #define pdbg_get_target_property(target, name, size) \ > pdbg_target_property(target, name, size) > +#define pdbg_get_address(target, index, size) \ > + (index == 0 ? pdbg_target_address(target, size) : assert(0)) > > /* Find an chip-id property in this node; if not found, walk up the > parent > * nodes. Returns -1 if no chip-id property exists. */ > diff --git a/libpdbg/p8chip.c b/libpdbg/p8chip.c > index f6df925..f3e71a0 100644 > --- a/libpdbg/p8chip.c > +++ b/libpdbg/p8chip.c > @@ -155,7 +155,7 @@ static int assert_special_wakeup(struct core > *chip) > > if (i++ > SPECIAL_WKUP_TIMEOUT) { > PR_ERROR("Timeout waiting for special wakeup on > %s@0x%08" PRIx64 > "\n", chip->target.name, > - dt_get_address(&chip->target, 0, > NULL)); > + pdbg_target_address(&chip->target, > NULL)); > return -1; > } > } while (!(gp0 & SPECIAL_WKUP_DONE)); > @@ -479,7 +479,7 @@ static int p8_thread_probe(struct pdbg_target > *target) > { > struct thread *thread = target_to_thread(target); > > - thread->id = (dt_get_address(target, 0, NULL) >> 4) & 0xf; > + thread->id = (pdbg_target_address(target, NULL) >> 4) & 0xf; > thread->status = get_thread_status(thread); > > return 0; > diff --git a/libpdbg/p9chip.c b/libpdbg/p9chip.c > index 6a2f434..2411103 100644 > --- a/libpdbg/p9chip.c > +++ b/libpdbg/p9chip.c > @@ -527,7 +527,7 @@ static int p9_core_probe(struct pdbg_target > *target) > > if (i++ > SPECIAL_WKUP_TIMEOUT) { > PR_ERROR("Timeout waiting for special wakeup on > %s@0x%08" PRIx64 > "\n", target->name, > - dt_get_address(target, 0, NULL)); > + pdbg_target_address(target, NULL)); > break; > } > } while (!(value & SPECIAL_WKUP_DONE)); > diff --git a/libpdbg/target.c b/libpdbg/target.c > index d8d699f..5599d78 100644 > --- a/libpdbg/target.c > +++ b/libpdbg/target.c > @@ -24,7 +24,7 @@ static struct pdbg_target > *get_class_target_addr(struct pdbg_target *target, con > if (target->translate) > *addr = target->translate(target, *addr); > else > - *addr += dt_get_address(target, 0, NULL); > + *addr += pdbg_target_address(target, NULL); > > /* Keep walking the tree translating addresses */ > target = target->parent; > -- > 2.11.0 > Amitay.
diff --git a/libpdbg/cfam.c b/libpdbg/cfam.c index 1f0c938..67ab22e 100644 --- a/libpdbg/cfam.c +++ b/libpdbg/cfam.c @@ -295,7 +295,7 @@ static int cfam_hmfsi_read(struct fsi *fsi, uint32_t addr, uint32_t *data) { struct pdbg_target *parent_fsi = pdbg_target_require_parent("fsi", &fsi->target); - addr += dt_get_address(&fsi->target, 0, NULL); + addr += pdbg_target_address(&fsi->target, NULL); return fsi_read(parent_fsi, addr, data); } @@ -304,7 +304,7 @@ static int cfam_hmfsi_write(struct fsi *fsi, uint32_t addr, uint32_t data) { struct pdbg_target *parent_fsi = pdbg_target_require_parent("fsi", &fsi->target); - addr += dt_get_address(&fsi->target, 0, NULL); + addr += pdbg_target_address(&fsi->target, NULL); return fsi_write(parent_fsi, addr, data); } diff --git a/libpdbg/device.c b/libpdbg/device.c index a7212a6..5cd8302 100644 --- a/libpdbg/device.c +++ b/libpdbg/device.c @@ -658,17 +658,16 @@ static u32 dt_n_size_cells(const struct pdbg_target *node) return dt_prop_get_u32_def(node->parent, "#size-cells", 1); } -u64 dt_get_address(const struct pdbg_target *node, unsigned int index, - u64 *out_size) +uint64_t pdbg_target_address(struct pdbg_target *target, uint64_t *out_size) { const struct dt_property *p; - u32 na = dt_n_address_cells(node); - u32 ns = dt_n_size_cells(node); + u32 na = dt_n_address_cells(target); + u32 ns = dt_n_size_cells(target); u32 pos, n; - p = dt_require_property(node, "reg", -1); + p = dt_require_property(target, "reg", -1); n = (na + ns) * sizeof(u32); - pos = n * index; + pos = n; assert((pos + n) <= p->len); if (out_size) *out_size = dt_get_number(p->prop + pos + na * sizeof(u32), ns); diff --git a/libpdbg/device.h b/libpdbg/device.h index a050a23..29224a2 100644 --- a/libpdbg/device.h +++ b/libpdbg/device.h @@ -44,11 +44,4 @@ const void *dt_prop_get(const struct pdbg_target *node, const char *prop); const void *dt_prop_get_def(const struct pdbg_target *node, const char *prop, void *def); -/* Address accessors ("reg" properties parsing). No translation, - * only support "simple" address forms (1 or 2 cells). Asserts - * if address doesn't exist - */ -u64 dt_get_address(const struct pdbg_target *node, unsigned int index, - u64 *out_size); - #endif /* __DEVICE_H */ diff --git a/libpdbg/i2c.c b/libpdbg/i2c.c index b1580e1..9cb6271 100644 --- a/libpdbg/i2c.c +++ b/libpdbg/i2c.c @@ -131,7 +131,7 @@ int i2c_target_probe(struct pdbg_target *target) int addr; bus = dt_prop_get_def(&pib->target, "bus", "/dev/i2c4"); - addr = dt_get_address(&pib->target, 0, NULL); + addr = pdbg_target_address(&pib->target, NULL); assert(addr); i2c_data = malloc(sizeof(*i2c_data)); diff --git a/libpdbg/libpdbg.h b/libpdbg/libpdbg.h index 4a21671..f8fe3e8 100644 --- a/libpdbg/libpdbg.h +++ b/libpdbg/libpdbg.h @@ -73,7 +73,7 @@ void pdbg_target_set_property(struct pdbg_target *target, const char *name, cons /* Get the given property and return the size */ void *pdbg_target_property(struct pdbg_target *target, const char *name, size_t *size); int pdbg_target_u32_property(struct pdbg_target *target, const char *name, uint32_t *val); -uint64_t pdbg_get_address(struct pdbg_target *target, uint64_t *size); +uint64_t pdbg_target_address(struct pdbg_target *target, uint64_t *size); /* Old deprecated for names for the above. Do not use for new projects * as these will be removed at some future point. */ @@ -81,6 +81,8 @@ uint64_t pdbg_get_address(struct pdbg_target *target, uint64_t *size); pdbg_target_set_property(target, name, val, size) #define pdbg_get_target_property(target, name, size) \ pdbg_target_property(target, name, size) +#define pdbg_get_address(target, index, size) \ + (index == 0 ? pdbg_target_address(target, size) : assert(0)) /* Find an chip-id property in this node; if not found, walk up the parent * nodes. Returns -1 if no chip-id property exists. */ diff --git a/libpdbg/p8chip.c b/libpdbg/p8chip.c index f6df925..f3e71a0 100644 --- a/libpdbg/p8chip.c +++ b/libpdbg/p8chip.c @@ -155,7 +155,7 @@ static int assert_special_wakeup(struct core *chip) if (i++ > SPECIAL_WKUP_TIMEOUT) { PR_ERROR("Timeout waiting for special wakeup on %s@0x%08" PRIx64 "\n", chip->target.name, - dt_get_address(&chip->target, 0, NULL)); + pdbg_target_address(&chip->target, NULL)); return -1; } } while (!(gp0 & SPECIAL_WKUP_DONE)); @@ -479,7 +479,7 @@ static int p8_thread_probe(struct pdbg_target *target) { struct thread *thread = target_to_thread(target); - thread->id = (dt_get_address(target, 0, NULL) >> 4) & 0xf; + thread->id = (pdbg_target_address(target, NULL) >> 4) & 0xf; thread->status = get_thread_status(thread); return 0; diff --git a/libpdbg/p9chip.c b/libpdbg/p9chip.c index 6a2f434..2411103 100644 --- a/libpdbg/p9chip.c +++ b/libpdbg/p9chip.c @@ -527,7 +527,7 @@ static int p9_core_probe(struct pdbg_target *target) if (i++ > SPECIAL_WKUP_TIMEOUT) { PR_ERROR("Timeout waiting for special wakeup on %s@0x%08" PRIx64 "\n", target->name, - dt_get_address(target, 0, NULL)); + pdbg_target_address(target, NULL)); break; } } while (!(value & SPECIAL_WKUP_DONE)); diff --git a/libpdbg/target.c b/libpdbg/target.c index d8d699f..5599d78 100644 --- a/libpdbg/target.c +++ b/libpdbg/target.c @@ -24,7 +24,7 @@ static struct pdbg_target *get_class_target_addr(struct pdbg_target *target, con if (target->translate) *addr = target->translate(target, *addr); else - *addr += dt_get_address(target, 0, NULL); + *addr += pdbg_target_address(target, NULL); /* Keep walking the tree translating addresses */ target = target->parent;
Clean up the target addressing functions and rename them to be consistent with other libpdbg function names. Signed-off-by: Alistair Popple <alistair@popple.id.au> --- libpdbg/cfam.c | 4 ++-- libpdbg/device.c | 11 +++++------ libpdbg/device.h | 7 ------- libpdbg/i2c.c | 2 +- libpdbg/libpdbg.h | 4 +++- libpdbg/p8chip.c | 4 ++-- libpdbg/p9chip.c | 2 +- libpdbg/target.c | 2 +- 8 files changed, 15 insertions(+), 21 deletions(-)