Re: [PATCH V4,0/5] Support jpeg encoder for MT8195
From: Chen-Yu Tsai
Date: Fri Sep 24 2021 - 03:55:26 EST
On Fri, Sep 24, 2021 at 3:46 PM kyrie.wu <kyrie.wu@xxxxxxxxxxxx> wrote:
>
> MT8195 has two jpeg encoding HW, each one has its own
> power-domain, clock, interrupt, register base.
> The two jpeg encoding HW can work together to
> achieve higher performance.
>
> Generally, one HW needs to register one device node,
> and the APP operates the HW through the device node.
> If there are multiple HWs, the multiple device node
> needs to be registered. At this time, the app needs
> to design software logic to use multiple HWs in parallel,
> which will undoubtedly increase the difficulty of
> app development and weaken its compatibility.
>
> These serial patches use the component framework
> to achieve the purpose of using multiple HWs
> through only one device node. About the component
> framework Block Diagram, please check below:
>
> Master(device node)
> ________|_________________________
> | | |
> component0(HW0) component1(HW1) component2(HW2) ......
>
> As above, the component framework is similar to a
> master-component two level architecture.
> Both master and component have the compatible
> attribute in the device tree, and the corresponding
> platform driver structure is defined in the driver.
> Therefore, when the compatible attribute matches,
> the corresponding probe function will be called.
>
> In the probe function of component, operations
> such as initialization clock, remmap register base,
> registration interrupt will be performed.
> And add the component to a component linked
> list to find the corresponding master.
>
> In the probe function of the master, the device
> node will be registered, and the master will be
> added to a master linked list to find the
> corresponding component.
>
> After the master matches the component,
> it will obtain the clock, interrupt, register base
> and other resources in the component,
> and operate the HW through these resources.
> At the same time, multiple HWs software function
> interfaces are designed in the master driver.
Please include a changelog with your cover letter (or in each patch).
This is the fourth version of the series, and it's unclear what has
changed between the versions.
ChenYu
> kyrie.wu (5):
> dt-bindings: mediatek: Add mediatek, mt8195-jpgenc compatible
> media: mtk-jpegenc: Use component framework to manage each hardware
> media: mtk-jpegenc: add jpegenc timeout func interface
> media: mtk-jpegenc: add jpeg encode worker interface
> media: mtk-jpegenc: add output pic reorder interface
>
> .../bindings/media/mediatek-jpeg-encoder.yaml | 3 +
> drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 395 ++++++++++++++++++---
> drivers/media/platform/mtk-jpeg/mtk_jpeg_core.h | 79 +++++
> drivers/media/platform/mtk-jpeg/mtk_jpeg_enc_hw.c | 298 ++++++++++++++++
> 4 files changed, 730 insertions(+), 45 deletions(-)
>
> --
> 2.6.4
>
>
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-mediatek