[libcamera-devel] [PATCH] android: nautilus: Add camera HAL configuration
Umang Jain
umang.jain at ideasonboard.com
Wed May 26 12:12:53 CEST 2021
Hi Jacopo
On 5/26/21 3:27 PM, Jacopo Mondi wrote:
> Hi Umang,
>
> On Wed, May 26, 2021 at 02:51:19PM +0530, Umang Jain wrote:
>> Hi Jacopo
>>
>> On 5/26/21 1:35 PM, Jacopo Mondi wrote:
>>> Hi Umang,
>>>
>>> On Wed, May 26, 2021 at 12:45:42PM +0530, Umang Jain wrote:
>>>> nautilus has two internal cameras, one UVC and one for the IPU3.
>>>> However, libcamera assumes all UVC cameras as 'external' hence, mark
>>>> the location of UVC camera in HAL configuration as 'external' too.
>>>>
>>>> Note that the presence of UVC camera in camera HAL will complain:
>>>>
>>>>> ERROR HAL camera_device.cpp:701 '\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647':
>>>> Failed to map mandatory Android format IMPLEMENTATION_DEFINED (0x00000022): aborting
>>>>> ERROR HAL camera_hal_manager.cpp:153 Failed to initialize camera:
>>>> \_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647
>>>>
>>>> This is related to a known issue of UVC cameras on HAL which do not
>>>> provide NV12 by default.
>>> Does it work without configuration file support ?
>> No, it won't, since it's UVC. And cannot work until there's a
>> format-convertor in place that can convert the stream to NV12 provided by
>> that camera, I suppose.
> Right, it was not working before the configuration file series went
> in, right ? What I'm interested about is that there's no regression
> due to the series :)
Oh yea, no regression. I just went and wrote a verbose commit message
about what's "fine"
>
>
>>>> Also, if we don't mention the UVC camera in the config:
>>>>
>>>>> ERROR HALConfig camera_hal_config.cpp:393 Camera
>>>> '\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647' not described in the HAL
>>>> configuration file
> This is "fine".. If you look at the caller of
> CameraHalConfig::cameraConfigData() in camera_hal_manager.cpp
>
> const CameraConfigData *cameraConfigData = halConfig_.cameraConfigData(cam->id());
> if (!isCameraExternal && !cameraConfigData) {
> LOG(HAL, Error)
> << "HAL configuration entry for internal camera "
> << cam->id() << " is missing";
> return;
> }
>
> You'll see that the configuration entry for external cameras is not
> mandatory, and the UVC camera should be correctly identified as
> EXTERNAL.
>
> We spam the log enough with worrying errors which are not really
> errors, so we might want to suppress this one for external cameras ?
Won't supress it entirely, but maybe not keep it as ERROR. WARN or DEBUG
maybe?
Thanks!
>
> Thanks
> j
>
>
>>>>> ERROR HAL camera_device.cpp:701 '\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647':
>>>> Failed to map mandatory Android format IMPLEMENTATION_DEFINED (0x00000022): aborting
>>>>> ERROR HAL camera_hal_manager.cpp:153 Failed to initialize camera:
>>>> \_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647
>>>>
>>>> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
>>>> ---
>>>> src/android/data/nautilus/camera_hal.yaml | 8 ++++++++
>>>> 1 file changed, 8 insertions(+)
>>>> create mode 100644 src/android/data/nautilus/camera_hal.yaml
>>>>
>>>> diff --git a/src/android/data/nautilus/camera_hal.yaml b/src/android/data/nautilus/camera_hal.yaml
>>>> new file mode 100644
>>>> index 00000000..f2d31e1c
>>>> --- /dev/null
>>>> +++ b/src/android/data/nautilus/camera_hal.yaml
>>>> @@ -0,0 +1,8 @@
>>>> +cameras:
>>>> + "\\_SB_.PCI0.I2C2.CAM0":
>>>> + location: back
>>>> + rotation: 0
>>>> +
>>>> + "\\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647":
>>>> + location: external
>>>> + rotation: 0
>>>> --
>>>> 2.26.2
>>>>
More information about the libcamera-devel
mailing list