All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
To: Tomasz Figa <tfiga@chromium.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	vgarodia@codeaurora.org
Subject: Re: [PATCH v2 11/29] venus: venc,vdec: adds clocks needed for venus 4xx
Date: Mon, 28 May 2018 11:47:15 +0300	[thread overview]
Message-ID: <3a892dd5-0744-c289-e258-099d531d5abd@linaro.org> (raw)
In-Reply-To: <CAAFQd5BDZztVT5KT_HX8SfPuHRmXaEg2VGVCOabWqL7F9Qq6Ew@mail.gmail.com>

Hi Tomasz,

On 05/24/2018 09:11 AM, Tomasz Figa wrote:
> Hi Stanimir,
> 
> On Tue, May 15, 2018 at 5:10 PM Stanimir Varbanov <
> stanimir.varbanov@linaro.org> wrote:
> 
>> This extends the clocks number to support suspend and resume
>> on Venus version 4xx.
> 
>> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
>> ---
>>   drivers/media/platform/qcom/venus/core.h |  4 +--
>>   drivers/media/platform/qcom/venus/vdec.c | 42
> ++++++++++++++++++++++++++------
>>   drivers/media/platform/qcom/venus/venc.c | 42
> ++++++++++++++++++++++++++------
>>   3 files changed, 72 insertions(+), 16 deletions(-)
> 
>> diff --git a/drivers/media/platform/qcom/venus/core.h
> b/drivers/media/platform/qcom/venus/core.h
>> index 8d3e150800c9..b5b9a84e9155 100644
>> --- a/drivers/media/platform/qcom/venus/core.h
>> +++ b/drivers/media/platform/qcom/venus/core.h
>> @@ -92,8 +92,8 @@ struct venus_core {
>>          void __iomem *base;
>>          int irq;
>>          struct clk *clks[VIDC_CLKS_NUM_MAX];
>> -       struct clk *core0_clk;
>> -       struct clk *core1_clk;
>> +       struct clk *core0_clk, *core0_bus_clk;
>> +       struct clk *core1_clk, *core1_bus_clk;
>>          struct video_device *vdev_dec;
>>          struct video_device *vdev_enc;
>>          struct v4l2_device v4l2_dev;
>> diff --git a/drivers/media/platform/qcom/venus/vdec.c
> b/drivers/media/platform/qcom/venus/vdec.c
>> index 261a51adeef2..c45452634e7e 100644
>> --- a/drivers/media/platform/qcom/venus/vdec.c
>> +++ b/drivers/media/platform/qcom/venus/vdec.c
>> @@ -1081,12 +1081,18 @@ static int vdec_probe(struct platform_device
> *pdev)
>>          if (!core)
>>                  return -EPROBE_DEFER;
> 
>> -       if (core->res->hfi_version == HFI_VERSION_3XX) {
>> +       if (IS_V3(core) || IS_V4(core)) {
>>                  core->core0_clk = devm_clk_get(dev, "core");
>>                  if (IS_ERR(core->core0_clk))
>>                          return PTR_ERR(core->core0_clk);
>>          }
> 
>> +       if (IS_V4(core)) {
>> +               core->core0_bus_clk = devm_clk_get(dev, "bus");
>> +               if (IS_ERR(core->core0_bus_clk))
>> +                       return PTR_ERR(core->core0_bus_clk);
>> +       }
>> +
> 
> Rather than doing this conditional dance, wouldn't it make more sense to
> just list all the clocks in variant data struct and use clk_bulk_get()?

Do you mean the same as it is done for venus/core.c ?

> 
>>          platform_set_drvdata(pdev, core);
> 
>>          vdev = video_device_alloc();
>> @@ -1132,12 +1138,23 @@ static __maybe_unused int
> vdec_runtime_suspend(struct device *dev)
>>   {
>>          struct venus_core *core = dev_get_drvdata(dev);
> 
>> -       if (core->res->hfi_version == HFI_VERSION_1XX)
>> +       if (IS_V1(core))
>>                  return 0;
> 
>> -       writel(0, core->base + WRAPPER_VDEC_VCODEC_POWER_CONTROL);
>> +       if (IS_V3(core))
>> +               writel(0, core->base + WRAPPER_VDEC_VCODEC_POWER_CONTROL);
>> +       else if (IS_V4(core))
>> +               writel(0, core->base +
> WRAPPER_VCODEC0_MMCC_POWER_CONTROL);
>> +
>> +       if (IS_V4(core))
>> +               clk_disable_unprepare(core->core0_bus_clk);
>> +
>>          clk_disable_unprepare(core->core0_clk);
>> -       writel(1, core->base + WRAPPER_VDEC_VCODEC_POWER_CONTROL);
>> +
>> +       if (IS_V3(core))
>> +               writel(1, core->base + WRAPPER_VDEC_VCODEC_POWER_CONTROL);
>> +       else if (IS_V4(core))
>> +               writel(1, core->base +
> WRAPPER_VCODEC0_MMCC_POWER_CONTROL);
> 
> Almost every step here differs between version. I'd suggest splitting this
> into separate functions for both versions.

I think it will be better to squash this patch with 13/29.


-- 
regards,
Stan

  reply	other threads:[~2018-05-28  8:47 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-15  7:58 [PATCH v2 00/29] Venus updates Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 01/29] venus: hfi_msgs: correct pointer increment Stanimir Varbanov
2018-05-18  8:57   ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 02/29] venus: hfi: preparation to support venus 4xx Stanimir Varbanov
2018-05-18  9:44   ` Tomasz Figa
2018-05-21 14:25     ` Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 03/29] venus: hfi: update sequence event to handle more properties Stanimir Varbanov
2018-05-18 13:53   ` Tomasz Figa
2018-05-21 14:31     ` Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 04/29] venus: hfi_cmds: add set_properties for 4xx version Stanimir Varbanov
2018-05-18 14:16   ` Tomasz Figa
2018-05-21 14:53     ` Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 05/29] venus: hfi: support session continue " Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 06/29] venus: hfi: handle buffer output2 type as well Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 07/29] venus: hfi_venus: add halt AXI support for Venus 4xx Stanimir Varbanov
2018-05-18 14:23   ` Tomasz Figa
2018-05-21 12:17     ` Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 08/29] venus: hfi_venus: fix suspend function for venus 3xx versions Stanimir Varbanov
2018-05-18 15:14   ` Tomasz Figa
2018-05-21 12:18     ` Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 09/29] venus: hfi_venus: move set of default properties to core init Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 10/29] venus: hfi_venus: add suspend functionality for Venus 4xx Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 11/29] venus: venc,vdec: adds clocks needed for venus 4xx Stanimir Varbanov
2018-05-24  6:11   ` Tomasz Figa
2018-05-28  8:47     ` Stanimir Varbanov [this message]
2018-05-31  6:50       ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 12/29] venus: add common capability parser Stanimir Varbanov
2018-05-24 14:16   ` Tomasz Figa
2018-05-30 16:21     ` Stanimir Varbanov
2018-05-31  7:06       ` Tomasz Figa
2018-07-02  9:23         ` Tomasz Figa
2018-07-02  9:59           ` Stanimir Varbanov
2018-07-02 10:05             ` Tomasz Figa
2018-07-02 11:00               ` Stanimir Varbanov
2018-07-05  9:45               ` Stanimir Varbanov
2018-07-05 10:14                 ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 13/29] venus: helpers: make a commmon function for power_enable Stanimir Varbanov
2018-05-31  7:34   ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 14/29] venus: core: delete not used flag for buffer mode Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 15/29] venus: helpers: rename a helper function and use buffer mode from caps Stanimir Varbanov
2018-05-31  7:59   ` Tomasz Figa
2018-05-31  8:23     ` Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 16/29] venus: add a helper function to set dynamic buffer mode Stanimir Varbanov
2018-05-31  8:56   ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 17/29] venus: add helper function to set actual buffer size Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 18/29] venus: delete no longer used bufmode flag from instance Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 19/29] venus: helpers: add buffer type argument to a helper Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 20/29] venus: helpers: add a new helper to set raw format Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 21/29] venus: helpers,vdec,venc: add helpers to set work mode and core usage Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 22/29] venus: helpers: extend set_num_bufs helper with one more argument Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 23/29] venus: helpers: add a helper to return opb buffer sizes Stanimir Varbanov
2018-05-31  9:20   ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 24/29] venus: vdec: get required input buffers as well Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 25/29] venus: vdec: new function for output configuration Stanimir Varbanov
2018-05-31  9:27   ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 26/29] venus: move frame size calculations in common place Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 27/29] venus: implementing multi-stream support Stanimir Varbanov
2018-05-15  8:17   ` Hans Verkuil
2018-05-15  9:40     ` Stanimir Varbanov
2018-05-18 10:00   ` [PATCH v3 " Stanimir Varbanov
2018-05-31  9:51   ` [PATCH v2 " Tomasz Figa
2018-07-02  9:30     ` Tomasz Figa
2018-07-02 12:43     ` Stanimir Varbanov
2018-07-02 12:52       ` Tomasz Figa
2018-05-15  7:58 ` [PATCH v2 28/29] venus: add sdm845 compatible and resource data Stanimir Varbanov
2018-05-15  7:58 ` [PATCH v2 29/29] venus: add HEVC codec support Stanimir Varbanov
2018-05-15  8:19 ` [PATCH v2 00/29] Venus updates Hans Verkuil
2018-05-31  9:55 ` Tomasz Figa

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=3a892dd5-0744-c289-e258-099d531d5abd@linaro.org \
    --to=stanimir.varbanov@linaro.org \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=tfiga@chromium.org \
    --cc=vgarodia@codeaurora.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.