Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Konrad Dybcio <konrad.dybcio@linaro.org>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	Stanimir Varbanov <stanimir.k.varbanov@gmail.com>,
	Vikash Garodia <quic_vgarodia@quicinc.com>,
	Andy Gross <agross@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Dikshita Agarwal <quic_dikshita@quicinc.com>,
	Philipp Zabel <p.zabel@pengutronix.de>
Cc: Marijn Suijten <marijn.suijten@somainline.org>,
	Stanimir Varbanov <stanimir.varbanov@linaro.org>,
	Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFT 00/20] Venus cleanups
Date: Fri, 15 Sep 2023 16:15:42 +0200	[thread overview]
Message-ID: <eff04c4e-a2b1-4664-bec1-cebc367a4ff4@linaro.org> (raw)
In-Reply-To: <d8d80db6-7010-47c1-a068-f73fbcbc96a0@linaro.org>

On 15.09.2023 16:13, Bryan O'Donoghue wrote:
> On 11/09/2023 16:10, Konrad Dybcio wrote:
>> With the driver supporting multiple generations of hardware, some mold
>> has definitely grown over the code..
>>
>> This series attempts to amend this situation a bit by commonizing some
>> code paths and fixing some bugs while at it.
>>
>> Only tested on SM8250.
>>
>> Definitely needs testing on:
>>
>> - SDM845 with old bindings
>> - SDM845 with new bindings or 7180
>> - MSM8916
>> - MSM8996
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
>> ---
>> Konrad Dybcio (20):
>>        media: venus: pm_helpers: Only set rate of the core clock in core_clks_enable
>>        media: venus: pm_helpers: Rename core_clks_get to venus_clks_get
>>        media: venus: pm_helpers: Add kerneldoc to venus_clks_get()
>>        media: venus: core: Set OPP clkname in a common code path
>>        media: venus: pm_helpers: Kill dead code
>>        media: venus: pm_helpers: Move reset acquisition to common code
>>        media: venus: pm_helpers: Use reset_bulk API
>>        media: venus: core: Constify all members of the resource struct
>>        media: venus: core: Deduplicate OPP genpd names
>>        media: venus: core: Get rid of vcodec_num
>>        media: venus: core: Drop cache properties in resource struct
>>        media: venus: core: Use GENMASK for dma_mask
>>        media: venus: core: Remove cp_start
>>        media: venus: pm_helpers: Commonize core_power
>>        media: venus: pm_helpers: Remove pm_ops->core_put
>>        media: venus: core: Define a pointer to core->res
>>        media: venus: pm_helpers: Simplify vcodec clock handling
>>        media: venus: pm_helpers: Commonize getting clocks and GenPDs
>>        media: venus: pm_helpers: Commonize vdec_get()
>>        media: venus: pm_helpers: Commonize venc_get()
>>
>>   drivers/media/platform/qcom/venus/core.c       | 138 ++++-------
>>   drivers/media/platform/qcom/venus/core.h       |  64 +++--
>>   drivers/media/platform/qcom/venus/firmware.c   |   3 +-
>>   drivers/media/platform/qcom/venus/hfi_venus.c  |   7 +-
>>   drivers/media/platform/qcom/venus/pm_helpers.c | 328 +++++++++----------------
>>   drivers/media/platform/qcom/venus/pm_helpers.h |  10 +-
>>   drivers/media/platform/qcom/venus/vdec.c       |   9 +-
>>   drivers/media/platform/qcom/venus/venc.c       |   9 +-
>>   8 files changed, 213 insertions(+), 355 deletions(-)
>> ---
>> base-commit: 7bc675554773f09d88101bf1ccfc8537dc7c0be9
>> change-id: 20230911-topic-mars-e60bb2269411
>>
>> Best regards,
> 
> b4 shazam 20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org
> Grabbing thread from lore.kernel.org/all/20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org/t.mbox.gz
> Checking for newer revisions
> Grabbing search results from lore.kernel.org
> Analyzing 27 messages in the thread
> Checking attestation on all messages, may take a moment...
> ---
>   [PATCH 1/20] media: venus: pm_helpers: Only set rate of the core clock in core_clks_enable
>   [PATCH 2/20] media: venus: pm_helpers: Rename core_clks_get to venus_clks_get
>   [PATCH 3/20] media: venus: pm_helpers: Add kerneldoc to venus_clks_get()
>   [PATCH 4/20] media: venus: core: Set OPP clkname in a common code path
>   [PATCH 5/20] media: venus: pm_helpers: Kill dead code
>   [PATCH 6/20] media: venus: pm_helpers: Move reset acquisition to common code
>   [PATCH 7/20] media: venus: pm_helpers: Use reset_bulk API
>   [PATCH 8/20] media: venus: core: Constify all members of the resource struct
>   [PATCH 9/20] media: venus: core: Deduplicate OPP genpd names
>   [PATCH 10/20] media: venus: core: Get rid of vcodec_num
>   [PATCH 11/20] media: venus: core: Drop cache properties in resource struct
>   [PATCH 12/20] media: venus: core: Use GENMASK for dma_mask
>   [PATCH 13/20] media: venus: core: Remove cp_start
>   [PATCH 14/20] media: venus: pm_helpers: Commonize core_power
>   [PATCH 15/20] media: venus: pm_helpers: Remove pm_ops->core_put
>   [PATCH 16/20] media: venus: core: Define a pointer to core->res
>   [PATCH 17/20] media: venus: pm_helpers: Simplify vcodec clock handling
>   [PATCH 18/20] media: venus: pm_helpers: Commonize getting clocks and GenPDs
>   [PATCH 19/20] media: venus: pm_helpers: Commonize vdec_get()
>   [PATCH 20/20] media: venus: pm_helpers: Commonize venc_get()
>   ---
>   ✗ No key: ed25519/konrad.dybcio@linaro.org
>   ---
>   NOTE: install dkimpy for DKIM signature verification
> ---
> Total patches: 20
> ---
>  Base: base-commit 7bc675554773f09d88101bf1ccfc8537dc7c0be9 not known, ignoring
> Applying: media: venus: pm_helpers: Only set rate of the core clock in core_clks_enable
> Applying: media: venus: pm_helpers: Rename core_clks_get to venus_clks_get
> Applying: media: venus: pm_helpers: Add kerneldoc to venus_clks_get()
> Applying: media: venus: core: Set OPP clkname in a common code path
> Applying: media: venus: pm_helpers: Kill dead code
> Applying: media: venus: pm_helpers: Move reset acquisition to common code
> Applying: media: venus: pm_helpers: Use reset_bulk API
> Applying: media: venus: core: Constify all members of the resource struct
> Applying: media: venus: core: Deduplicate OPP genpd names
> Applying: media: venus: core: Get rid of vcodec_num
> Applying: media: venus: core: Drop cache properties in resource struct
> Applying: media: venus: core: Use GENMASK for dma_mask
> Applying: media: venus: core: Remove cp_start
> Applying: media: venus: pm_helpers: Commonize core_power
> Applying: media: venus: pm_helpers: Remove pm_ops->core_put
> Applying: media: venus: core: Define a pointer to core->res
> Applying: media: venus: pm_helpers: Simplify vcodec clock handling
> Applying: media: venus: pm_helpers: Commonize getting clocks and GenPDs
> Applying: media: venus: pm_helpers: Commonize vdec_get()
> Applying: media: venus: pm_helpers: Commonize venc_get()
> 
>   MODPOST Module.symvers
> ^[[BERROR: modpost: "vcodec_clks_get" [drivers/media/platform/qcom/venus/venus-dec.ko] undefined!
> ERROR: modpost: "vcodec_clks_get" [drivers/media/platform/qcom/venus/venus-enc.ko] undefined!
> make[3]: *** [/home/deckard/Development/qualcomm/qlt-kernel/scripts/Makefile.modpost:145: Module.symvers] Error 1
> make[2]: *** [/home/deckard/Development/qualcomm/qlt-kernel/Makefile:1865: modpost] Error 2
> make[1]: *** [/home/deckard/Development/qualcomm/qlt-kernel/Makefile:234: __sub-make] Error 2
Yeah I noticed after sending..

I have some fixups locally, see output of `b4 prep --compare-to v1`:

 1:  ef4effbdd61b =  1:  07193da8f8b2 media: venus: pm_helpers: Only set rate of the core clock in core_clks_enable
 2:  46a6466fff36 =  2:  c8598ffa711a media: venus: pm_helpers: Rename core_clks_get to venus_clks_get
 3:  733411cd167d =  3:  bcc0385fe8a3 media: venus: pm_helpers: Add kerneldoc to venus_clks_get()
 4:  42f089b8ee90 =  4:  181a2a4f7a4b media: venus: core: Set OPP clkname in a common code path
 5:  e0cd37c576cf =  5:  182ba8feb561 media: venus: pm_helpers: Kill dead code
 6:  232c32d813b8 =  6:  06fd32b2f112 media: venus: pm_helpers: Move reset acquisition to common code
 7:  0ab76762c149 =  7:  f0aaaca1fe70 media: venus: pm_helpers: Use reset_bulk API
 8:  e47564b87e77 =  8:  2ddb02b05d0f media: venus: core: Constify all members of the resource struct
 9:  c5e157de604e =  9:  918f3dc5f2f6 media: venus: core: Deduplicate OPP genpd names
10:  3500b515c0cb = 10:  ee194c584ce0 media: venus: core: Get rid of vcodec_num
11:  b179e47b6db6 ! 11:  81fa7517b057 media: venus: core: Drop cache properties in resource struct
    @@ drivers/media/platform/qcom/venus/core.h: struct venus_resources {
        const u32 cp_nonpixel_start;
     
      ## drivers/media/platform/qcom/venus/hfi_venus.c ##
    +@@ drivers/media/platform/qcom/venus/hfi_venus.c: static void venus_process_msg_sys_error(struct venus_hfi_device *hdev,
    + static irqreturn_t venus_isr_thread(struct venus_core *core)
    + {
    +   struct venus_hfi_device *hdev = to_hfi_priv(core);
    +-  const struct venus_resources *res;
    +   void *pkt;
    +   u32 msg_ret;
    + 
    +   if (!hdev)
    +           return IRQ_NONE;
    + 
    +-  res = hdev->core->res;
    +   pkt = hdev->pkt_buf;
    + 
    +-
    +   while (!venus_iface_msgq_read(hdev, pkt)) {
    +           msg_ret = hfi_process_msg_packet(core, pkt);
    +           switch (msg_ret) {
     @@ drivers/media/platform/qcom/venus/hfi_venus.c: static irqreturn_t venus_isr_thread(struct venus_core *core)
                        venus_process_msg_sys_error(hdev, pkt);
                        break;
12:  aa122db08d64 = 12:  8cf3d701f0b4 media: venus: core: Use GENMASK for dma_mask
13:  548235220fcd = 13:  3aa4f40a1818 media: venus: core: Remove cp_start
14:  9fd8a8515795 = 14:  7f65994f7c7c media: venus: pm_helpers: Commonize core_power
15:  09c778667817 = 15:  45c51bcaeb17 media: venus: pm_helpers: Remove pm_ops->core_put
16:  955470ceffa0 = 16:  63aba2146a15 media: venus: core: Define a pointer to core->res
17:  3a6fbeac1f5c = 17:  bafeb6dc5525 media: venus: pm_helpers: Simplify vcodec clock handling
18:  ee1234ce5c19 = 18:  e4500b65ff24 media: venus: pm_helpers: Commonize getting clocks and GenPDs
19:  155ca91c4ece ! 19:  8d86b33d0614 media: venus: pm_helpers: Commonize vdec_get()
    @@ drivers/media/platform/qcom/venus/pm_helpers.c: static int core_clks_set_rate(st
      {
        char buf[13] = { 0 }; /* vcodecX_core\0 */
      
    +@@ drivers/media/platform/qcom/venus/pm_helpers.c: static int vcodec_clks_get(struct venus_core *core, struct device *dev, u8 id)
    + 
    +   return 0;
    + }
    ++EXPORT_SYMBOL_GPL(vcodec_clks_get);
    + 
    + static int vcodec_clks_enable(struct venus_core *core, u8 id)
    + {
     @@ drivers/media/platform/qcom/venus/pm_helpers.c: vcodec_control_v3(struct venus_core *core, u32 session_type, bool enable)
                writel(1, ctrl);
      }


Konrad

      reply	other threads:[~2023-09-15 14:15 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-11 15:10 [PATCH RFT 00/20] Venus cleanups Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 01/20] media: venus: pm_helpers: Only set rate of the core clock in core_clks_enable Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 02/20] media: venus: pm_helpers: Rename core_clks_get to venus_clks_get Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 03/20] media: venus: pm_helpers: Add kerneldoc to venus_clks_get() Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 04/20] media: venus: core: Set OPP clkname in a common code path Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 05/20] media: venus: pm_helpers: Kill dead code Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 06/20] media: venus: pm_helpers: Move reset acquisition to common code Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 07/20] media: venus: pm_helpers: Use reset_bulk API Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 08/20] media: venus: core: Constify all members of the resource struct Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 09/20] media: venus: core: Deduplicate OPP genpd names Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 10/20] media: venus: core: Get rid of vcodec_num Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 11/20] media: venus: core: Drop cache properties in resource struct Konrad Dybcio
