mbox series

[v3,00/25] media: venus: Enable 6xx support

Message ID 20210402100648.1815854-1-bryan.odonoghue@linaro.org
Headers show
Series media: venus: Enable 6xx support | expand

Message

Bryan O'Donoghue April 2, 2021, 10:06 a.m. UTC
V3:
- Adds Acked-by as indicated - Stan
- Sets bufreq->size = 0 instead of returning -EINVAL
  in hfi_plat_bufs_v6.c when a buffer type is unknown - Dikshita
- Applies work-mode fix to 4xx and 6xx - Stan

Tested on rb5, rb3 and db410c
https://git.linaro.org/people/bryan.odonoghue/kernel.git/log/?h=tracking-qcomlt-sm8250-venus-integrated-sm8250

yaml: in robh/dt/next
8d3a1cb32124 - (robh/for-next, robh/dt/next) dt-bindings: media: venus: Add sm8250 dt schema (17 hours ago)

dts: Resent based on above robh/dt/next application
https://lore.kernel.org/linux-arm-msm/20210401174256.1810044-1-bryan.odonoghue@linaro.org/T/#t

V2:
- Adds Acked-by as indicated - Stan
- Fixes typo in patch #1 22000000 -> 220000000 - Stan
- Fixes setting of clk_set_rate in core_clks_enable
  unbreaks regression for 1xx/db410c - Stan
- "Add 6xx AXI halt logic"
  * Polled read removed - Stan
  * Redundant comments removed - Stan
  * Delay assocaited with LPI write removed entirely
    experimentation shows a delay is not required - Stan/Bryan
- Unifies intbuf_types_6xx_enc and intbuf_types_6xx_dec into
  intbuf_types_6xx
  Looking at the code the separate arrays was a NOP anyway - Stan/Bryan
- Ensures venus_helper_set_format_constraints() runs for 6xx only
- Differentiates stop address between 6xx and >= 4xx
  0xdeadb000 >= 4xx
  0x00000000 == 6xx - Stan

With the fixes in place for db410c I've verified this code now on
sm8250/rb5 sdm845/rb3 and msm8916/db410c

yaml: pending - acked waiting application
https://www.spinics.net/lists/devicetree/msg406892.html

dts: pending - will resend when above is applied
https://lore.kernel.org/linux-arm-msm/20210222132817.1807788-1-bryan.odonoghue@linaro.org/T/#t

Reference tree:

ssh://git@git.linaro.org/people/bryan.odonoghue/kernel.git / tracking-qcomlt-sm8250-venus

This tree incorporates two sets of patches from Stan - plus the two
yaml/dts sets mentioned above.

svarbanov-linux-tv/venus-for-next-v5.13
svarbanov-linux-tv/venus-msm8916-fixes

There's a small integration error between the 5.13 and msm8916-fixes which
I resolved in favor of the bugfix in 5.13 pending - other than that this
tree and these patches apply on tip-of-tree and run as indicated on rb5/rb3
and db410c.

https://www.spinics.net/lists/linux-arm-msm/msg81291.html

V1:
This series enables support for 6xx venus encode/decode as found on the
sm8250.

The new silicon has different base addresses for existing functional blocks
within the venus address space. We add a base address offset mechanism to
handle this. The offsetting mechanism has been validated on 6xx and 4xx
hardware.

The sm8250 supports:

- h264
- h265
- vp8
- vp9

The driver changes are contingent on yaml and dts patches already
in-flight.

yaml: pending
https://www.spinics.net/lists/devicetree/msg406892.html

dts: pending
https://lore.kernel.org/linux-arm-msm/20210222132817.1807788-1-bryan.odonoghue@linaro.org/T/#t

clk: applied
https://kernel.googlesource.com/pub/scm/linux/kernel/git/clk/linux/+/clk-next

Applies on top of 

https://git.linuxtv.org/svarbanov/media_tree.git / venus-for-next-v5.12-part2

Bryan O'Donoghue (11):
  media: venus: Update v6 buffer descriptors
  media: venus: core: add sm8250 DT compatible and resource data
  media: venus: core: Add io base variables for each block
  media: venus: hfi,pm,firmware: Convert to block relative addressing
  media: venus: core: Add differentiator IS_V6(core)
  media: venus: core: Add an io base for TZ wrapper regs
  media: venus: core: Add an io base for AON regs
  media: venus: core: Hook to V6 base registers when appropriate
  media: venus: hfi: Read WRAPPER_TZ_CPU_STATUS_V6 on 6xx
  media: venus: hfi, vdec: v6 Add IS_V6() to existing IS_V4() if
    locations
  media: venus: pm: Hook 6xx pm ops into 4xx pm ops

Dikshita Agarwal (12):
  media: venus: hfi: Define block offsets for V6 hardware
  media: venus: hfi: Define additional 6xx registers
  media: venus: hfi: Add a 6xx boot logic
  media: venus: hfi: Add 6xx interrupt support
  media: venus: core,pm: Vote for min clk freq during venus boot
  media: venus: hfi: Add 6xx AXI halt logic
  media: venus: pm: Toggle 6xx wrapper power in vcodec_control
  media: venus: firmware: Do not toggle WRAPPER_A9SS_SW_RESET on 6xx
  media: venus: helpers: Add internal buffer list for v6
  media: venus: helpers, hfi, vdec: Set actual plane constraints to FW
  media: venus: hfi: Increase plat_buf_v6 o/p buffer count.
  media: venus: helper: Decide work mode

