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