On Thu, Sep 3, 2020 at 3:54 AM Dmitry Osipenko <digetx@xxxxxxxxx> wrote: > > The driver's probe function code is difficult to read and follow. This > patch reorders code of the probe function, forming logical groups that are > easy to work with. The clock and hardware initializations are factored > out into separate functions in order to keep code clean and ease error > unwinding. > > Driver now makes use of devm_platform_get_and_ioremap_resource() and > platform_get_irq() which are replacing boilerplate parts of the code. > > The dev_err_probe() is now used for reset control retrieval because reset > is now requested before clocks, and thus, BPMP driver that provides reset > controls for newer SoCs may cause the probe defer. > The error message of devm_request_irq() is removed because this function > takes care of printing the message by itself. I see no evidence of this. ... > + of_property_read_u32(np, "clock-frequency", &bus_clk_rate); > + i2c_dev->bus_clk_rate = bus_clk_rate; Hmm... I dunno if Wolfram is going to implement a special helper exactly for this. I remember we discussed that with him during v5.8 (?) times. ... > +static int tegra_i2c_init_clocks(struct tegra_i2c_dev *i2c_dev) Hmm... Don't we have something like devm_clk_bulk_get_all() or so? -- With Best Regards, Andy Shevchenko