mbox series

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

Message ID 20210312173039.1387617-1-bryan.odonoghue@linaro.org (mailing list archive)
Headers show
Series media: venus: Enable 6xx support | expand

Message

Bryan O'Donoghue March 12, 2021, 5:30 p.m. UTC
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   |  73 +++++++-
 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    |   2 +-
 .../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(+), 197 deletions(-)

Comments

Stanimir Varbanov March 23, 2021, 12:20 p.m. UTC | #1
Hi Bryan,

Thanks for your work!

On 3/12/21 7:30 PM, Bryan O'Donoghue wrote:
> 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

You have my ack for all patches

Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>

except 21/25 and 24/25 who have comments.

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

I'll take this through media-tree once driver patchset is ready.
Bryan O'Donoghue March 23, 2021, 2:07 p.m. UTC | #2
On 23/03/2021 12:20, Stanimir Varbanov wrote:
> Hi Bryan,
> 
> Thanks for your work!
> 
> On 3/12/21 7:30 PM, Bryan O'Donoghue wrote:
>> 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
> 
> You have my ack for all patches
> 
> Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
> 
> except 21/25 and 24/25 who have comments.
> 
>>
>> yaml: pending - acked waiting application
>> https://www.spinics.net/lists/devicetree/msg406892.html
> 
> I'll take this through media-tree once driver patchset is ready.
> 

Thanks Stan.

I'll get something re-posted this week after Connect.

---
bod