[libcamera-devel,libcamera-devel,v1,1/1] pipeline: simple: Add support for MediaTek MT8365 platforms
diff mbox series

Message ID 20230715002221.215174-2-suhrid.subramaniam@mediatek.com
State Superseded
Headers show
Series
  • pipeline: simple: Add support for MediaTek MT8365 platforms
Related show

Commit Message

Suhrid Subramaniam July 15, 2023, 12:22 a.m. UTC
The camera pipeline for MediaTek MT8365 consists of the following:
Raw sensor (+ external ISP) --> SENINF --> CAMSV30 --> DRAM

SENINF (SENsor INterFace) is a CSI-2 receiver.
CAMSV30 (Camera Simple Version) is a DMA Engine which bypasses
ISP3.0 and writes directly to DRAM.
Both SENINF and CAMSV30 are supported by V4L2 drivers.

MT8365 platform consists of a hardware converter called MDP which
supports up to three streams.

Signed-off-by: Suhrid Subramaniam <suhrid.subramaniam@mediatek.com>
---
 src/libcamera/pipeline/simple/simple.cpp | 1 +
 1 file changed, 1 insertion(+)

Comments

Kieran Bingham July 15, 2023, 8:14 a.m. UTC | #1
Hi Suhrid,

Thank you for contributing to libcamera!

Quoting Suhrid Subramaniam via libcamera-devel (2023-07-15 01:22:21)
> The camera pipeline for MediaTek MT8365 consists of the following:
> Raw sensor (+ external ISP) --> SENINF --> CAMSV30 --> DRAM
> 
> SENINF (SENsor INterFace) is a CSI-2 receiver.
> CAMSV30 (Camera Simple Version) is a DMA Engine which bypasses
> ISP3.0 and writes directly to DRAM.
> Both SENINF and CAMSV30 are supported by V4L2 drivers.
> 
> MT8365 platform consists of a hardware converter called MDP which
> supports up to three streams.
> 
> Signed-off-by: Suhrid Subramaniam <suhrid.subramaniam@mediatek.com>

Are you also working on a full featured pipeline handler for the ISP
without bypass mode? I hope so - and look forward to that!

