[PATCH v5 00/12] Enable jpeg enc & dec multi-hardwares for MT8196

Kyrie Wu posted 12 patches 8 months, 2 weeks ago
There is a newer version of this series
.../media/mediatek,mt8195-jpegdec.yaml        |   8 +-
.../media/mediatek,mt8195-jpegenc.yaml        |   8 +-
.../platform/mediatek/jpeg/mtk_jpeg_core.c    | 169 +++++++++++++-----
.../platform/mediatek/jpeg/mtk_jpeg_core.h    |  21 ++-
.../platform/mediatek/jpeg/mtk_jpeg_dec_hw.c  | 112 +++++++++++-
.../platform/mediatek/jpeg/mtk_jpeg_enc_hw.c  | 112 +++++++++++-
6 files changed, 377 insertions(+), 53 deletions(-)
[PATCH v5 00/12] Enable jpeg enc & dec multi-hardwares for MT8196
Posted by Kyrie Wu 8 months, 2 weeks ago
This series adds support for mt8196 multi-hardwares jpeg enc & dec,
by first adding mt8196 jpegdec and jpegenc compatible to install
kernel driver. Add smmu setting to support smmu and iommu at the
same time.
Secondly refactor buffer and clock setting to support multi-hw jpeg
working.
Lastly, fix some bugs, including resolution change handleing, stop
streaming sw flow and others.

This series has been tested with MT8196 tast test.
Encoding and decoding worked for this chip.

Patches 1-3 Adds jpeg encoder and decoder compatible.
Patches 4 add jpeg smmu sid setting.
Patches 5 fix jpeg hw count setting to support different chips.
Patches 6 refactor jpeg buffer payload setting to handle buffer
size bug while resolution changed.
Patches 7 reconstruct jpeg dst buffer layout.
Patches 8 fix multi-core stop streaming flow
Patches 9 refactor multi-core clk suspend/resume setting
Patches 10 fix decoding buffer number setting timing issue
Patches 11 refactor decoding resolution change operation
Patches 12 fix remove buffer operation

---
This series patches dependent on:
[1]
https://patchwork.linuxtv.org/project/linux-media/patch/20250424090824.5309-1-jianhua.lin@mediatek.com/

Changes compared with v4:
--fix kernel robot build errors for patch 4.
--add reviewer for patch 1 and patch 2.

Changes compared with v3:
--change patch subject of jpeg encoder and decoder compatible.

Changes compared with v2:
--refactor smmu sid setting function interface
--Some modifications for patch v2's review comments.

Changes compared with v1:
--refine jpeg dt-bindings for MT8196
--optimize software code to manage jpeg HW count
--refactor smmu sid setting function interface
--Some modifications for patch v1's review comments.

Kyrie Wu (12):
  media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgdec
    compatible
  media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgenc
    compatible
  media: mediatek: jpeg: add jpeg compatible
  media: mediatek: jpeg: add jpeg smmu sid setting
  media: mediatek: jpeg: fix jpeg hw count setting
  media: mediatek: jpeg: refactor jpeg buffer payload setting
  media: mediatek: jpeg: refactor jpeg dst buffer layout
  media: mediatek: jpeg: fix stop streaming flow for multi-core
  media: mediatek: jpeg: refactor multi-core clk suspend and resume
    setting
  media: mediatek: jpeg: fix decoding buffer number setting timing issue
  media: mediatek: jpeg: refactor decoding resolution change operation
  media: mediatek: jpeg: fix remove buffer operation for multi-core

 .../media/mediatek,mt8195-jpegdec.yaml        |   8 +-
 .../media/mediatek,mt8195-jpegenc.yaml        |   8 +-
 .../platform/mediatek/jpeg/mtk_jpeg_core.c    | 169 +++++++++++++-----
 .../platform/mediatek/jpeg/mtk_jpeg_core.h    |  21 ++-
 .../platform/mediatek/jpeg/mtk_jpeg_dec_hw.c  | 112 +++++++++++-
 .../platform/mediatek/jpeg/mtk_jpeg_enc_hw.c  | 112 +++++++++++-
 6 files changed, 377 insertions(+), 53 deletions(-)

-- 
2.46.0
Re: [PATCH v5 00/12] Enable jpeg enc & dec multi-hardwares for MT8196
Posted by Nicolas Dufresne 8 months, 2 weeks ago
Hi,

