mbox series

[00/10] media: mtk-vcodec: venc: support for MT8183

Message ID 20200520082723.96136-1-acourbot@chromium.org (mailing list archive)
Headers show
Series media: mtk-vcodec: venc: support for MT8183 | expand

Message

Alexandre Courbot May 20, 2020, 8:27 a.m. UTC
This series adds support for the encoder present on MT8183. It is very similar
to the one in MT8173, but with different capabilities and using a new firmware
interface (SCP, while MT8173 talked to the VPU).

So this series starts with some preparatory work by putting the firmware
interface behind a small abstraction layer instead of directly talking to the
VPU, and by adding support for the SCP firmware. Next platform data is completed
with features that differ between the chips, like supported formats and bitrate,
before support for MT8183 is added.

Alexandre Courbot (6):
  media: mtk-vcodec: venc: handle firmware version field
  media: mtk-vcodec: venc: specify bitrate range per-chip
  media: mtk-vcodec: venc: specify supported formats per-chip
  media: mtk-vcodec: venc: remove redundant code
  media: dt-bindings: mtk-vcodec: specify SCP node
  media: dt-bindings: mtk-vcodec: document mediatek,mt8183-vcodec-enc

Yunfei Dong (4):
  media: mtk-vcodec: abstract firmware interface
  media: mtk-vcodec: add SCP firmware ops
  media: mtk-vcodec: venc: support SCP firmware
  media: mtk-vcodec: add support for MT8183 encoder

 .../bindings/media/mediatek-vcodec.txt        |   9 +-
 drivers/media/platform/Kconfig                |   2 +
 drivers/media/platform/mtk-vcodec/Makefile    |   4 +-
 .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  |  53 ++--
 .../platform/mtk-vcodec/mtk_vcodec_dec_pm.c   |   1 -
 .../platform/mtk-vcodec/mtk_vcodec_drv.h      |  38 ++-
 .../platform/mtk-vcodec/mtk_vcodec_enc.c      | 141 ++++-------
 .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c  | 149 ++++++++----
 .../platform/mtk-vcodec/mtk_vcodec_enc_pm.c   |   2 -
 .../media/platform/mtk-vcodec/mtk_vcodec_fw.c | 228 ++++++++++++++++++
 .../media/platform/mtk-vcodec/mtk_vcodec_fw.h |  38 +++
 .../platform/mtk-vcodec/mtk_vcodec_util.c     |   1 -
 .../platform/mtk-vcodec/vdec/vdec_h264_if.c   |   1 -
 .../platform/mtk-vcodec/vdec/vdec_vp8_if.c    |   1 -
 .../platform/mtk-vcodec/vdec/vdec_vp9_if.c    |   1 -
 .../media/platform/mtk-vcodec/vdec_drv_base.h |   2 -
 .../media/platform/mtk-vcodec/vdec_drv_if.c   |   1 -
 .../media/platform/mtk-vcodec/vdec_vpu_if.c   |  12 +-
 .../media/platform/mtk-vcodec/vdec_vpu_if.h   |  11 +-
 .../platform/mtk-vcodec/venc/venc_h264_if.c   |  80 ++++--
 .../platform/mtk-vcodec/venc/venc_vp8_if.c    |  11 +-
 .../media/platform/mtk-vcodec/venc_drv_if.c   |   1 -
 .../media/platform/mtk-vcodec/venc_drv_if.h   |   6 +
 .../media/platform/mtk-vcodec/venc_ipi_msg.h  |  24 +-
 .../media/platform/mtk-vcodec/venc_vpu_if.c   | 141 ++++++++---
 .../media/platform/mtk-vcodec/venc_vpu_if.h   |   8 +-
 26 files changed, 711 insertions(+), 255 deletions(-)
 create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c
 create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h

--
2.26.2.761.g0e0b3e54be-goog

Comments

Ezequiel Garcia July 26, 2020, 2:33 p.m. UTC | #1
+Enric

Hello Alexandre,

Thanks for the series.

