Hi Ezequiel, On Wed, Feb 06, 2019 at 07:59:43PM -0300, Ezequiel Garcia wrote: > > + csi->isp_clk = devm_clk_get(&pdev->dev, "isp"); > > + if (IS_ERR(csi->isp_clk)) { > > + dev_err(&pdev->dev, "Couldn't get our ISP clock\n"); > > + return PTR_ERR(csi->isp_clk); > > + } > > + > > + csi->mod_clk = devm_clk_get(&pdev->dev, "mod"); > > + if (IS_ERR(csi->mod_clk)) { > > + dev_err(&pdev->dev, "Couldn't get our mod clock\n"); > > + return PTR_ERR(csi->mod_clk); > > + } > > + > > + csi->ram_clk = devm_clk_get(&pdev->dev, "ram"); > > + if (IS_ERR(csi->ram_clk)) { > > + dev_err(&pdev->dev, "Couldn't get our ram clock\n"); > > + return PTR_ERR(csi->ram_clk); > > + } > > + > > Minor comment: perhaps you can take advantage > of the clock bulk API and simplify the clock management. Our clocks have usually very different usages for each IP (the RAM controls the DMA side of the IP, the mod one controls the "logic" part of it, the bus one the register, etc.) so they needed to be handled quite differently. I'd rather stick with the current API. Thanks! Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com