[libcamera-devel] [PATCH] libcamera: pipeline: simple: Add support for ST's DCMIPP

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue May 2 14:33:32 CEST 2023


On Tue, May 02, 2023 at 01:29:31PM +0100, Kieran Bingham via libcamera-devel wrote:
> Quoting Daniel Scally via libcamera-devel (2023-05-02 12:13:57)
> > The STM32 contains a camera pipeline known as the DCMIPP (Digital
> > Camera-Memory Interface Pixel Processor) which receives data from a
> > parallel interface and dumps the post-processed data to memory. The
> > pipeline is capable of some processing in the form of downscaling
> > captured data through cropping or skipping the sensor's output.
> > 
> > The simple pipeline handler is quite capable of handling the DCMIPP
> > given its operation is handled entirely through configuring the pads
> > of a media graph, so add support for the driver to the pipeline's
> > supportedDevices array.
> > 
> > Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>
> > ---
> > Support for the dcmipp has been tested on an stm32mp135f-dk with a gc2145
> > camera sensor. Note that the dcmipp driver **is not** in mainline at the moment,
> > and nor is the gc2145's driver. @Hugues, @Alain, is there a plan to move those
> > drivers upstream?
> 
> As I understand it, the drivers are open, and as long as there is an
> expectation that they are going upstream - that's 'enough' to get this
> merged in libcamera I believe.

We don't have to wait for the dcmipp driver to land upstream before
merging this, but I'd like to understand the upstreaming plan first.

> It's also a really easily 'line' to maintain ;-)
> 
> > A few changes to ST's kernel were needed to fix some format propagation problems
> > and some missing controls for the GC2145 for this to work. Those can be found in
> > my tree linked below [1], along with some fixes to the CSI-2 to Parallel bridge
> > driver which _is_ upstream and which I posted to linux-media [2].
> > 
> > [1] https://github.com/djrscally/linux/tree/v5.15-stm32mp
> > [2] https://lore.kernel.org/linux-media/20230502103547.150918-1-dan.scally@ideasonboard.com/T/#t
> > 
> >  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 e1f8b989..01516bc3 100644
> > --- a/src/libcamera/pipeline/simple/simple.cpp
> > +++ b/src/libcamera/pipeline/simple/simple.cpp
> > @@ -194,6 +194,7 @@ static const SimplePipelineInfo supportedDevices[] = {
> >         { "mxc-isi", {} },
> >         { "qcom-camss", {} },
> >         { "sun6i-csi", {} },
> > +       { "dcmipp", {} },
> 
> Alphabetical sort order ;-)
> 
> With that...
> 
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> >  };
> >  
> >  } /* namespace */

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list