Le vendredi 30 mai 2025 à 15:45 +0800, Kyrie Wu a écrit :
> This series adds support for mt8196 multi-hardwares jpeg enc & dec,
> by first adding mt8196 jpegdec and jpegenc compatible to install
> kernel driver. Add smmu setting to support smmu and iommu at the
> same time.
> Secondly refactor buffer and clock setting to support multi-hw jpeg
> working.
> Lastly, fix some bugs, including resolution change handleing, stop
> streaming sw flow and others.
> 
> This series has been tested with MT8196 tast test.
> Encoding and decoding worked for this chip.
> 
> Patches 1-3 Adds jpeg encoder and decoder compatible.
> Patches 4 add jpeg smmu sid setting.
> Patches 5 fix jpeg hw count setting to support different chips.
> Patches 6 refactor jpeg buffer payload setting to handle buffer
> size bug while resolution changed.
> Patches 7 reconstruct jpeg dst buffer layout.
> Patches 8 fix multi-core stop streaming flow
> Patches 9 refactor multi-core clk suspend/resume setting
> Patches 10 fix decoding buffer number setting timing issue
> Patches 11 refactor decoding resolution change operation
> Patches 12 fix remove buffer operation

Just general comment, you built your patchset up-side-down. Start
with the fixes of things that was already broken, then do your multi-core
support refactoring, and only then add MT8196. Looking for a v6 with
a re-organization of the set.

Nicolas

> 
> ---
> This series patches dependent on:
> [1]
> https://patchwork.linuxtv.org/project/linux-media/patch/20250424090824.5309-1-jianhua.lin@mediatek.com/
> 
> Changes compared with v4:
> --fix kernel robot build errors for patch 4.
> --add reviewer for patch 1 and patch 2.
> 
> Changes compared with v3:
> --change patch subject of jpeg encoder and decoder compatible.
> 
> Changes compared with v2:
> --refactor smmu sid setting function interface
> --Some modifications for patch v2's review comments.
> 
> Changes compared with v1:
> --refine jpeg dt-bindings for MT8196
> --optimize software code to manage jpeg HW count
> --refactor smmu sid setting function interface
> --Some modifications for patch v1's review comments.
> 
> Kyrie Wu (12):
>   media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgdec
>     compatible
>   media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgenc
>     compatible
>   media: mediatek: jpeg: add jpeg compatible
>   media: mediatek: jpeg: add jpeg smmu sid setting
>   media: mediatek: jpeg: fix jpeg hw count setting
>   media: mediatek: jpeg: refactor jpeg buffer payload setting
>   media: mediatek: jpeg: refactor jpeg dst buffer layout
>   media: mediatek: jpeg: fix stop streaming flow for multi-core
>   media: mediatek: jpeg: refactor multi-core clk suspend and resume
>     setting
>   media: mediatek: jpeg: fix decoding buffer number setting timing issue
>   media: mediatek: jpeg: refactor decoding resolution change operation
>   media: mediatek: jpeg: fix remove buffer operation for multi-core
> 
>  .../media/mediatek,mt8195-jpegdec.yaml        |   8 +-
>  .../media/mediatek,mt8195-jpegenc.yaml        |   8 +-
>  .../platform/mediatek/jpeg/mtk_jpeg_core.c    | 169 +++++++++++++-----
>  .../platform/mediatek/jpeg/mtk_jpeg_core.h    |  21 ++-
>  .../platform/mediatek/jpeg/mtk_jpeg_dec_hw.c  | 112 +++++++++++-
>  .../platform/mediatek/jpeg/mtk_jpeg_enc_hw.c  | 112 +++++++++++-
>  6 files changed, 377 insertions(+), 53 deletions(-)
Re: [PATCH v5 00/12] Enable jpeg enc & dec multi-hardwares for MT8196
Posted by Kyrie Wu (吴晗) 8 months, 1 week ago
On Fri, 2025-05-30 at 13:45 -0400, Nicolas Dufresne wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Hi,
> 
> Le vendredi 30 mai 2025 à 15:45 +0800, Kyrie Wu a écrit :
> > This series adds support for mt8196 multi-hardwares jpeg enc & dec,
> > by first adding mt8196 jpegdec and jpegenc compatible to install
> > kernel driver. Add smmu setting to support smmu and iommu at the
> > same time.
> > Secondly refactor buffer and clock setting to support multi-hw jpeg
> > working.
> > Lastly, fix some bugs, including resolution change handleing, stop
> > streaming sw flow and others.
> > 
> > This series has been tested with MT8196 tast test.
> > Encoding and decoding worked for this chip.
> > 
> > Patches 1-3 Adds jpeg encoder and decoder compatible.
> > Patches 4 add jpeg smmu sid setting.
> > Patches 5 fix jpeg hw count setting to support different chips.
> > Patches 6 refactor jpeg buffer payload setting to handle buffer
> > size bug while resolution changed.
> > Patches 7 reconstruct jpeg dst buffer layout.
> > Patches 8 fix multi-core stop streaming flow
> > Patches 9 refactor multi-core clk suspend/resume setting
> > Patches 10 fix decoding buffer number setting timing issue
> > Patches 11 refactor decoding resolution change operation
> > Patches 12 fix remove buffer operation
> 
> Just general comment, you built your patchset up-side-down. Start
> with the fixes of things that was already broken, then do your multi-
> core
> support refactoring, and only then add MT8196. Looking for a v6 with
> a re-organization of the set.
> 
> Nicolas

