mbox series

[v6,00/10] Add MFC v12 support

Message ID 20231213081105.25817-1-aakarsh.jain@samsung.com
Headers show
Series Add MFC v12 support | expand

Message

Aakarsh Jain Dec. 13, 2023, 8:10 a.m. UTC
This patch series adds MFC v12 support. MFC v12 is used in Tesla FSD SoC.

This adds support for following:

-Add support for YV12 and I420 format (3-plane)
-Add support for Rate Control, UHD and DMABUF for encoder
-Add support for DPB buffers allocation based on MFC requirement

changes since v5:
-As per Krzysztof, he will take MFC dt-entries patch via Samsung SoC
once dt-bindings patch gets accepted. Therefore, excluded MFC dt-entries
patch from v6.
-Addressed review comments by Hans Verkuil.
Resolved smatch warning from 'drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c'.
Resolved kernel doc warnings from 'drivers/media/platform/samsung/s5p-mfc/s5p_mfc_common.h'.
Added explanation in the patch 9 as comment on why mfc v12 firmware loading is
needed for each run.
v5 link: https://patchwork.kernel.org/project/linux-media/cover/20231206063045.97234-1-aakarsh.jain@samsung.com/

Changes since v4:
-Addressed review comments by Krzysztof Kozlowski.
As per discussion included iommus property in dt-schema.
-Addressed review comments by Hans Verkuil.
Fixed checkpatch warnings with --strict flag enabled.
Upstreamed s5p-mfc-v12.fw to linux-firmware.
Added comment in the patch 9 regarding loading mfc firmware v12
sequentially.
-Addressed review comments by Nicolas Dufresne
Made use of v4l2-common library to get number of planes needed for
particular format in patch 4.
v4 link:https://patchwork.kernel.org/project/linux-media/patch/20231025102216.50480-2-aakarsh.jain@samsung.com/

Changes since v3:
-Removed vp9 codec support for now and just keeping MFC v12 base
patches with necessary hardware controls, decoder, encoder and
structural changes. Also covers luma dbp, chroma dpb and mv sizes
for each codec as per the UM for MFCv12, along with appropriate
alignment.
v3 link: https://patchwork.kernel.org/project/linux-media/cover/20221011122516.32135-1-aakarsh.jain@samsung.com/

Changes since v2:
-Addressed review comments by Rob Herring.
This was regarding the errors found by Rob bot in yaml file. File
'samsung,s5p-mfc.yaml' is already converted into json schema and is
merged.

-Addressed review comments by Krzysztof Kozlowski.
This was regarding depricated properties mentioned in s5p-mfc.txt file.
Review comment was addressed and 'samsung,s5p-mfc.yaml' is already
merged now.

-Addressed review comments by Andi Shyti.
This was regarding addition of 'MFC_V10PLUS_BITS' macro in
's5p_mfc_common.h file.
v2 link: https://patchwork.kernel.org/project/linux-media/cover/20220907064715.55778-1-smitha.t@samsung.com/

Changes since v1:
-Addressed review comments by Krzysztof Kozlowski.
Separated bug fixes patches, resent again with fix tag
and those are merged now.
-Added SoC based compatible string.

-Addressed review comments by Andrzej Hajda
Assigned width64 and height32 variable with ALIGN(ctx->img_..)
used in the code in 's5p_mfc_opr_v6.c' file.
v1 link: https://patchwork.kernel.org/project/linux-media/patch/20220517125548.14746-2-smitha.t@samsung.com/

Aakarsh Jain (10):
  dt-bindings: media: s5p-mfc: Add mfcv12 variant
  media: s5p-mfc: Rename IS_MFCV10 macro
  media: s5p-mfc: Add initial support for MFCv12
  media: s5p-mfc: Add YV12 and I420 multiplanar format support
  media: s5p-mfc: Add support for rate controls in MFCv12
  media: s5p-mfc: Add support for UHD encoding.
  media: s5p-mfc: Add support for DMABUF for encoder
  media: s5p-mfc: Set context for valid case before calling try_run
  media: s5p-mfc: Load firmware for each run in MFCv12.
  media: s5p-mfc: DPB Count Independent of VIDIOC_REQBUF

 .../bindings/media/samsung,s5p-mfc.yaml       |  18 ++
 .../platform/samsung/s5p-mfc/regs-mfc-v12.h   |  52 +++
 .../platform/samsung/s5p-mfc/regs-mfc-v7.h    |   1 +
 .../platform/samsung/s5p-mfc/regs-mfc-v8.h    |   3 +
 .../media/platform/samsung/s5p-mfc/s5p_mfc.c  |  36 ++-
 .../platform/samsung/s5p-mfc/s5p_mfc_common.h |  33 +-
 .../platform/samsung/s5p-mfc/s5p_mfc_ctrl.c   |  15 +-
 .../platform/samsung/s5p-mfc/s5p_mfc_dec.c    |  60 +++-
 .../platform/samsung/s5p-mfc/s5p_mfc_enc.c    | 149 ++++++---
 .../platform/samsung/s5p-mfc/s5p_mfc_opr.h    |  14 +-
 .../platform/samsung/s5p-mfc/s5p_mfc_opr_v5.c |  12 +-
 .../platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c | 299 ++++++++++++++----
 .../platform/samsung/s5p-mfc/s5p_mfc_opr_v6.h |   7 +-
 13 files changed, 550 insertions(+), 149 deletions(-)
 create mode 100644 drivers/media/platform/samsung/s5p-mfc/regs-mfc-v12.h