But - if this can run with simple-pipeline handler, then this is
certainly worth merging already.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> ---
>  src/libcamera/pipeline/simple/simple.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 05ba76bc..24835d50 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -193,6 +193,7 @@ static const SimplePipelineInfo supportedDevices[] = {
>         { "dcmipp", {} },
>         { "imx7-csi", { { "pxp", 1 } } },
>         { "j721e-csi2rx", {} },
> +       { "mtk-seninf", { { "mtk-mdp", 3 } } },
>         { "mxc-isi", {} },
>         { "qcom-camss", {} },
>         { "sun6i-csi", {} },
> -- 
> 2.41.0
>
Kieran Bingham July 16, 2023, 9:50 a.m. UTC | #2
Quoting Kieran Bingham (2023-07-15 09:14:53)
> Hi Suhrid,
> 
> Thank you for contributing to libcamera!
> 
> Quoting Suhrid Subramaniam via libcamera-devel (2023-07-15 01:22:21)
> > The camera pipeline for MediaTek MT8365 consists of the following:
> > Raw sensor (+ external ISP) --> SENINF --> CAMSV30 --> DRAM
> > 
> > SENINF (SENsor INterFace) is a CSI-2 receiver.
> > CAMSV30 (Camera Simple Version) is a DMA Engine which bypasses
> > ISP3.0 and writes directly to DRAM.
> > Both SENINF and CAMSV30 are supported by V4L2 drivers.
> > 
> > MT8365 platform consists of a hardware converter called MDP which
> > supports up to three streams.
> > 
> > Signed-off-by: Suhrid Subramaniam <suhrid.subramaniam@mediatek.com>
> 
> Are you also working on a full featured pipeline handler for the ISP
> without bypass mode? I hope so - and look forward to that!
> 
> But - if this can run with simple-pipeline handler, then this is
> certainly worth merging already.
> 
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> 
> > ---
> >  src/libcamera/pipeline/simple/simple.cpp | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> > index 05ba76bc..24835d50 100644
> > --- a/src/libcamera/pipeline/simple/simple.cpp
> > +++ b/src/libcamera/pipeline/simple/simple.cpp
> > @@ -193,6 +193,7 @@ static const SimplePipelineInfo supportedDevices[] = {
> >         { "dcmipp", {} },
> >         { "imx7-csi", { { "pxp", 1 } } },
> >         { "j721e-csi2rx", {} },
> > +       { "mtk-seninf", { { "mtk-mdp", 3 } } },

src/libcamera/converter/converter_v4l2_m2m.cpp has a reference to:


static std::initializer_list<std::string> compatibles = {
        "pxp",
};

Does this need to be updated to support the mtk-mdp ? or is the
convertor being supported in some other way?

--
Kieran

> >         { "mxc-isi", {} },
> >         { "qcom-camss", {} },
> >         { "sun6i-csi", {} },
> > -- 
> > 2.41.0
> >
Suhrid Subramaniam July 17, 2023, 11:19 p.m. UTC | #3
Hi Kieran,
Thanks for your prompt response!

On Sun, Jul 16, 2023 at 2:50 AM Kieran Bingham
<kieran.bingham@ideasonboard.com> wrote:
>
> Quoting Kieran Bingham (2023-07-15 09:14:53)
> > Hi Suhrid,
> >
> > Thank you for contributing to libcamera!
> >
> > Quoting Suhrid Subramaniam via libcamera-devel (2023-07-15 01:22:21)
> > > The camera pipeline for MediaTek MT8365 consists of the following:
> > > Raw sensor (+ external ISP) --> SENINF --> CAMSV30 --> DRAM
> > >
> > > SENINF (SENsor INterFace) is a CSI-2 receiver.
> > > CAMSV30 (Camera Simple Version) is a DMA Engine which bypasses
> > > ISP3.0 and writes directly to DRAM.
> > > Both SENINF and CAMSV30 are supported by V4L2 drivers.
> > >
> > > MT8365 platform consists of a hardware converter called MDP which
> > > supports up to three streams.
> > >
> > > Signed-off-by: Suhrid Subramaniam <suhrid.subramaniam@mediatek.com>
> >
> > Are you also working on a full featured pipeline handler for the ISP
> > without bypass mode? I hope so - and look forward to that!
> >
No, we are not working on a full featured pipeline handler for the ISP
as of now. If there are any developments on that front, I'll let you know :)

> > But - if this can run with simple-pipeline handler, then this is
> > certainly worth merging already.
> >
> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> >
> > > ---
> > >  src/libcamera/pipeline/simple/simple.cpp | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> > > index 05ba76bc..24835d50 100644
> > > --- a/src/libcamera/pipeline/simple/simple.cpp
> > > +++ b/src/libcamera/pipeline/simple/simple.cpp
> > > @@ -193,6 +193,7 @@ static const SimplePipelineInfo supportedDevices[] = {
> > >         { "dcmipp", {} },
> > >         { "imx7-csi", { { "pxp", 1 } } },
> > >         { "j721e-csi2rx", {} },
> > > +       { "mtk-seninf", { { "mtk-mdp", 3 } } },
>
> src/libcamera/converter/converter_v4l2_m2m.cpp has a reference to:
>
>
> static std::initializer_list<std::string> compatibles = {
>         "pxp",
> };
>
> Does this need to be updated to support the mtk-mdp ? or is the
> convertor being supported in some other way?

Thanks for pointing this out! I'd completely missed adding this to the
patch. I'll add it and resend the patch asap.

>
> --
> Kieran
>
> > >         { "mxc-isi", {} },
> > >         { "qcom-camss", {} },
> > >         { "sun6i-csi", {} },
> > > --
> > > 2.41.0
> > >

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 05ba76bc..24835d50 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -193,6 +193,7 @@  static const SimplePipelineInfo supportedDevices[] = {
 	{ "dcmipp", {} },
 	{ "imx7-csi", { { "pxp", 1 } } },
 	{ "j721e-csi2rx", {} },
+	{ "mtk-seninf", { { "mtk-mdp", 3 } } },
 	{ "mxc-isi", {} },
 	{ "qcom-camss", {} },
 	{ "sun6i-csi", {} },