Stanimir Varbanov (2):
  media: venus: core,pm: Add handling for resets
  media: venus: vdec: Fix decoder cmd STOP issue

 drivers/media/platform/qcom/venus/core.c      |  78 +++++++++
 drivers/media/platform/qcom/venus/core.h      |  19 ++
 drivers/media/platform/qcom/venus/firmware.c  |  34 ++--
 drivers/media/platform/qcom/venus/helpers.c   |  71 +++++++-
 drivers/media/platform/qcom/venus/helpers.h   |   3 +-
 drivers/media/platform/qcom/venus/hfi_cmds.c  |  15 +-
 .../media/platform/qcom/venus/hfi_helper.h    |   9 +-
 .../platform/qcom/venus/hfi_plat_bufs_v6.c    |   6 +-
 .../platform/qcom/venus/hfi_platform_v6.c     | 138 +++++++--------
 drivers/media/platform/qcom/venus/hfi_venus.c | 164 +++++++++++++-----
 .../media/platform/qcom/venus/hfi_venus_io.h  | 118 ++++++++-----
 .../media/platform/qcom/venus/pm_helpers.c    |  92 +++++++++-
 drivers/media/platform/qcom/venus/vdec.c      |  17 +-
 drivers/media/platform/qcom/venus/venc.c      |   2 +-
 14 files changed, 567 insertions(+), 199 deletions(-)

Comments

patchwork-bot+linux-arm-msm@kernel.org May 26, 2021, 7:03 p.m. UTC | #1
Hello:

This series was applied to qcom/linux.git (refs/heads/for-next):

On Fri,  2 Apr 2021 11:06:23 +0100 you wrote:
> V3:

> - Adds Acked-by as indicated - Stan

> - Sets bufreq->size = 0 instead of returning -EINVAL

>   in hfi_plat_bufs_v6.c when a buffer type is unknown - Dikshita

> - Applies work-mode fix to 4xx and 6xx - Stan

> 

> Tested on rb5, rb3 and db410c

> https://git.linaro.org/people/bryan.odonoghue/kernel.git/log/?h=tracking-qcomlt-sm8250-venus-integrated-sm8250

> 

> [...]


Here is the summary with links:
  - [v3,01/25] media: venus: Update v6 buffer descriptors
    https://git.kernel.org/qcom/c/daba0a10c585
  - [v3,02/25] media: venus: core,pm: Add handling for resets
    https://git.kernel.org/qcom/c/3bca43585e22
  - [v3,03/25] media: venus: core: add sm8250 DT compatible and resource data
    https://git.kernel.org/qcom/c/0aeabfa29a9c
  - [v3,04/25] media: venus: core: Add io base variables for each block
    https://git.kernel.org/qcom/c/b4053a2097ec
  - [v3,05/25] media: venus: hfi,pm,firmware: Convert to block relative addressing
    https://git.kernel.org/qcom/c/ff2a7013b3e6
  - [v3,06/25] media: venus: hfi: Define block offsets for V6 hardware
    https://git.kernel.org/qcom/c/3c5e894dd30a
  - [v3,07/25] media: venus: hfi: Define additional 6xx registers
    https://git.kernel.org/qcom/c/7f6631295f46
  - [v3,08/25] media: venus: core: Add differentiator IS_V6(core)
    https://git.kernel.org/qcom/c/ff027906308f
  - [v3,09/25] media: venus: core: Add an io base for TZ wrapper regs
    https://git.kernel.org/qcom/c/94e6ed2b2db3
  - [v3,10/25] media: venus: core: Add an io base for AON regs
    https://git.kernel.org/qcom/c/e6dd8c3adf43
  - [v3,11/25] media: venus: core: Hook to V6 base registers when appropriate
    https://git.kernel.org/qcom/c/3f9acde81d6e
  - [v3,12/25] media: venus: hfi: Add a 6xx boot logic
    https://git.kernel.org/qcom/c/255385ca433c
  - [v3,13/25] media: venus: hfi: Add 6xx interrupt support
    https://git.kernel.org/qcom/c/24fcc0522d87
  - [v3,14/25] media: venus: hfi: Read WRAPPER_TZ_CPU_STATUS_V6 on 6xx
    https://git.kernel.org/qcom/c/e396e75fc254
  - [v3,15/25] media: venus: hfi, vdec: v6 Add IS_V6() to existing IS_V4() if locations
    https://git.kernel.org/qcom/c/7ed9e0b3393c
  - [v3,16/25] media: venus: pm: Hook 6xx pm ops into 4xx pm ops
    https://git.kernel.org/qcom/c/f24afa95bb2e
  - [v3,17/25] media: venus: core,pm: Vote for min clk freq during venus boot
    https://git.kernel.org/qcom/c/c22b1a29497c
  - [v3,18/25] media: venus: hfi: Add 6xx AXI halt logic
    https://git.kernel.org/qcom/c/4b0b6e147dc9
  - [v3,19/25] media: venus: pm: Toggle 6xx wrapper power in vcodec_control
    https://git.kernel.org/qcom/c/64afe82740b3
  - [v3,20/25] media: venus: firmware: Do not toggle WRAPPER_A9SS_SW_RESET on 6xx
    https://git.kernel.org/qcom/c/ec7ad11740b3
  - [v3,21/25] media: venus: helpers: Add internal buffer list for v6
    https://git.kernel.org/qcom/c/c934d9d4ca28
  - [v3,22/25] media: venus: helpers, hfi, vdec: Set actual plane constraints to FW
    https://git.kernel.org/qcom/c/bc28936bbba9
  - [v3,23/25] media: venus: hfi: Increase plat_buf_v6 o/p buffer count.
    https://git.kernel.org/qcom/c/df67e3584475
  - [v3,24/25] media: venus: helper: Decide work mode
    https://git.kernel.org/qcom/c/1ad175952bbc
  - [v3,25/25] media: venus: vdec: Fix decoder cmd STOP issue
    https://git.kernel.org/qcom/c/83af5738dc13

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html