[libcamera-devel] [PATCH v4] libcamera: Test sensor's ability to discover ancillary devices

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Nov 14 17:59:58 CET 2022


On Fri, Nov 11, 2022 at 04:50:56PM +0000, Kieran Bingham wrote:
> Quoting Kieran Bingham (2022-04-25 15:24:42)
> > Quoting Yunke Cao (2022-04-25 10:27:10)
> > > Use vimc lens to test sensor's ability to discover ancillary lens.
> > > 
> > > Tested with the recent kernel patch for vimc lens:
> > > https://lore.kernel.org/linux-media/20220415023855.2568366-1-yunkec@google.com/
> > > 
> > > Signed-off-by: Yunke Cao <yunkec at google.com>
> > 
> > You can collect RB tags here when they are given to you for new versions
> > too.
> > 
> > Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> Argh, and because this was posted as a reply to the original - the tags
> didn't propogate to the correct version in patchwork either. This has
> resulted in it slipping through without being applied while it already
> could have.
> 
> I'll try to apply / collect this now.

If it can help,

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> > > ---
> > > Changelog since v3:
> > >  - Remove unnecessary brace. Sorry! Kept forgetting this.
> > > 
> > > Changelog since v2:
> > >  - Flip the order of initProperties and discoverAncillaryDevices.
> > >  - Fix log string.
> > > 
> > > Changelog since v1:
> > >  - Dont fail test when lens is not present.
> > >  - Remove lens from dm.
> > >  - Tested on both kernels with/without the vimc lens patch.
> > > 
> > >  src/libcamera/camera_sensor.cpp |  7 ++++++-
> > >  test/camera-sensor.cpp          | 11 +++++++++++
> > >  2 files changed, 17 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> > > index eaa2da6b..c56b8a60 100644
> > > --- a/src/libcamera/camera_sensor.cpp
> > > +++ b/src/libcamera/camera_sensor.cpp
> > > @@ -152,7 +152,12 @@ int CameraSensor::init()
> > >          */
> > >         if (entity_->device()->driver() == "vimc") {
> > >                 initVimcDefaultProperties();
> > > -               return initProperties();
> > > +
> > > +               ret = initProperties();
> > > +               if (ret)
> > > +                       return ret;
> > > +
> > > +               return discoverAncillaryDevices();
> > >         }
> > >  
> > >         /* Get the color filter array pattern (only for RAW sensors). */
> > > diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
> > > index 372ee4af..dc99ab33 100644
> > > --- a/test/camera-sensor.cpp
> > > +++ b/test/camera-sensor.cpp
> > > @@ -12,6 +12,7 @@
> > >  
> > >  #include <libcamera/base/utils.h>
> > >  
> > > +#include "libcamera/internal/camera_lens.h"
> > >  #include "libcamera/internal/camera_sensor.h"
> > >  #include "libcamera/internal/device_enumerator.h"
> > >  #include "libcamera/internal/media_device.h"
> > > @@ -57,6 +58,10 @@ protected:
> > >                         return TestFail;
> > >                 }
> > >  
> > > +               lens_ = sensor_->focusLens();
> > > +               if (lens_)
> > > +                       cout << "Found lens controller" << endl;
> > > +
> > >                 return TestPass;
> > >         }
> > >  
> > > @@ -104,6 +109,11 @@ protected:
> > >                         return TestFail;
> > >                 }
> > >  
> > > +               if (lens_ && lens_->setFocusPosition(10)) {
> > > +                       cerr << "Failed to set lens focus position" << endl;
> > > +                       return TestFail;
> > > +               }
> > > +
> > >                 return TestPass;
> > >         }
> > >  
> > > @@ -116,6 +126,7 @@ private:
> > >         std::unique_ptr<DeviceEnumerator> enumerator_;
> > >         std::shared_ptr<MediaDevice> media_;
> > >         CameraSensor *sensor_;
> > > +       CameraLens *lens_;
> > >  };
> > >  
> > >  TEST_REGISTER(CameraSensorTest)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list