On Wed, 20 May 2020 at 05:27, Alexandre Courbot <acourbot@chromium.org> wrote:
>
> This series adds support for the encoder present on MT8183. It is very similar
> to the one in MT8173, but with different capabilities and using a new firmware
> interface (SCP, while MT8173 talked to the VPU).
>
> So this series starts with some preparatory work by putting the firmware
> interface behind a small abstraction layer instead of directly talking to the
> VPU, and by adding support for the SCP firmware. Next platform data is completed
> with features that differ between the chips, like supported formats and bitrate,
> before support for MT8183 is added.
>
> Alexandre Courbot (6):
>   media: mtk-vcodec: venc: handle firmware version field
>   media: mtk-vcodec: venc: specify bitrate range per-chip
>   media: mtk-vcodec: venc: specify supported formats per-chip
>   media: mtk-vcodec: venc: remove redundant code
>   media: dt-bindings: mtk-vcodec: specify SCP node
>   media: dt-bindings: mtk-vcodec: document mediatek,mt8183-vcodec-enc
>
> Yunfei Dong (4):
>   media: mtk-vcodec: abstract firmware interface
>   media: mtk-vcodec: add SCP firmware ops
>   media: mtk-vcodec: venc: support SCP firmware
>   media: mtk-vcodec: add support for MT8183 encoder
>
>  .../bindings/media/mediatek-vcodec.txt        |   9 +-

Would it be possible to add the support in
arch/arm64/boot/dts/mediatek/mt8183.dtsi ?

Given the driver is stateful it should be possible
for anyone to test it with standard userspace
such as GStreamer.

Is it possible for the firmware to be pushed to linux-firmware ?

Thanks,
Ezequiel

>  drivers/media/platform/Kconfig                |   2 +
>  drivers/media/platform/mtk-vcodec/Makefile    |   4 +-
>  .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  |  53 ++--
>  .../platform/mtk-vcodec/mtk_vcodec_dec_pm.c   |   1 -
>  .../platform/mtk-vcodec/mtk_vcodec_drv.h      |  38 ++-
>  .../platform/mtk-vcodec/mtk_vcodec_enc.c      | 141 ++++-------
>  .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c  | 149 ++++++++----
>  .../platform/mtk-vcodec/mtk_vcodec_enc_pm.c   |   2 -
>  .../media/platform/mtk-vcodec/mtk_vcodec_fw.c | 228 ++++++++++++++++++
>  .../media/platform/mtk-vcodec/mtk_vcodec_fw.h |  38 +++
>  .../platform/mtk-vcodec/mtk_vcodec_util.c     |   1 -
>  .../platform/mtk-vcodec/vdec/vdec_h264_if.c   |   1 -
>  .../platform/mtk-vcodec/vdec/vdec_vp8_if.c    |   1 -
>  .../platform/mtk-vcodec/vdec/vdec_vp9_if.c    |   1 -
>  .../media/platform/mtk-vcodec/vdec_drv_base.h |   2 -
>  .../media/platform/mtk-vcodec/vdec_drv_if.c   |   1 -
>  .../media/platform/mtk-vcodec/vdec_vpu_if.c   |  12 +-
>  .../media/platform/mtk-vcodec/vdec_vpu_if.h   |  11 +-
>  .../platform/mtk-vcodec/venc/venc_h264_if.c   |  80 ++++--
>  .../platform/mtk-vcodec/venc/venc_vp8_if.c    |  11 +-
>  .../media/platform/mtk-vcodec/venc_drv_if.c   |   1 -
>  .../media/platform/mtk-vcodec/venc_drv_if.h   |   6 +
>  .../media/platform/mtk-vcodec/venc_ipi_msg.h  |  24 +-
>  .../media/platform/mtk-vcodec/venc_vpu_if.c   | 141 ++++++++---
>  .../media/platform/mtk-vcodec/venc_vpu_if.h   |   8 +-
>  26 files changed, 711 insertions(+), 255 deletions(-)
>  create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c
>  create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h
>
> --
> 2.26.2.761.g0e0b3e54be-goog
>
Alexandre Courbot July 27, 2020, 9:06 a.m. UTC | #2
Hey, thanks for the review!

