[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACRpkdasbXuqUkO3NjMGBU_ePEBT23BS1eP-bigB0_g494LgvQ@mail.gmail.com>
Date: Fri, 23 Aug 2019 11:19:42 +0200
From: Linus Walleij <linus.walleij@...aro.org>
To: Dinh Nguyen <dinguyen@...nel.org>,
Philipp Zabel <p.zabel@...gutronix.de>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>, Rob Herring <robh@...nel.org>,
Russell King <linux@...linux.org.uk>,
Frank Rowand <frowand.list@...il.com>,
Kees Cook <keescook@...omium.org>,
Anton Vorontsov <anton@...msg.org>,
Colin Cross <ccross@...roid.com>,
Tony Luck <tony.luck@...el.com>,
Daniel Thompson <daniel.thompson@...aro.org>,
Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>
Subject: Re: [RESEND PATCHv4 1/1] drivers/amba: add reset control to amba bus probe
On Tue, Aug 20, 2019 at 4:58 PM Dinh Nguyen <dinguyen@...nel.org> wrote:
> @@ -401,6 +402,26 @@ static int amba_device_try_add(struct amba_device *dev, struct resource *parent)
> ret = amba_get_enable_pclk(dev);
> if (ret == 0) {
> u32 pid, cid;
> + int count;
> + struct reset_control *rstc;
> +
> + /*
> + * Find reset control(s) of the amba bus and de-assert them.
> + */
> + count = reset_control_get_count(&dev->dev);
> + while (count > 0) {
> + rstc = of_reset_control_get_shared_by_index(dev->dev.of_node, count - 1);
> + if (IS_ERR(rstc)) {
> + if (PTR_ERR(rstc) == -EPROBE_DEFER)
> + ret = -EPROBE_DEFER;
> + else
> + dev_err(&dev->dev, "Can't get amba reset!\n");
> + break;
> + }
> + reset_control_deassert(rstc);
> + reset_control_put(rstc);
> + count--;
> + }
I'm not normally a footprint person, but the looks of the stubs in
<linux/reset.h> makes me suspicious whether this will have zero impact
in size on platforms without reset controllers.
Can you just ls -al on the kernel without CONFIG_RESET_CONTROLLER
before and after this patch and ascertain that it has zero footprint effect?
If it doesn't I'd sure like to break this into its own function and
stick a if (!IS_ENABLED(CONFIG_RESET_CONTROLLER)) return 0;
in there to make sure the compiler drops it.
Also it'd be nice to get Philipp's ACK on the semantics, though they
look correct to me.
Yours,
Linus Walleij
Powered by blists - more mailing lists