On Tue, Mar 10, 2020 at 02:46:02PM +0100, Robert Foss wrote: > Add devicetree match table, and enable ov8856_probe() > to initialize power, clocks and reset pins. ... > +#define OV8856_NUM_SUPPLIES ARRAY_SIZE(ov8856_supply_names) Use ARRAY_SIZE() directly. Have you seen Sakari's comments? Sakari, do I have déjà vu or you indeed commented this driver? ... > + gpiod_set_value_cansleep(ov8856->n_shutdn_gpio, GPIOD_OUT_LOW); > + gpiod_set_value_cansleep(ov8856->n_shutdn_gpio, GPIOD_OUT_HIGH); Yes, seems this one is inverted. ... > +{ > + gpiod_set_value_cansleep(ov8856->n_shutdn_gpio, GPIOD_OUT_LOW); > + regulator_bulk_disable(OV8856_NUM_SUPPLIES, ov8856->supplies); > + clk_disable_unprepare(ov8856->xvclk); > +} > + > + One blank line is enough. ... > + ov8856->xvclk = devm_clk_get(&client->dev, "xvclk"); > + if (IS_ERR(ov8856->xvclk)) { > + dev_err(&client->dev, "failed to get xvclk\n"); > + return -EINVAL; > + } Previously it worked without clock provider, now you make a dependency. This won't work. -- With Best Regards, Andy Shevchenko