On Sun, Jul 26, 2020 at 11:33 PM Ezequiel Garcia
<ezequiel@vanguardiasur.com.ar> wrote:
>
> +Enric
>
> Hello Alexandre,
>
> Thanks for the series.
>
> On Wed, 20 May 2020 at 05:27, Alexandre Courbot <acourbot@chromium.org> wrote:
> >
> > This series adds support for the encoder present on MT8183. It is very similar
> > to the one in MT8173, but with different capabilities and using a new firmware
> > interface (SCP, while MT8173 talked to the VPU).
> >
> > So this series starts with some preparatory work by putting the firmware
> > interface behind a small abstraction layer instead of directly talking to the
> > VPU, and by adding support for the SCP firmware. Next platform data is completed
> > with features that differ between the chips, like supported formats and bitrate,
> > before support for MT8183 is added.
> >
> > Alexandre Courbot (6):
> >   media: mtk-vcodec: venc: handle firmware version field
> >   media: mtk-vcodec: venc: specify bitrate range per-chip
> >   media: mtk-vcodec: venc: specify supported formats per-chip
> >   media: mtk-vcodec: venc: remove redundant code
> >   media: dt-bindings: mtk-vcodec: specify SCP node
> >   media: dt-bindings: mtk-vcodec: document mediatek,mt8183-vcodec-enc
> >
> > Yunfei Dong (4):
> >   media: mtk-vcodec: abstract firmware interface
> >   media: mtk-vcodec: add SCP firmware ops
> >   media: mtk-vcodec: venc: support SCP firmware
> >   media: mtk-vcodec: add support for MT8183 encoder
> >
> >  .../bindings/media/mediatek-vcodec.txt        |   9 +-
>
> Would it be possible to add the support in
> arch/arm64/boot/dts/mediatek/mt8183.dtsi ?
>
> Given the driver is stateful it should be possible
> for anyone to test it with standard userspace
> such as GStreamer.

Certainly.

>
> Is it possible for the firmware to be pushed to linux-firmware ?

The firmware is already there:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=3c213aa59661c4641f0c2166a315140ac0445230


>
> Thanks,
> Ezequiel
>
> >  drivers/media/platform/Kconfig                |   2 +
> >  drivers/media/platform/mtk-vcodec/Makefile    |   4 +-
> >  .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  |  53 ++--
> >  .../platform/mtk-vcodec/mtk_vcodec_dec_pm.c   |   1 -
> >  .../platform/mtk-vcodec/mtk_vcodec_drv.h      |  38 ++-
> >  .../platform/mtk-vcodec/mtk_vcodec_enc.c      | 141 ++++-------
> >  .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c  | 149 ++++++++----
> >  .../platform/mtk-vcodec/mtk_vcodec_enc_pm.c   |   2 -
> >  .../media/platform/mtk-vcodec/mtk_vcodec_fw.c | 228 ++++++++++++++++++
> >  .../media/platform/mtk-vcodec/mtk_vcodec_fw.h |  38 +++
> >  .../platform/mtk-vcodec/mtk_vcodec_util.c     |   1 -
> >  .../platform/mtk-vcodec/vdec/vdec_h264_if.c   |   1 -
> >  .../platform/mtk-vcodec/vdec/vdec_vp8_if.c    |   1 -
> >  .../platform/mtk-vcodec/vdec/vdec_vp9_if.c    |   1 -
> >  .../media/platform/mtk-vcodec/vdec_drv_base.h |   2 -
> >  .../media/platform/mtk-vcodec/vdec_drv_if.c   |   1 -
> >  .../media/platform/mtk-vcodec/vdec_vpu_if.c   |  12 +-
> >  .../media/platform/mtk-vcodec/vdec_vpu_if.h   |  11 +-
> >  .../platform/mtk-vcodec/venc/venc_h264_if.c   |  80 ++++--
> >  .../platform/mtk-vcodec/venc/venc_vp8_if.c    |  11 +-
> >  .../media/platform/mtk-vcodec/venc_drv_if.c   |   1 -
> >  .../media/platform/mtk-vcodec/venc_drv_if.h   |   6 +
> >  .../media/platform/mtk-vcodec/venc_ipi_msg.h  |  24 +-
> >  .../media/platform/mtk-vcodec/venc_vpu_if.c   | 141 ++++++++---
> >  .../media/platform/mtk-vcodec/venc_vpu_if.h   |   8 +-
> >  26 files changed, 711 insertions(+), 255 deletions(-)
> >  create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c
> >  create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h
> >
> > --
> > 2.26.2.761.g0e0b3e54be-goog
> >