Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
8aa19ad8
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8aa19ad8
编写于
10月 08, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
上级
58a2c322
a25f175c
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
115 addition
and
53 deletion
+115
-53
include/sound/ac97_codec.h
include/sound/ac97_codec.h
+2
-0
include/sound/emu10k1.h
include/sound/emu10k1.h
+1
-1
sound/arm/pxa2xx-ac97.c
sound/arm/pxa2xx-ac97.c
+1
-1
sound/isa/opl3sa2.c
sound/isa/opl3sa2.c
+2
-0
sound/pci/ac97/ac97_bus.c
sound/pci/ac97/ac97_bus.c
+7
-16
sound/pci/ac97/ac97_codec.c
sound/pci/ac97/ac97_codec.c
+1
-2
sound/pci/ac97/ac97_patch.c
sound/pci/ac97/ac97_patch.c
+5
-1
sound/pci/ali5451/ali5451.c
sound/pci/ali5451/ali5451.c
+4
-2
sound/pci/emu10k1/emu10k1_main.c
sound/pci/emu10k1/emu10k1_main.c
+4
-1
sound/pci/emu10k1/emumixer.c
sound/pci/emu10k1/emumixer.c
+9
-2
sound/pci/hda/hda_generic.c
sound/pci/hda/hda_generic.c
+2
-4
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+5
-0
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+5
-17
sound/pci/korg1212/korg1212.c
sound/pci/korg1212/korg1212.c
+1
-1
sound/pci/via82xx.c
sound/pci/via82xx.c
+2
-0
sound/ppc/pmac.c
sound/ppc/pmac.c
+1
-0
sound/usb/usbaudio.c
sound/usb/usbaudio.c
+4
-4
sound/usb/usbmixer_maps.c
sound/usb/usbmixer_maps.c
+10
-0
sound/usb/usbquirks.h
sound/usb/usbquirks.h
+49
-1
未找到文件。
include/sound/ac97_codec.h
浏览文件 @
8aa19ad8
...
...
@@ -527,6 +527,8 @@ struct _snd_ac97 {
struct
device
dev
;
};
#define to_ac97_t(d) container_of(d, struct _snd_ac97, dev)
/* conditions */
static
inline
int
ac97_is_audio
(
ac97_t
*
ac97
)
{
...
...
include/sound/emu10k1.h
浏览文件 @
8aa19ad8
...
...
@@ -1059,7 +1059,7 @@ typedef struct {
unsigned
char
spk71
;
/* Has 7.1 speakers */
unsigned
char
sblive51
;
/* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */
unsigned
char
spdif_bug
;
/* Has Spdif phasing bug */
unsigned
char
ac97_chip
;
/* Has an AC97 chip */
unsigned
char
ac97_chip
;
/* Has an AC97 chip
: 1 = mandatory, 2 = optional
*/
unsigned
char
ecard
;
/* APS EEPROM */
const
char
*
driver
;
const
char
*
name
;
...
...
sound/arm/pxa2xx-ac97.c
浏览文件 @
8aa19ad8
...
...
@@ -245,7 +245,7 @@ static pxa2xx_pcm_client_t pxa2xx_ac97_pcm_client = {
#ifdef CONFIG_PM
static
int
pxa2xx_ac97_do_suspend
(
snd_card_t
*
card
,
unsigned
in
t
state
)
static
int
pxa2xx_ac97_do_suspend
(
snd_card_t
*
card
,
pm_message_
t
state
)
{
if
(
card
->
power_state
!=
SNDRV_CTL_POWER_D3cold
)
{
pxa2xx_audio_ops_t
*
platform_ops
=
card
->
dev
->
platform_data
;
...
...
sound/isa/opl3sa2.c
浏览文件 @
8aa19ad8
...
...
@@ -914,6 +914,7 @@ static int __init alsa_card_opl3sa2_init(void)
#endif
#ifdef CONFIG_PNP
pnp_unregister_card_driver
(
&
opl3sa2_pnpc_driver
);
pnp_unregister_driver
(
&
opl3sa2_pnp_driver
);
#endif
return
-
ENODEV
;
}
...
...
@@ -927,6 +928,7 @@ static void __exit alsa_card_opl3sa2_exit(void)
#ifdef CONFIG_PNP
/* PnP cards first */
pnp_unregister_card_driver
(
&
opl3sa2_pnpc_driver
);
pnp_unregister_driver
(
&
opl3sa2_pnp_driver
);
#endif
for
(
idx
=
0
;
idx
<
SNDRV_CARDS
;
idx
++
)
snd_card_free
(
snd_opl3sa2_legacy
[
idx
]);
...
...
sound/pci/ac97/ac97_bus.c
浏览文件 @
8aa19ad8
...
...
@@ -17,25 +17,21 @@
#include <linux/string.h>
/*
* Codec families have names seperated by commas, so we search for an
* individual codec name within the family string.
* Let drivers decide whether they want to support given codec from their
* probe method. Drivers have direct access to the ac97_t structure and may
* decide based on the id field amongst other things.
*/
static
int
ac97_bus_match
(
struct
device
*
dev
,
struct
device_driver
*
drv
)
{
return
(
strstr
(
dev
->
bus_id
,
drv
->
name
)
!=
NULL
)
;
return
1
;
}
static
int
ac97_bus_suspend
(
struct
device
*
dev
,
pm_message_t
state
)
{
int
ret
=
0
;
if
(
dev
->
driver
&&
dev
->
driver
->
suspend
)
{
ret
=
dev
->
driver
->
suspend
(
dev
,
state
,
SUSPEND_DISABLE
);
if
(
ret
==
0
)
ret
=
dev
->
driver
->
suspend
(
dev
,
state
,
SUSPEND_SAVE_STATE
);
if
(
ret
==
0
)
ret
=
dev
->
driver
->
suspend
(
dev
,
state
,
SUSPEND_POWER_DOWN
);
}
if
(
dev
->
driver
&&
dev
->
driver
->
suspend
)
ret
=
dev
->
driver
->
suspend
(
dev
,
state
,
SUSPEND_POWER_DOWN
);
return
ret
;
}
...
...
@@ -43,13 +39,8 @@ static int ac97_bus_resume(struct device *dev)
{
int
ret
=
0
;
if
(
dev
->
driver
&&
dev
->
driver
->
resume
)
{
if
(
dev
->
driver
&&
dev
->
driver
->
resume
)
ret
=
dev
->
driver
->
resume
(
dev
,
RESUME_POWER_ON
);
if
(
ret
==
0
)
ret
=
dev
->
driver
->
resume
(
dev
,
RESUME_RESTORE_STATE
);
if
(
ret
==
0
)
ret
=
dev
->
driver
->
resume
(
dev
,
RESUME_ENABLE
);
}
return
ret
;
}
...
...
sound/pci/ac97/ac97_codec.c
浏览文件 @
8aa19ad8
...
...
@@ -1557,7 +1557,7 @@ static int snd_ac97_modem_build(snd_card_t * card, ac97_t * ac97)
/* build modem switches */
for
(
idx
=
0
;
idx
<
ARRAY_SIZE
(
snd_ac97_controls_modem_switches
);
idx
++
)
if
((
err
=
snd_ctl_add
(
card
,
snd_
ac97_cnew
(
&
snd_ac97_controls_modem_switches
[
idx
],
ac97
)))
<
0
)
if
((
err
=
snd_ctl_add
(
card
,
snd_
ctl_new1
(
&
snd_ac97_controls_modem_switches
[
idx
],
ac97
)))
<
0
)
return
err
;
/* build chip specific controls */
...
...
@@ -1828,7 +1828,6 @@ static int snd_ac97_dev_register(snd_device_t *device)
ac97
->
dev
.
bus
=
&
ac97_bus_type
;
ac97
->
dev
.
parent
=
ac97
->
bus
->
card
->
dev
;
ac97
->
dev
.
platform_data
=
ac97
;
ac97
->
dev
.
release
=
ac97_device_release
;
snprintf
(
ac97
->
dev
.
bus_id
,
BUS_ID_SIZE
,
"card%d-%d"
,
ac97
->
bus
->
card
->
number
,
ac97
->
num
);
if
((
err
=
device_register
(
&
ac97
->
dev
))
<
0
)
{
...
...
sound/pci/ac97/ac97_patch.c
浏览文件 @
8aa19ad8
...
...
@@ -2752,7 +2752,11 @@ AC97_DOUBLE("Modem Speaker Volume", 0x5c, 14, 12, 3, 1)
static
int
patch_si3036_specific
(
ac97_t
*
ac97
)
{
return
patch_build_controls
(
ac97
,
snd_ac97_controls_si3036
,
ARRAY_SIZE
(
snd_ac97_controls_si3036
));
int
idx
,
err
;
for
(
idx
=
0
;
idx
<
ARRAY_SIZE
(
snd_ac97_controls_si3036
);
idx
++
)
if
((
err
=
snd_ctl_add
(
ac97
->
bus
->
card
,
snd_ctl_new1
(
&
snd_ac97_controls_si3036
[
idx
],
ac97
)))
<
0
)
return
err
;
return
0
;
}
static
struct
snd_ac97_build_ops
patch_si3036_ops
=
{
...
...
sound/pci/ali5451/ali5451.c
浏览文件 @
8aa19ad8
...
...
@@ -1993,8 +1993,10 @@ static int __devinit snd_ali_mixer(ali_t * codec)
if
((
err
=
snd_ac97_mixer
(
codec
->
ac97_bus
,
&
ac97
,
&
codec
->
ac97
[
i
]))
<
0
)
{
snd_printk
(
"ali mixer %d creating error.
\n
"
,
i
);
if
(
i
==
0
)
return
err
;
}
return
err
;
codec
->
num_of_codecs
=
1
;
break
;
}
}
if
(
codec
->
spdif_support
)
{
...
...
sound/pci/emu10k1/emu10k1_main.c
浏览文件 @
8aa19ad8
...
...
@@ -756,9 +756,12 @@ static emu_chip_details_t emu_chip_details[] = {
.
sblive51
=
1
}
,
/* Tested by alsa bugtrack user "hus" bug #1297 12th Aug 2005 */
{.
vendor
=
0x1102
,
.
device
=
0x0002
,
.
subsystem
=
0x80611102
,
.
driver
=
"EMU10K1"
,
.
name
=
"SBLive
! Platinum 5.1 [SB0060]"
,
.
driver
=
"EMU10K1"
,
.
name
=
"SBLive
5.1 [SB0060]"
,
.
id
=
"Live"
,
.
emu10k1_chip
=
1
,
.
ac97_chip
=
2
,
/* ac97 is optional; both SBLive 5.1 and platinum
* share the same IDs!
*/
.
sblive51
=
1
}
,
{.
vendor
=
0x1102
,
.
device
=
0x0002
,
.
subsystem
=
0x80511102
,
.
driver
=
"EMU10K1"
,
.
name
=
"SBLive! Value [CT4850]"
,
...
...
sound/pci/emu10k1/emumixer.c
浏览文件 @
8aa19ad8
...
...
@@ -810,8 +810,14 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
ac97
.
private_data
=
emu
;
ac97
.
private_free
=
snd_emu10k1_mixer_free_ac97
;
ac97
.
scaps
=
AC97_SCAP_NO_SPDIF
;
if
((
err
=
snd_ac97_mixer
(
pbus
,
&
ac97
,
&
emu
->
ac97
))
<
0
)
return
err
;
if
((
err
=
snd_ac97_mixer
(
pbus
,
&
ac97
,
&
emu
->
ac97
))
<
0
)
{
if
(
emu
->
card_capabilities
->
ac97_chip
==
1
)
return
err
;
snd_printd
(
KERN_INFO
"emu10k1: AC97 is optional on this board
\n
"
);
snd_printd
(
KERN_INFO
" Proceeding without ac97 mixers...
\n
"
);
snd_device_free
(
emu
->
card
,
pbus
);
goto
no_ac97
;
/* FIXME: get rid of ugly gotos.. */
}
if
(
emu
->
audigy
)
{
/* set master volume to 0 dB */
snd_ac97_write
(
emu
->
ac97
,
AC97_MASTER
,
0x0000
);
...
...
@@ -836,6 +842,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
for
(;
*
c
;
c
++
)
remove_ctl
(
card
,
*
c
);
}
else
{
no_ac97:
if
(
emu
->
card_capabilities
->
ecard
)
strcpy
(
emu
->
card
->
mixername
,
"EMU APS"
);
else
if
(
emu
->
audigy
)
...
...
sound/pci/hda/hda_generic.c
浏览文件 @
8aa19ad8
...
...
@@ -881,10 +881,8 @@ int snd_hda_parse_generic_codec(struct hda_codec *codec)
struct
hda_gspec
*
spec
;
int
err
;
if
(
!
codec
->
afg
)
{
snd_printdd
(
"hda_generic: no generic modem yet
\n
"
);
return
-
ENODEV
;
}
if
(
!
codec
->
afg
)
return
0
;
spec
=
kzalloc
(
sizeof
(
*
spec
),
GFP_KERNEL
);
if
(
spec
==
NULL
)
{
...
...
sound/pci/hda/hda_intel.c
浏览文件 @
8aa19ad8
...
...
@@ -1137,6 +1137,7 @@ static snd_pcm_uframes_t azx_pcm_pointer(snd_pcm_substream_t *substream)
pos
=
azx_sd_readl
(
azx_dev
,
SD_LPIB
);
if
(
chip
->
position_fix
==
POS_FIX_FIFO
)
pos
+=
azx_dev
->
fifo_size
;
#if 0 /* disabled temprarily, auto-correction doesn't work well... */
else if (chip->position_fix == POS_FIX_AUTO && azx_dev->period_updating) {
/* check the validity of DMA position */
unsigned int diff = 0;
...
...
@@ -1157,6 +1158,10 @@ static snd_pcm_uframes_t azx_pcm_pointer(snd_pcm_substream_t *substream)
}
azx_dev->period_updating = 0;
}
#else
else
if
(
chip
->
position_fix
==
POS_FIX_AUTO
)
pos
+=
azx_dev
->
fifo_size
;
#endif
}
if
(
pos
>=
azx_dev
->
bufsize
)
pos
=
0
;
...
...
sound/pci/hda/patch_realtek.c
浏览文件 @
8aa19ad8
...
...
@@ -1385,8 +1385,8 @@ static snd_kcontrol_new_t alc880_test_mixer[] = {
HDA_CODEC_VOLUME
(
"Side Playback Volume"
,
0x0f
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE
(
"Front Playback Switch"
,
0x0c
,
2
,
HDA_INPUT
),
ALC_BIND_MUTE
(
"Surround Playback Switch"
,
0x0d
,
2
,
HDA_INPUT
),
ALC_BIND_MUTE
(
"CLFE Playback
Volume
"
,
0x0e
,
2
,
HDA_INPUT
),
ALC_BIND_MUTE
(
"Side Playback
Volume
"
,
0x0f
,
2
,
HDA_INPUT
),
ALC_BIND_MUTE
(
"CLFE Playback
Switch
"
,
0x0e
,
2
,
HDA_INPUT
),
ALC_BIND_MUTE
(
"Side Playback
Switch
"
,
0x0f
,
2
,
HDA_INPUT
),
PIN_CTL_TEST
(
"Front Pin Mode"
,
0x14
),
PIN_CTL_TEST
(
"Surround Pin Mode"
,
0x15
),
PIN_CTL_TEST
(
"CLFE Pin Mode"
,
0x16
),
...
...
@@ -1409,18 +1409,6 @@ static snd_kcontrol_new_t alc880_test_mixer[] = {
HDA_CODEC_MUTE
(
"In-4 Playback Switch"
,
0x0b
,
0x3
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"CD Playback Volume"
,
0x0b
,
0x4
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"CD Playback Switch"
,
0x0b
,
0x4
,
HDA_INPUT
),
HDA_CODEC_VOLUME
(
"Capture Volume"
,
0x08
,
0x0
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Capture Switch"
,
0x08
,
0x0
,
HDA_INPUT
),
HDA_CODEC_VOLUME_IDX
(
"Capture Volume"
,
1
,
0x09
,
0x0
,
HDA_INPUT
),
HDA_CODEC_MUTE_IDX
(
"Capture Switch"
,
1
,
0x09
,
0x0
,
HDA_INPUT
),
{
.
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
,
.
name
=
"Input Source"
,
.
count
=
2
,
.
info
=
alc_mux_enum_info
,
.
get
=
alc_mux_enum_get
,
.
put
=
alc_mux_enum_put
,
},
{
.
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
,
.
name
=
"Channel Mode"
,
...
...
@@ -2243,7 +2231,7 @@ static snd_kcontrol_new_t alc260_base_mixer[] = {
HDA_CODEC_VOLUME
(
"Headphone Playback Volume"
,
0x09
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE
(
"Headphone Playback Switch"
,
0x09
,
2
,
HDA_INPUT
),
HDA_CODEC_VOLUME_MONO
(
"Mono Playback Volume"
,
0x0a
,
1
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE_MONO
(
"Mono Playback Switch"
,
0x0a
,
1
,
2
,
HDA_
OUT
PUT
),
ALC_BIND_MUTE_MONO
(
"Mono Playback Switch"
,
0x0a
,
1
,
2
,
HDA_
IN
PUT
),
HDA_CODEC_VOLUME
(
"Capture Volume"
,
0x04
,
0x0
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Capture Switch"
,
0x04
,
0x0
,
HDA_INPUT
),
{
...
...
@@ -2270,7 +2258,7 @@ static snd_kcontrol_new_t alc260_hp_mixer[] = {
HDA_CODEC_VOLUME
(
"Headphone Playback Volume"
,
0x09
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE
(
"Headphone Playback Switch"
,
0x09
,
2
,
HDA_INPUT
),
HDA_CODEC_VOLUME_MONO
(
"Mono Playback Volume"
,
0x0a
,
1
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE_MONO
(
"Mono Playback Switch"
,
0x0a
,
1
,
2
,
HDA_
OUT
PUT
),
ALC_BIND_MUTE_MONO
(
"Mono Playback Switch"
,
0x0a
,
1
,
2
,
HDA_
IN
PUT
),
HDA_CODEC_VOLUME
(
"Capture Volume"
,
0x05
,
0x0
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Capture Switch"
,
0x05
,
0x0
,
HDA_INPUT
),
{
...
...
@@ -2501,7 +2489,7 @@ static snd_kcontrol_new_t alc882_base_mixer[] = {
HDA_CODEC_VOLUME_MONO
(
"Center Playback Volume"
,
0x0e
,
1
,
0x0
,
HDA_OUTPUT
),
HDA_CODEC_VOLUME_MONO
(
"LFE Playback Volume"
,
0x0e
,
2
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE_MONO
(
"Center Playback Switch"
,
0x0e
,
1
,
2
,
HDA_INPUT
),
ALC_BIND_MUTE_MONO
(
"LFE Playback Switch"
,
0x0e
,
2
,
2
,
HDA_
OUT
PUT
),
ALC_BIND_MUTE_MONO
(
"LFE Playback Switch"
,
0x0e
,
2
,
2
,
HDA_
IN
PUT
),
HDA_CODEC_VOLUME
(
"Side Playback Volume"
,
0x0f
,
0x0
,
HDA_OUTPUT
),
ALC_BIND_MUTE
(
"Side Playback Switch"
,
0x0f
,
2
,
HDA_INPUT
),
HDA_CODEC_MUTE
(
"Headphone Playback Switch"
,
0x1b
,
0x0
,
HDA_OUTPUT
),
...
...
sound/pci/korg1212/korg1212.c
浏览文件 @
8aa19ad8
...
...
@@ -442,7 +442,7 @@ static char* stateName[] = {
"Setup for play"
,
"Playing"
,
"Monitor mode on"
,
"Calibrating"
"Calibrating"
,
"Invalid"
};
...
...
sound/pci/via82xx.c
浏览文件 @
8aa19ad8
...
...
@@ -2147,11 +2147,13 @@ static int __devinit check_dxs_list(struct pci_dev *pci)
{
.
subvendor
=
0x1019
,
.
subdevice
=
0x0996
,
.
action
=
VIA_DXS_48K
},
{
.
subvendor
=
0x1019
,
.
subdevice
=
0x0a81
,
.
action
=
VIA_DXS_NO_VRA
},
/* ECS K7VTA3 v8.0 */
{
.
subvendor
=
0x1019
,
.
subdevice
=
0x0a85
,
.
action
=
VIA_DXS_NO_VRA
},
/* ECS L7VMM2 */
{
.
subvendor
=
0x1019
,
.
subdevice
=
0xa101
,
.
action
=
VIA_DXS_SRC
},
{
.
subvendor
=
0x1025
,
.
subdevice
=
0x0033
,
.
action
=
VIA_DXS_NO_VRA
},
/* Acer Inspire 1353LM */
{
.
subvendor
=
0x1025
,
.
subdevice
=
0x0046
,
.
action
=
VIA_DXS_SRC
},
/* Acer Aspire 1524 WLMi */
{
.
subvendor
=
0x1043
,
.
subdevice
=
0x8095
,
.
action
=
VIA_DXS_NO_VRA
},
/* ASUS A7V8X (FIXME: possibly VIA_DXS_ENABLE?)*/
{
.
subvendor
=
0x1043
,
.
subdevice
=
0x80a1
,
.
action
=
VIA_DXS_NO_VRA
},
/* ASUS A7V8-X */
{
.
subvendor
=
0x1043
,
.
subdevice
=
0x80b0
,
.
action
=
VIA_DXS_NO_VRA
},
/* ASUS A7V600 & K8V*/
{
.
subvendor
=
0x1043
,
.
subdevice
=
0x810d
,
.
action
=
VIA_DXS_SRC
},
/* ASUS */
{
.
subvendor
=
0x1043
,
.
subdevice
=
0x812a
,
.
action
=
VIA_DXS_SRC
},
/* ASUS A8V Deluxe */
{
.
subvendor
=
0x1071
,
.
subdevice
=
0x8375
,
.
action
=
VIA_DXS_NO_VRA
},
/* Vobis/Yakumo/Mitac notebook */
{
.
subvendor
=
0x1071
,
.
subdevice
=
0x8399
,
.
action
=
VIA_DXS_NO_VRA
},
/* Umax AB 595T (VIA K8N800A - VT8237) */
...
...
sound/ppc/pmac.c
浏览文件 @
8aa19ad8
...
...
@@ -988,6 +988,7 @@ static int __init snd_pmac_detect(pmac_t *chip)
case
0x33
:
case
0x29
:
case
0x24
:
case
0x50
:
case
0x5c
:
chip
->
num_freqs
=
ARRAY_SIZE
(
tumbler_freqs
);
chip
->
model
=
PMAC_SNAPPER
;
...
...
sound/usb/usbaudio.c
浏览文件 @
8aa19ad8
...
...
@@ -1444,9 +1444,9 @@ static snd_pcm_hardware_t snd_usb_playback =
SNDRV_PCM_INFO_BATCH
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
,
.
buffer_bytes_max
=
(
256
*
1024
)
,
.
buffer_bytes_max
=
1024
*
1024
,
.
period_bytes_min
=
64
,
.
period_bytes_max
=
(
128
*
1024
)
,
.
period_bytes_max
=
512
*
1024
,
.
periods_min
=
2
,
.
periods_max
=
1024
,
};
...
...
@@ -1458,9 +1458,9 @@ static snd_pcm_hardware_t snd_usb_capture =
SNDRV_PCM_INFO_BATCH
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
,
.
buffer_bytes_max
=
(
256
*
1024
)
,
.
buffer_bytes_max
=
1024
*
1024
,
.
period_bytes_min
=
64
,
.
period_bytes_max
=
(
128
*
1024
)
,
.
period_bytes_max
=
512
*
1024
,
.
periods_min
=
2
,
.
periods_max
=
1024
,
};
...
...
sound/usb/usbmixer_maps.c
浏览文件 @
8aa19ad8
...
...
@@ -237,6 +237,16 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
.
map
=
audigy2nx_map
,
.
selector_map
=
audigy2nx_selectors
,
},
{
/* Hercules DJ Console (Windows Edition) */
.
id
=
USB_ID
(
0x06f8
,
0xb000
),
.
ignore_ctl_error
=
1
,
},
{
/* Hercules DJ Console (Macintosh Edition) */
.
id
=
USB_ID
(
0x06f8
,
0xd002
),
.
ignore_ctl_error
=
1
,
},
{
.
id
=
USB_ID
(
0x08bb
,
0x2702
),
.
map
=
linex_map
,
...
...
sound/usb/usbquirks.h
浏览文件 @
8aa19ad8
...
...
@@ -117,6 +117,10 @@ YAMAHA_DEVICE(0x103a, NULL),
YAMAHA_DEVICE
(
0x103b
,
NULL
),
YAMAHA_DEVICE
(
0x103c
,
NULL
),
YAMAHA_DEVICE
(
0x103d
,
NULL
),
YAMAHA_DEVICE
(
0x103e
,
NULL
),
YAMAHA_DEVICE
(
0x103f
,
NULL
),
YAMAHA_DEVICE
(
0x1040
,
NULL
),
YAMAHA_DEVICE
(
0x1041
,
NULL
),
YAMAHA_DEVICE
(
0x2000
,
"DGP-7"
),
YAMAHA_DEVICE
(
0x2001
,
"DGP-5"
),
YAMAHA_DEVICE
(
0x2002
,
NULL
),
...
...
@@ -1010,6 +1014,40 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
}
},
{
USB_DEVICE_VENDOR_SPEC
(
0x0582
,
0x007a
),
.
driver_info
=
(
unsigned
long
)
&
(
const
snd_usb_audio_quirk_t
)
{
.
vendor_name
=
"Roland"
,
/* RD-700SX, RD-300SX */
.
ifnum
=
0
,
.
type
=
QUIRK_MIDI_FIXED_ENDPOINT
,
.
data
=
&
(
const
snd_usb_midi_endpoint_info_t
)
{
.
out_cables
=
0x0003
,
.
in_cables
=
0x0003
}
}
},
/* Guillemot devices */
{
/*
* This is for the "Windows Edition" where the external MIDI ports are
* the only MIDI ports; the control data is reported through HID
* interfaces. The "Macintosh Edition" has ID 0xd002 and uses standard
* compliant USB MIDI ports for external MIDI and controls.
*/
USB_DEVICE_VENDOR_SPEC
(
0x06f8
,
0xb000
),
.
driver_info
=
(
unsigned
long
)
&
(
const
snd_usb_audio_quirk_t
)
{
.
vendor_name
=
"Hercules"
,
.
product_name
=
"DJ Console (WE)"
,
.
ifnum
=
4
,
.
type
=
QUIRK_MIDI_FIXED_ENDPOINT
,
.
data
=
&
(
const
snd_usb_midi_endpoint_info_t
)
{
.
out_cables
=
0x0001
,
.
in_cables
=
0x0001
}
}
},
/* Midiman/M-Audio devices */
{
...
...
@@ -1339,10 +1377,20 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
},
/* TerraTec devices */
{
USB_DEVICE_VENDOR_SPEC
(
0x0ccd
,
0x0012
),
.
driver_info
=
(
unsigned
long
)
&
(
const
snd_usb_audio_quirk_t
)
{
.
vendor_name
=
"TerraTec"
,
.
product_name
=
"PHASE 26"
,
.
ifnum
=
3
,
.
type
=
QUIRK_MIDI_STANDARD_INTERFACE
}
},
{
USB_DEVICE_VENDOR_SPEC
(
0x0ccd
,
0x0013
),
.
driver_info
=
(
unsigned
long
)
&
(
const
snd_usb_audio_quirk_t
)
{
.
vendor_name
=
"Terra
t
ec"
,
.
vendor_name
=
"Terra
T
ec"
,
.
product_name
=
"PHASE 26"
,
.
ifnum
=
3
,
.
type
=
QUIRK_MIDI_STANDARD_INTERFACE
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录