[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <eff04c4e-a2b1-4664-bec1-cebc367a4ff4@linaro.org>
Date: Fri, 15 Sep 2023 16:15:42 +0200
From: Konrad Dybcio <konrad.dybcio@...aro.org>
To: Bryan O'Donoghue <bryan.odonoghue@...aro.org>,
Stanimir Varbanov <stanimir.k.varbanov@...il.com>,
Vikash Garodia <quic_vgarodia@...cinc.com>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Dikshita Agarwal <quic_dikshita@...cinc.com>,
Philipp Zabel <p.zabel@...gutronix.de>
Cc: Marijn Suijten <marijn.suijten@...ainline.org>,
Stanimir Varbanov <stanimir.varbanov@...aro.org>,
Mauro Carvalho Chehab <mchehab+huawei@...nel.org>,
linux-media@...r.kernel.org, linux-arm-msm@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH RFT 00/20] Venus cleanups
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@...aro.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@...aro.org
> Grabbing thread from lore.kernel.org/all/20230911-topic-mars-v1-0-a7d38bf87bdb@...aro.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@...aro.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
Powered by blists - more mailing lists