Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
15d47763
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,发现更多精彩内容 >>
提交
15d47763
编写于
7月 23, 2012
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-3.5' into for-3.6
上级
0ff97ebf
d66a547c
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
99 addition
and
56 deletion
+99
-56
sound/pci/hda/Kconfig
sound/pci/hda/Kconfig
+0
-13
sound/pci/hda/hda_auto_parser.c
sound/pci/hda/hda_auto_parser.c
+0
-1
sound/pci/hda/hda_auto_parser.h
sound/pci/hda/hda_auto_parser.h
+10
-0
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.c
+4
-0
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_conexant.c
+5
-1
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+9
-6
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+6
-1
sound/soc/codecs/tlv320aic3x.c
sound/soc/codecs/tlv320aic3x.c
+1
-3
sound/soc/codecs/tlv320aic3x.h
sound/soc/codecs/tlv320aic3x.h
+1
-0
sound/soc/codecs/wm2200.c
sound/soc/codecs/wm2200.c
+1
-0
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+0
-3
sound/soc/omap/omap-mcpdm.c
sound/soc/omap/omap-mcpdm.c
+1
-0
sound/soc/pxa/mioa701_wm9713.c
sound/soc/pxa/mioa701_wm9713.c
+12
-21
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+11
-7
sound/usb/mixer_maps.c
sound/usb/mixer_maps.c
+8
-0
sound/usb/quirks-table.h
sound/usb/quirks-table.h
+30
-0
未找到文件。
sound/pci/hda/Kconfig
浏览文件 @
15d47763
...
...
@@ -97,19 +97,6 @@ config SND_HDA_CODEC_REALTEK
snd-hda-codec-realtek.
This module is automatically loaded at probing.
config SND_HDA_ENABLE_REALTEK_QUIRKS
bool "Build static quirks for Realtek codecs"
depends on SND_HDA_CODEC_REALTEK
default y
help
Say Y here to build the static quirks codes for Realtek codecs.
If you need the "model" preset that the default BIOS auto-parser
can't handle, turn this option on.
If your device works with model=auto option, basically you don't
need the quirk code. By turning this off, you can reduce the
module size quite a lot.
config SND_HDA_CODEC_ANALOG
bool "Build Analog Device HD-audio codec support"
default y
...
...
sound/pci/hda/hda_auto_parser.c
浏览文件 @
15d47763
...
...
@@ -618,7 +618,6 @@ int snd_hda_gen_add_verbs(struct hda_gen_spec *spec,
const
struct
hda_verb
*
list
)
{
const
struct
hda_verb
**
v
;
snd_array_init
(
&
spec
->
verbs
,
sizeof
(
struct
hda_verb
*
),
8
);
v
=
snd_array_new
(
&
spec
->
verbs
);
if
(
!
v
)
return
-
ENOMEM
;
...
...
sound/pci/hda/hda_auto_parser.h
浏览文件 @
15d47763
...
...
@@ -157,4 +157,14 @@ void snd_hda_pick_fixup(struct hda_codec *codec,
const
struct
snd_pci_quirk
*
quirk
,
const
struct
hda_fixup
*
fixlist
);
static
inline
void
snd_hda_gen_init
(
struct
hda_gen_spec
*
spec
)
{
snd_array_init
(
&
spec
->
verbs
,
sizeof
(
struct
hda_verb
*
),
8
);
}
static
inline
void
snd_hda_gen_free
(
struct
hda_gen_spec
*
spec
)
{
snd_array_free
(
&
spec
->
verbs
);
}
#endif
/* __SOUND_HDA_AUTO_PARSER_H */
sound/pci/hda/hda_codec.c
浏览文件 @
15d47763
...
...
@@ -1184,6 +1184,7 @@ static void snd_hda_codec_free(struct hda_codec *codec)
{
if
(
!
codec
)
return
;
snd_hda_jack_tbl_clear
(
codec
);
restore_init_pincfgs
(
codec
);
#ifdef CONFIG_SND_HDA_POWER_SAVE
cancel_delayed_work
(
&
codec
->
power_work
);
...
...
@@ -1192,6 +1193,7 @@ static void snd_hda_codec_free(struct hda_codec *codec)
list_del
(
&
codec
->
list
);
snd_array_free
(
&
codec
->
mixers
);
snd_array_free
(
&
codec
->
nids
);
snd_array_free
(
&
codec
->
cvt_setups
);
snd_array_free
(
&
codec
->
conn_lists
);
snd_array_free
(
&
codec
->
spdif_out
);
codec
->
bus
->
caddr_tbl
[
codec
->
addr
]
=
NULL
;
...
...
@@ -2333,6 +2335,8 @@ int snd_hda_codec_reset(struct hda_codec *codec)
/* free only driver_pins so that init_pins + user_pins are restored */
snd_array_free
(
&
codec
->
driver_pins
);
restore_pincfgs
(
codec
);
snd_array_free
(
&
codec
->
cvt_setups
);
snd_array_free
(
&
codec
->
spdif_out
);
codec
->
num_pcms
=
0
;
codec
->
pcm_info
=
NULL
;
codec
->
preset
=
NULL
;
...
...
sound/pci/hda/patch_conexant.c
浏览文件 @
15d47763
...
...
@@ -445,8 +445,10 @@ static int conexant_init(struct hda_codec *codec)
static
void
conexant_free
(
struct
hda_codec
*
codec
)
{
struct
conexant_spec
*
spec
=
codec
->
spec
;
snd_hda_gen_free
(
&
spec
->
gen
);
snd_hda_detach_beep_device
(
codec
);
kfree
(
codec
->
spec
);
kfree
(
spec
);
}
static
const
struct
snd_kcontrol_new
cxt_capture_mixers
[]
=
{
...
...
@@ -4466,6 +4468,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
SND_PCI_QUIRK
(
0x17aa
,
0x21ce
,
"Lenovo T420"
,
CXT_PINCFG_LENOVO_TP410
),
SND_PCI_QUIRK
(
0x17aa
,
0x21cf
,
"Lenovo T520"
,
CXT_PINCFG_LENOVO_TP410
),
SND_PCI_QUIRK
(
0x17aa
,
0x3975
,
"Lenovo U300s"
,
CXT_FIXUP_STEREO_DMIC
),
SND_PCI_QUIRK
(
0x17aa
,
0x397b
,
"Lenovo S205"
,
CXT_FIXUP_STEREO_DMIC
),
{}
};
...
...
@@ -4497,6 +4500,7 @@ static int patch_conexant_auto(struct hda_codec *codec)
if
(
!
spec
)
return
-
ENOMEM
;
codec
->
spec
=
spec
;
snd_hda_gen_init
(
&
spec
->
gen
);
switch
(
codec
->
vendor_id
)
{
case
0x14f15045
:
...
...
sound/pci/hda/patch_realtek.c
浏览文件 @
15d47763
...
...
@@ -2289,6 +2289,7 @@ static void alc_free(struct hda_codec *codec)
alc_shutup
(
codec
);
alc_free_kctls
(
codec
);
alc_free_bind_ctls
(
codec
);
snd_hda_gen_free
(
&
spec
->
gen
);
kfree
(
spec
);
snd_hda_detach_beep_device
(
codec
);
}
...
...
@@ -4253,6 +4254,7 @@ static int alc_alloc_spec(struct hda_codec *codec, hda_nid_t mixer_nid)
return
-
ENOMEM
;
codec
->
spec
=
spec
;
spec
->
mixer_nid
=
mixer_nid
;
snd_hda_gen_init
(
&
spec
->
gen
);
err
=
alc_codec_rename_from_preset
(
codec
);
if
(
err
<
0
)
{
...
...
@@ -6705,6 +6707,12 @@ static int patch_alc662(struct hda_codec *codec)
alc_fix_pll_init
(
codec
,
0x20
,
0x04
,
15
);
alc_pick_fixup
(
codec
,
alc662_fixup_models
,
alc662_fixup_tbl
,
alc662_fixups
);
alc_apply_fixup
(
codec
,
ALC_FIXUP_ACT_PRE_PROBE
);
alc_auto_parse_customize_define
(
codec
);
if
((
alc_get_coef0
(
codec
)
&
(
1
<<
14
))
&&
codec
->
bus
->
pci
->
subsystem_vendor
==
0x1025
&&
spec
->
cdefine
.
platform_type
==
1
)
{
...
...
@@ -6712,12 +6720,6 @@ static int patch_alc662(struct hda_codec *codec)
goto
error
;
}
alc_pick_fixup
(
codec
,
alc662_fixup_models
,
alc662_fixup_tbl
,
alc662_fixups
);
alc_apply_fixup
(
codec
,
ALC_FIXUP_ACT_PRE_PROBE
);
alc_auto_parse_customize_define
(
codec
);
/* automatic parse from the BIOS config */
err
=
alc662_parse_auto_config
(
codec
);
if
(
err
<
0
)
...
...
@@ -6800,6 +6802,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
{
.
id
=
0x10ec0272
,
.
name
=
"ALC272"
,
.
patch
=
patch_alc662
},
{
.
id
=
0x10ec0275
,
.
name
=
"ALC275"
,
.
patch
=
patch_alc269
},
{
.
id
=
0x10ec0276
,
.
name
=
"ALC276"
,
.
patch
=
patch_alc269
},
{
.
id
=
0x10ec0280
,
.
name
=
"ALC280"
,
.
patch
=
patch_alc269
},
{
.
id
=
0x10ec0861
,
.
rev
=
0x100340
,
.
name
=
"ALC660"
,
.
patch
=
patch_alc861
},
{
.
id
=
0x10ec0660
,
.
name
=
"ALC660-VD"
,
.
patch
=
patch_alc861vd
},
...
...
sound/pci/hda/patch_sigmatel.c
浏览文件 @
15d47763
...
...
@@ -4367,7 +4367,7 @@ static int stac92xx_init(struct hda_codec *codec)
AC_PINCTL_IN_EN
);
for
(
i
=
0
;
i
<
spec
->
num_pwrs
;
i
++
)
{
hda_nid_t
nid
=
spec
->
pwr_nids
[
i
];
int
pinctl
,
def_conf
;
unsigned
int
pinctl
,
def_conf
;
def_conf
=
snd_hda_codec_get_pincfg
(
codec
,
nid
);
def_conf
=
get_defcfg_connect
(
def_conf
);
...
...
@@ -4376,6 +4376,11 @@ static int stac92xx_init(struct hda_codec *codec)
stac_toggle_power_map
(
codec
,
nid
,
0
);
continue
;
}
if
(
def_conf
==
AC_JACK_PORT_FIXED
)
{
/* no need for jack detection for fixed pins */
stac_toggle_power_map
(
codec
,
nid
,
1
);
continue
;
}
/* power on when no jack detection is available */
/* or when the VREF is used for controlling LED */
if
(
!
spec
->
hp_detect
||
...
...
sound/soc/codecs/tlv320aic3x.c
浏览文件 @
15d47763
...
...
@@ -965,9 +965,7 @@ static int aic3x_hw_params(struct snd_pcm_substream *substream,
}
found:
data
=
snd_soc_read
(
codec
,
AIC3X_PLL_PROGA_REG
);
snd_soc_write
(
codec
,
AIC3X_PLL_PROGA_REG
,
data
|
(
pll_p
<<
PLLP_SHIFT
));
snd_soc_update_bits
(
codec
,
AIC3X_PLL_PROGA_REG
,
PLLP_MASK
,
pll_p
);
snd_soc_write
(
codec
,
AIC3X_OVRF_STATUS_AND_PLLR_REG
,
pll_r
<<
PLLR_SHIFT
);
snd_soc_write
(
codec
,
AIC3X_PLL_PROGB_REG
,
pll_j
<<
PLLJ_SHIFT
);
...
...
sound/soc/codecs/tlv320aic3x.h
浏览文件 @
15d47763
...
...
@@ -183,6 +183,7 @@
/* PLL registers bitfields */
#define PLLP_SHIFT 0
#define PLLP_MASK 7
#define PLLQ_SHIFT 3
#define PLLR_SHIFT 0
#define PLLJ_SHIFT 2
...
...
sound/soc/codecs/wm2200.c
浏览文件 @
15d47763
...
...
@@ -1491,6 +1491,7 @@ static int wm2200_bclk_rates_dat[WM2200_NUM_BCLK_RATES] = {
static
int
wm2200_bclk_rates_cd
[
WM2200_NUM_BCLK_RATES
]
=
{
5644800
,
3763200
,
2882400
,
1881600
,
1411200
,
...
...
sound/soc/codecs/wm8994.c
浏览文件 @
15d47763
...
...
@@ -724,9 +724,6 @@ static void wm1811_jackdet_set_mode(struct snd_soc_codec *codec, u16 mode)
{
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
if
(
!
wm8994
->
jackdet
||
!
wm8994
->
jack_cb
)
return
;
if
(
!
wm8994
->
jackdet
||
!
wm8994
->
jack_cb
)
return
;
...
...
sound/soc/omap/omap-mcpdm.c
浏览文件 @
15d47763
...
...
@@ -527,6 +527,7 @@ static struct platform_driver asoc_mcpdm_driver = {
module_platform_driver
(
asoc_mcpdm_driver
);
MODULE_ALIAS
(
"platform:omap-mcpdm"
);
MODULE_AUTHOR
(
"Misael Lopez Cruz <misael.lopez@ti.com>"
);
MODULE_DESCRIPTION
(
"OMAP PDM SoC Interface"
);
MODULE_LICENSE
(
"GPL"
);
sound/soc/pxa/mioa701_wm9713.c
浏览文件 @
15d47763
...
...
@@ -186,36 +186,27 @@ static struct snd_soc_card mioa701 = {
.
num_links
=
ARRAY_SIZE
(
mioa701_dai
),
};
static
struct
platform_device
*
mioa701_snd_device
;
static
int
mioa701_wm9713_probe
(
struct
platform_device
*
pdev
)
static
int
__devinit
mioa701_wm9713_probe
(
struct
platform_device
*
pdev
)
{
int
r
et
;
int
r
c
;
if
(
!
machine_is_mioa701
())
return
-
ENODEV
;
dev_warn
(
&
pdev
->
dev
,
"Be warned that incorrect mixers/muxes setup will"
"lead to overheating and possible destruction of your device."
"Do not use without a good knowledge of mio's board design!
\n
"
);
mioa701_snd_device
=
platform_device_alloc
(
"soc-audio"
,
-
1
);
if
(
!
mioa701_snd_device
)
return
-
ENOMEM
;
platform_set_drvdata
(
mioa701_snd_device
,
&
mioa701
);
ret
=
platform_device_add
(
mioa701_snd_device
);
if
(
!
ret
)
return
0
;
platform_device_put
(
mioa701_snd_device
);
return
ret
;
mioa701
.
dev
=
&
pdev
->
dev
;
rc
=
snd_soc_register_card
(
&
mioa701
);
if
(
!
rc
)
dev_warn
(
&
pdev
->
dev
,
"Be warned that incorrect mixers/muxes setup will"
"lead to overheating and possible destruction of your device."
" Do not use without a good knowledge of mio's board design!
\n
"
);
return
rc
;
}
static
int
__devexit
mioa701_wm9713_remove
(
struct
platform_device
*
pdev
)
{
platform_device_unregister
(
mioa701_snd_device
);
struct
snd_soc_card
*
card
=
platform_get_drvdata
(
pdev
);
snd_soc_unregister_card
(
card
);
return
0
;
}
...
...
sound/soc/soc-dapm.c
浏览文件 @
15d47763
...
...
@@ -291,9 +291,9 @@ static int snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm,
if
(
dapm
->
codec
->
driver
->
set_bias_level
)
ret
=
dapm
->
codec
->
driver
->
set_bias_level
(
dapm
->
codec
,
level
);
else
dapm
->
bias_level
=
level
;
}
}
else
dapm
->
bias_level
=
level
;
if
(
ret
!=
0
)
goto
out
;
...
...
@@ -324,11 +324,10 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w,
val
=
soc_widget_read
(
w
,
reg
);
val
=
(
val
>>
shift
)
&
mask
;
if
(
invert
)
val
=
max
-
val
;
if
((
invert
&&
!
val
)
||
(
!
invert
&&
val
))
p
->
connect
=
1
;
else
p
->
connect
=
0
;
p
->
connect
=
!!
val
;
}
break
;
case
snd_soc_dapm_mux
:
{
...
...
@@ -3668,10 +3667,13 @@ EXPORT_SYMBOL_GPL(snd_soc_dapm_free);
static
void
soc_dapm_shutdown_codec
(
struct
snd_soc_dapm_context
*
dapm
)
{
struct
snd_soc_card
*
card
=
dapm
->
card
;
struct
snd_soc_dapm_widget
*
w
;
LIST_HEAD
(
down_list
);
int
powerdown
=
0
;
mutex_lock
(
&
card
->
dapm_mutex
);
list_for_each_entry
(
w
,
&
dapm
->
card
->
widgets
,
list
)
{
if
(
w
->
dapm
!=
dapm
)
continue
;
...
...
@@ -3694,6 +3696,8 @@ static void soc_dapm_shutdown_codec(struct snd_soc_dapm_context *dapm)
snd_soc_dapm_set_bias_level
(
dapm
,
SND_SOC_BIAS_STANDBY
);
}
mutex_unlock
(
&
card
->
dapm_mutex
);
}
/*
...
...
sound/usb/mixer_maps.c
浏览文件 @
15d47763
...
...
@@ -341,6 +341,14 @@ static struct usbmix_ctl_map usbmix_ctl_maps[] = {
.
map
=
audigy2nx_map
,
.
selector_map
=
audigy2nx_selectors
,
},
{
/* Logitech, Inc. QuickCam Pro for Notebooks */
.
id
=
USB_ID
(
0x046d
,
0x0991
),
.
ignore_ctl_error
=
1
,
},
{
/* Logitech, Inc. QuickCam E 3500 */
.
id
=
USB_ID
(
0x046d
,
0x09a4
),
.
ignore_ctl_error
=
1
,
},
{
/* Hercules DJ Console (Windows Edition) */
.
id
=
USB_ID
(
0x06f8
,
0xb000
),
...
...
sound/usb/quirks-table.h
浏览文件 @
15d47763
...
...
@@ -1831,6 +1831,36 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
}
},
{
USB_DEVICE
(
0x0582
,
0x014d
),
.
driver_info
=
(
unsigned
long
)
&
(
const
struct
snd_usb_audio_quirk
)
{
/* .vendor_name = "BOSS", */
/* .product_name = "GT-100", */
.
ifnum
=
QUIRK_ANY_INTERFACE
,
.
type
=
QUIRK_COMPOSITE
,
.
data
=
(
const
struct
snd_usb_audio_quirk
[])
{
{
.
ifnum
=
1
,
.
type
=
QUIRK_AUDIO_STANDARD_INTERFACE
},
{
.
ifnum
=
2
,
.
type
=
QUIRK_AUDIO_STANDARD_INTERFACE
},
{
.
ifnum
=
3
,
.
type
=
QUIRK_MIDI_FIXED_ENDPOINT
,
.
data
=
&
(
const
struct
snd_usb_midi_endpoint_info
)
{
.
out_cables
=
0x0001
,
.
in_cables
=
0x0001
}
},
{
.
ifnum
=
-
1
}
}
}
},
/* Guillemot devices */
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录