>> + i2c_ic->irq_domain = irq_domain_add_linear( >> + node, ASPEED_I2C_IC_NUM_BUS, >> + &aspeed_i2c_ic_irq_domain_ops, NULL); > > nit: can you have at least one argument following the function name? > Even if checkpatch shouts out you?
Makes no difference to me. > >> + if (!i2c_ic->irq_domain) >> + return -ENOMEM; > > All these error paths are leaking the initial memory allocation. Whoops, forgot I am not using devm_*. > >> + >> + i2c_ic->irq_domain->name = "aspeed-i2c-domain"; >> + >> + irq_set_chained_handler_and_data(i2c_ic->parent_irq, >> + aspeed_i2c_ic_irq_handler, i2c_ic); >> + >> + pr_info("i2c controller registered, irq %d\n", i2c_ic->parent_irq); >> + >> + return 0; >> +} >> + >> +IRQCHIP_DECLARE(ast2400_i2c_ic, "aspeed,ast2400-i2c-ic", >> aspeed_i2c_ic_of_init); >> +IRQCHIP_DECLARE(ast2500_i2c_ic, "aspeed,ast2500-i2c-ic", >> aspeed_i2c_ic_of_init); >> > > Once you've fixed the trivial bug above, this should be good to go. > What's the merging strategy? Can I take the initial two patches, and let > someone else deal with the rest? Or do you want the whole series to be > kept together? I think it makes most sense to keep it together and let Wolfram merge the whole thing since the I2C patches won't work without this and I would not want to make the merging process unnecessarily complicated.