2023-09-11 23:53   ` kernel test robot
2023-09-11 15:10 ` [PATCH RFT 12/20] media: venus: core: Use GENMASK for dma_mask Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 13/20] media: venus: core: Remove cp_start Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 14/20] media: venus: pm_helpers: Commonize core_power Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 15/20] media: venus: pm_helpers: Remove pm_ops->core_put Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 16/20] media: venus: core: Define a pointer to core->res Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 17/20] media: venus: pm_helpers: Simplify vcodec clock handling Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 18/20] media: venus: pm_helpers: Commonize getting clocks and GenPDs Konrad Dybcio
2023-09-11 15:10 ` [PATCH RFT 19/20] media: venus: pm_helpers: Commonize vdec_get() Konrad Dybcio
2023-09-13  3:52   ` kernel test robot
2023-09-11 15:10 ` [PATCH RFT 20/20] media: venus: pm_helpers: Commonize venc_get() Konrad Dybcio
2023-09-13 11:24   ` kernel test robot
2023-09-12  6:19 ` [PATCH RFT 00/20] Venus cleanups Bryan O'Donoghue
2023-09-13 12:03   ` Konrad Dybcio
2023-09-13 12:26     ` Bryan O'Donoghue
2023-09-15 14:13 ` Bryan O'Donoghue
2023-09-15 14:15   ` Konrad Dybcio [this message]

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=eff04c4e-a2b1-4664-bec1-cebc367a4ff4@linaro.org \
    --to=konrad.dybcio@linaro.org \
    --cc=agross@kernel.org \
    --cc=andersson@kernel.org \
    --cc=bryan.odonoghue@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=quic_dikshita@quicinc.com \
    --cc=quic_vgarodia@quicinc.com \
    --cc=stanimir.k.varbanov@gmail.com \
    --cc=stanimir.varbanov@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox