summaryrefslogtreecommitdiffstats
path: root/rules.d/78-sound-card.rules
blob: 82ed0455218d3d19709afe1b841ebf5f4075feea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# do not edit this file, it will be overwritten on update

ACTION!="add|change", GOTO="sound_end"
SUBSYSTEM!="sound", GOTO="sound_end"
KERNEL!="card*", GOTO="sound_end"

SUBSYSTEMS=="usb", ENV{ID_MODEL}=="", IMPORT{program}="usb_id --export %p"
SUBSYSTEMS=="usb", ENV{ID_MODEL_FROM_DATABASE}=="", IMPORT{program}="usb-db %p"
SUBSYSTEMS=="usb", GOTO="skip_pci"

SUBSYSTEMS=="pci", ENV{ID_MODEL_FROM_DATABASE}=="", IMPORT{program}="pci-db %p"
SUBSYSTEMS=="pci", DEVPATH=="*/0000:00:??.?/sound/*", ENV{SOUND_ONBOARD}="1"

SUBSYSTEMS=="pci", ENV{ID_BUS}="pci"

LABEL="skip_pci"

# Hmm, do we really want this database here?

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="0311", ENV{SOUND_FORM_FACTOR_WEBCAM}="1", GOTO="sound_end"

# Devices that also support Image/Video interfaces are most likely webcams

SUBSYSTEMS=="usb", ENV{ID_USB_INTERFACES}=="*:0e????:*", ENV{SOUND_FORM_FACTOR_WEBCAM}="1", GOTO="sound_end"

# Yepp, this is ugly:

ENV{ID_MODEL}=="*[Ss]peaker*", ENV{SOUND_FORM_FACTOR_SPEAKER}="1", GOTO="sound_end"
ENV{ID_MODEL_FROM_DATABASE}=="*[Ss]peaker*", ENV{SOUND_FORM_FACTOR_SPEAKER}="1", GOTO="sound_end"

ENV{ID_MODEL}=="*[Hh]eadphone*", ENV{SOUND_FORM_FACTOR_HEADPHONE}="1", GOTO="sound_end"
ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]eadphone*", ENV{SOUND_FORM_FACTOR_HEADPHONE}="1", GOTO="sound_end"

ENV{ID_MODEL}=="*[Hh]eadset*", ENV{SOUND_FORM_FACTOR_HEADSET}="1", GOTO="sound_end"
ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]eadset*", ENV{SOUND_FORM_FACTOR_HEADSET}="1", GOTO="sound_end"

ENV{ID_MODEL}=="*[Hh]andset*", ENV{SOUND_FORM_FACTOR_HANDSET}="1", GOTO="sound_end"
ENV{ID_MODEL_FROM_DATABASE}=="*[Hh]andset*", ENV{SOUND_FORM_FACTOR_HANDSET}="1", GOTO="sound_end"

ENV{ID_MODEL}=="*[Mm]icrophone*", ENV{SOUND_FORM_FACTOR_MICROPHONE}="1", GOTO="sound_end"
ENV{ID_MODEL_FROM_DATABASE}=="*[Mm]icrophone*", ENV{SOUND_FORM_FACTOR_MICROPHONE}="1", GOTO="sound_end"

LABEL="sound_end"