From: Bastien Nocera Date: Tue, 26 Oct 2021 10:17:27 +0000 (+0200) Subject: hwdb: Tag IR cameras as such X-Git-Tag: v250-rc1~415^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F21130%2Fhead;p=thirdparty%2Fsystemd.git hwdb: Tag IR cameras as such So that front-ends can ignore them if they wish to. See https://gitlab.gnome.org/GNOME/cheese/-/merge_requests/4 --- diff --git a/hwdb.d/70-cameras.hwdb b/hwdb.d/70-cameras.hwdb new file mode 100644 index 00000000000..3a84792a185 --- /dev/null +++ b/hwdb.d/70-cameras.hwdb @@ -0,0 +1,25 @@ +# This file is part of systemd. +# +# Database for webcam and camera quirks. +# +# Permitted keys: +# Specify if a camera is an infra-red camera +# ID_INFRARED_CAMERA=1|0 +# Specify if a camera is front or rear facing +# ID_CAMERA_DIRECTION=front|rear + +# Generic +camera:usb:v*p*:name:*IR Camera*: + ID_INFRARED_CAMERA=1 + +########################################################### +# Philips +########################################################### + +# Philips 346p1crh display +camera:usb:v04f2pb612:name:*USB2.0 FHD UVC WebCam* IR Camer*: + ID_INFRARED_CAMERA=1 + ID_CAMERA_DIRECTION=front + +camera:usb:v04f2pb612:name:*USB2.0 FHD UVC WebCam* USB2.0 F*: + ID_CAMERA_DIRECTION=front diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build index fc6ee7c6498..8ff044131c0 100644 --- a/hwdb.d/meson.build +++ b/hwdb.d/meson.build @@ -28,6 +28,7 @@ hwdb_files_test = files(''' 60-seat.hwdb 60-sensor.hwdb 70-analyzers.hwdb + 70-cameras.hwdb 70-joystick.hwdb 70-mouse.hwdb 70-pointingstick.hwdb diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py index f385e526281..941adf28f77 100755 --- a/hwdb.d/parse_hwdb.py +++ b/hwdb.d/parse_hwdb.py @@ -74,6 +74,7 @@ TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'), 'keyboard': ('name', ), 'sensor': ('modalias', ), 'ieee1394-unit-function' : ('node', ), + 'camera': ('usb'), } # Patterns that are used to set general properties on a device @@ -167,6 +168,8 @@ def property_grammar(): ('ID_VENDOR_FROM_DATABASE', name_literal), ('ID_MODEL_FROM_DATABASE', name_literal), ('ID_TAG_MASTER_OF_SEAT', Literal('1')), + ('ID_INFRARED_CAMERA', Or((Literal('0'), Literal('1')))), + ('ID_CAMERA_DIRECTION', Or(('front', 'rear'))), ) fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE') for name, val in props] diff --git a/rules.d/70-camera.rules b/rules.d/70-camera.rules new file mode 100644 index 00000000000..b1053f2cbbf --- /dev/null +++ b/rules.d/70-camera.rules @@ -0,0 +1,9 @@ +# do not edit this file, it will be overwritten on update + +ACTION=="remove", GOTO="camera_end" + +SUBSYSTEM=="video4linux", ENV{ID_BUS}="usb" , \ + IMPORT{builtin}="hwdb 'camera:usb:v$env{ID_VENDOR_ID}p$env{ID_MODEL_ID}:name:$attr{name}:'", \ + GOTO="camera_end" + +LABEL="camera_end" diff --git a/rules.d/meson.build b/rules.d/meson.build index 598649a562b..05c55a6b41e 100644 --- a/rules.d/meson.build +++ b/rules.d/meson.build @@ -19,6 +19,7 @@ rules = files(''' 60-persistent-v4l.rules 60-sensor.rules 60-serial.rules + 70-camera.rules 70-joystick.rules 70-mouse.rules 70-touchpad.rules