From: Florian Fainelli <f.fainelli@gmail.com> To: Eric Anholt <eric@anholt.net>, dri-devel@lists.freedesktop.org, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3 v2] drm/vc4: Turn the V3D clock on at runtime. Date: Tue, 18 Apr 2017 16:48:56 -0700 [thread overview] Message-ID: <7906db2f-cfb8-e2e6-5869-b6e829dd8c6f@gmail.com> (raw) In-Reply-To: <20170418233805.15767-1-eric@anholt.net> On 04/18/2017 04:38 PM, Eric Anholt wrote: > For the Raspberry Pi's bindings, the power domain also implicitly > turns on the clock and deasserts reset, but for the new Cygnus port we > start representing the clock in the devicetree. > > v2: Document the clock-names property, check for -ENOENT for no clock > in DT. > > Signed-off-by: Eric Anholt <eric@anholt.net> > --- > + if (v3d->clk) > + clk_disable_unprepare(v3d->clk); The clock API allows you to pass a NULL clk and do nothing in these cases which is what you seem to have done a few lines below, you could simplify these checks? > + > return 0; > } > > @@ -318,6 +322,13 @@ static int vc4_v3d_runtime_resume(struct device *dev) > if (ret) > return ret; > > + if (v3d->clk) { > + int ret = clk_prepare_enable(v3d->clk); > + > + if (ret != 0) > + return ret; > + } > + > vc4_v3d_init_hw(vc4->dev); > vc4_irq_postinstall(vc4->dev); > > @@ -348,15 +359,40 @@ static int vc4_v3d_bind(struct device *dev, struct device *master, void *data) > vc4->v3d = v3d; > v3d->vc4 = vc4; > > + v3d->clk = devm_clk_get(dev, "v3d_clk"); > + if (IS_ERR(v3d->clk)) { > + int ret = PTR_ERR(v3d->clk); > + > + if (ret == -ENOENT) { > + /* bcm2835 didn't have a clock reference in the DT. */ > + ret = 0; > + v3d->clk = NULL; > + } else { > + if (ret != -EPROBE_DEFER) > + dev_err(dev, "Failed to get V3D clock: %d\n", > + ret); > + return ret; > + } > + } > + > if (V3D_READ(V3D_IDENT0) != V3D_EXPECTED_IDENT0) { > DRM_ERROR("V3D_IDENT0 read 0x%08x instead of 0x%08x\n", > V3D_READ(V3D_IDENT0), V3D_EXPECTED_IDENT0); > return -EINVAL; > } > > + if (v3d->clk) { > + ret = clk_prepare_enable(v3d->clk); > + if (ret != 0) > + return ret; > + } > + > ret = vc4_allocate_bin_bo(drm); > - if (ret) > + if (ret) { > + if (v3d->clk) > + clk_disable_unprepare(v3d->clk); > return ret; > + } > > /* Reset the binner overflow address/size at setup, to be sure > * we don't reuse an old one. > -- Florian
next prev parent reply other threads:[~2017-04-18 23:49 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-18 19:11 [PATCH 1/3] " Eric Anholt 2017-04-18 19:11 ` [PATCH 2/3] drm/vc4: Don't try to initialize FBDEV if we're only bound to V3D Eric Anholt 2017-04-19 4:59 ` Daniel Vetter 2017-04-19 17:55 ` Eric Anholt 2017-04-19 19:36 ` Daniel Vetter 2017-04-21 22:53 ` Eric Anholt 2017-04-24 14:26 ` Alex Deucher 2017-05-02 8:16 ` Daniel Vetter 2017-04-18 19:11 ` [PATCH 3/3] drm/vc4: Add specific compatible strings for Cygnus Eric Anholt 2017-04-20 20:33 ` Rob Herring 2017-04-18 19:23 ` [PATCH 1/3] drm/vc4: Turn the V3D clock on at runtime Eric Anholt 2017-04-18 23:38 ` [PATCH 1/3 v2] " Eric Anholt 2017-04-18 23:48 ` Florian Fainelli [this message] 2017-04-19 0:02 ` Eric Anholt 2017-04-19 0:02 ` Eric Anholt 2017-04-24 20:12 ` [PATCH 1/3 v3] " Eric Anholt 2017-04-28 18:29 ` Rob Herring 2017-04-28 21:41 ` Eric Anholt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=7906db2f-cfb8-e2e6-5869-b6e829dd8c6f@gmail.com \ --to=f.fainelli@gmail.com \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=eric@anholt.net \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=robh+dt@kernel.org \ --subject='Re: [PATCH 1/3 v2] drm/vc4: Turn the V3D clock on at runtime.' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).