static int __init rcar_gen2_regulator_quirk(void)
{
struct regulator_quirk *quirk, *pos, *tmp;
- struct of_phandle_args *argsa, *argsb;
+ struct of_phandle_args *args;
const struct of_device_id *id;
struct device_node *np;
u32 mon, addr;
goto err_mem;
}
- argsa = &quirk->irq_args;
+ args = &quirk->irq_args;
memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg));
quirk->id = id;
quirk->np = of_node_get(np);
quirk->i2c_msg.addr = addr;
- ret = of_irq_parse_one(np, 0, argsa);
+ ret = of_irq_parse_one(np, 0, args);
if (ret) { /* Skip invalid entry and continue */
of_node_put(np);
kfree(quirk);
}
list_for_each_entry(pos, &quirk_list, list) {
- argsb = &pos->irq_args;
-
- if (argsa->args_count != argsb->args_count)
- continue;
-
- ret = memcmp(argsa->args, argsb->args,
- argsa->args_count *
- sizeof(argsa->args[0]));
- if (!ret) {
+ if (of_phandle_args_equal(args, &pos->irq_args)) {
pos->shared = true;
quirk->shared = true;
}