Dear Nicolas,

Thanks for your kind comments, I will re-organize my patch set in v6.

Regards,
Kyrie.
> 
> > 
> > ---
> > This series patches dependent on:
> > [1]
> > 
https://urldefense.com/v3/__https://patchwork.linuxtv.org/project/linux-media/patch/20250424090824.5309-1-jianhua.lin@mediatek.com/__;!!CTRNKA9wMg0ARbw!mKadXMSwCGnM_vu578CgBAihMGSqgm-6n24akvuHZKkeHA9xKZzvRJuh6K9BHIQ4HMvfHY4xK2x7OkwVaYfYUg$
> > 
> > Changes compared with v4:
> > --fix kernel robot build errors for patch 4.
> > --add reviewer for patch 1 and patch 2.
> > 
> > Changes compared with v3:
> > --change patch subject of jpeg encoder and decoder compatible.
> > 
> > Changes compared with v2:
> > --refactor smmu sid setting function interface
> > --Some modifications for patch v2's review comments.
> > 
> > Changes compared with v1:
> > --refine jpeg dt-bindings for MT8196
> > --optimize software code to manage jpeg HW count
> > --refactor smmu sid setting function interface
> > --Some modifications for patch v1's review comments.
> > 
> > Kyrie Wu (12):
> >   media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgdec
> >     compatible
> >   media: dt-bindings: mediatek,jpeg: Add mediatek, mt8196-jpgenc
> >     compatible
> >   media: mediatek: jpeg: add jpeg compatible
> >   media: mediatek: jpeg: add jpeg smmu sid setting
> >   media: mediatek: jpeg: fix jpeg hw count setting
> >   media: mediatek: jpeg: refactor jpeg buffer payload setting
> >   media: mediatek: jpeg: refactor jpeg dst buffer layout
> >   media: mediatek: jpeg: fix stop streaming flow for multi-core
> >   media: mediatek: jpeg: refactor multi-core clk suspend and resume
> >     setting
> >   media: mediatek: jpeg: fix decoding buffer number setting timing
> > issue
> >   media: mediatek: jpeg: refactor decoding resolution change
> > operation
> >   media: mediatek: jpeg: fix remove buffer operation for multi-core
> > 
> >  .../media/mediatek,mt8195-jpegdec.yaml        |   8 +-
> >  .../media/mediatek,mt8195-jpegenc.yaml        |   8 +-
> >  .../platform/mediatek/jpeg/mtk_jpeg_core.c    | 169 +++++++++++++-
> > ----
> >  .../platform/mediatek/jpeg/mtk_jpeg_core.h    |  21 ++-
> >  .../platform/mediatek/jpeg/mtk_jpeg_dec_hw.c  | 112 +++++++++++-
> >  .../platform/mediatek/jpeg/mtk_jpeg_enc_hw.c  | 112 +++++++++++-
> >  6 files changed, 377 insertions(+), 53 deletions(-)