}
EXPORT_SYMBOL(abx500_startup_irq_enabled);
-void abx500_dump_all_banks(void)
+int abx500_dump_all_banks(void)
{
struct abx500_ops *ops;
- struct device dummy_child = {NULL};
+ struct device *dummy_child;
struct abx500_device_entry *dev_entry;
+ dummy_child = kzalloc(sizeof(struct device), GFP_KERNEL);
+ if (!dummy_child)
+ return -ENOMEM;
list_for_each_entry(dev_entry, &abx500_list, list) {
- dummy_child.parent = dev_entry->dev;
+ dummy_child->parent = dev_entry->dev;
ops = &dev_entry->ops;
if ((ops != NULL) && (ops->dump_all_banks != NULL))
- ops->dump_all_banks(&dummy_child);
+ ops->dump_all_banks(dummy_child);
}
+ kfree(dummy_child);
}
EXPORT_SYMBOL(abx500_dump_all_banks);
int abx500_get_chip_id(struct device *dev);
int abx500_event_registers_startup_state_get(struct device *dev, u8 *event);
int abx500_startup_irq_enabled(struct device *dev, unsigned int irq);
-void abx500_dump_all_banks(void);
+int abx500_dump_all_banks(void);
struct abx500_ops {
int (*get_chip_id) (struct device *);