Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
ddf83485
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
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看板
提交
ddf83485
编写于
12年前
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus' into for-next
Conflicts: sound/pci/hda/hda_codec.c Signed-off-by:
N
Takashi Iwai
<
tiwai@suse.de
>
上级
099d53c3
535b6c51
变更
38
隐藏空白更改
内联
并排
Showing
38 changed file
with
250 addition
and
233 deletion
+250
-233
MAINTAINERS
MAINTAINERS
+6
-1
include/sound/pcm.h
include/sound/pcm.h
+2
-1
sound/arm/pxa2xx-ac97.c
sound/arm/pxa2xx-ac97.c
+2
-2
sound/atmel/abdac.c
sound/atmel/abdac.c
+2
-1
sound/atmel/ac97c.c
sound/atmel/ac97c.c
+5
-9
sound/drivers/aloop.c
sound/drivers/aloop.c
+1
-1
sound/drivers/dummy.c
sound/drivers/dummy.c
+1
-1
sound/drivers/pcsp/pcsp.c
sound/drivers/pcsp/pcsp.c
+2
-2
sound/oss/sb_audio.c
sound/oss/sb_audio.c
+3
-1
sound/pci/cs46xx/cs46xx_lib.c
sound/pci/cs46xx/cs46xx_lib.c
+1
-1
sound/pci/ctxfi/ctatc.c
sound/pci/ctxfi/ctatc.c
+3
-1
sound/pci/hda/hda_beep.c
sound/pci/hda/hda_beep.c
+23
-6
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.c
+50
-26
sound/pci/hda/hda_codec.h
sound/pci/hda/hda_codec.h
+1
-0
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+9
-0
sound/pci/hda/hda_proc.c
sound/pci/hda/hda_proc.c
+1
-1
sound/pci/hda/patch_ca0132.c
sound/pci/hda/patch_ca0132.c
+53
-121
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+5
-4
sound/pci/lx6464es/lx6464es.c
sound/pci/lx6464es/lx6464es.c
+2
-0
sound/pci/rme9652/hdspm.c
sound/pci/rme9652/hdspm.c
+1
-1
sound/pci/sis7019.c
sound/pci/sis7019.c
+3
-2
sound/ppc/powermac.c
sound/ppc/powermac.c
+1
-1
sound/ppc/snd_ps3.c
sound/ppc/snd_ps3.c
+1
-0
sound/soc/blackfin/bf6xx-sport.c
sound/soc/blackfin/bf6xx-sport.c
+7
-0
sound/soc/codecs/wm5102.c
sound/soc/codecs/wm5102.c
+9
-16
sound/soc/codecs/wm5110.c
sound/soc/codecs/wm5110.c
+12
-0
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8962.c
+0
-15
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+2
-0
sound/soc/codecs/wm9712.c
sound/soc/codecs/wm9712.c
+18
-3
sound/soc/davinci/davinci-mcasp.c
sound/soc/davinci/davinci-mcasp.c
+8
-2
sound/soc/fsl/imx-ssi.c
sound/soc/fsl/imx-ssi.c
+3
-2
sound/soc/mxs/Kconfig
sound/soc/mxs/Kconfig
+1
-1
sound/soc/omap/mcbsp.c
sound/soc/omap/mcbsp.c
+1
-1
sound/soc/samsung/pcm.c
sound/soc/samsung/pcm.c
+1
-1
sound/soc/soc-core.c
sound/soc/soc-core.c
+6
-4
sound/soc/soc-jack.c
sound/soc/soc-jack.c
+1
-1
sound/usb/endpoint.c
sound/usb/endpoint.c
+0
-4
sound/usb/pcm.c
sound/usb/pcm.c
+3
-0
未找到文件。
MAINTAINERS
浏览文件 @
ddf83485
...
...
@@ -7665,23 +7665,28 @@ S: Supported
F: Documentation/hwmon/wm83??
F: arch/arm/mach-s3c64xx/mach-crag6410*
F: drivers/clk/clk-wm83*.c
F: drivers/extcon/extcon-arizona.c
F: drivers/leds/leds-wm83*.c
F: drivers/gpio/gpio-*wm*.c
F: drivers/gpio/gpio-arizona.c
F: drivers/hwmon/wm83??-hwmon.c
F: drivers/input/misc/wm831x-on.c
F: drivers/input/touchscreen/wm831x-ts.c
F: drivers/input/touchscreen/wm97*.c
F: drivers/mfd/wm8*.c
F: drivers/mfd/arizona*
F: drivers/mfd/wm*.c
F: drivers/power/wm83*.c
F: drivers/rtc/rtc-wm83*.c
F: drivers/regulator/wm8*.c
F: drivers/video/backlight/wm83*_bl.c
F: drivers/watchdog/wm83*_wdt.c
F: include/linux/mfd/arizona/
F: include/linux/mfd/wm831x/
F: include/linux/mfd/wm8350/
F: include/linux/mfd/wm8400*
F: include/linux/wm97xx.h
F: include/sound/wm????.h
F: sound/soc/codecs/arizona.?
F: sound/soc/codecs/wm*
WORKQUEUE
...
...
This diff is collapsed.
Click to expand it.
include/sound/pcm.h
浏览文件 @
ddf83485
...
...
@@ -1075,7 +1075,8 @@ static inline void snd_pcm_limit_isa_dma_size(int dma, size_t *max)
const
char
*
snd_pcm_format_name
(
snd_pcm_format_t
format
);
/**
* Get a string naming the direction of a stream
* snd_pcm_stream_str - Get a string naming the direction of a stream
* @substream: the pcm substream instance
*/
static
inline
const
char
*
snd_pcm_stream_str
(
struct
snd_pcm_substream
*
substream
)
{
...
...
This diff is collapsed.
Click to expand it.
sound/arm/pxa2xx-ac97.c
浏览文件 @
ddf83485
...
...
@@ -106,7 +106,7 @@ static struct pxa2xx_pcm_client pxa2xx_ac97_pcm_client = {
.
prepare
=
pxa2xx_ac97_pcm_prepare
,
};
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
pxa2xx_ac97_do_suspend
(
struct
snd_card
*
card
)
{
...
...
@@ -243,7 +243,7 @@ static struct platform_driver pxa2xx_ac97_driver = {
.
driver
=
{
.
name
=
"pxa2xx-ac97"
,
.
owner
=
THIS_MODULE
,
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
.
pm
=
&
pxa2xx_ac97_pm_ops
,
#endif
},
...
...
This diff is collapsed.
Click to expand it.
sound/atmel/abdac.c
浏览文件 @
ddf83485
...
...
@@ -452,6 +452,7 @@ static int __devinit atmel_abdac_probe(struct platform_device *pdev)
dac
->
regs
=
ioremap
(
regs
->
start
,
resource_size
(
regs
));
if
(
!
dac
->
regs
)
{
dev_dbg
(
&
pdev
->
dev
,
"could not remap register memory
\n
"
);
retval
=
-
ENOMEM
;
goto
out_free_card
;
}
...
...
@@ -534,7 +535,7 @@ static int __devinit atmel_abdac_probe(struct platform_device *pdev)
return
retval
;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
atmel_abdac_suspend
(
struct
device
*
pdev
)
{
struct
snd_card
*
card
=
dev_get_drvdata
(
pdev
);
...
...
This diff is collapsed.
Click to expand it.
sound/atmel/ac97c.c
浏览文件 @
ddf83485
...
...
@@ -278,14 +278,9 @@ static int atmel_ac97c_capture_hw_params(struct snd_pcm_substream *substream,
if
(
retval
<
0
)
return
retval
;
/* snd_pcm_lib_malloc_pages returns 1 if buffer is changed. */
if
(
cpu_is_at32ap7000
())
{
if
(
retval
<
0
)
return
retval
;
/* snd_pcm_lib_malloc_pages returns 1 if buffer is changed. */
if
(
retval
==
1
)
if
(
test_and_clear_bit
(
DMA_RX_READY
,
&
chip
->
flags
))
dw_dma_cyclic_free
(
chip
->
dma
.
rx_chan
);
}
if
(
cpu_is_at32ap7000
()
&&
retval
==
1
)
if
(
test_and_clear_bit
(
DMA_RX_READY
,
&
chip
->
flags
))
dw_dma_cyclic_free
(
chip
->
dma
.
rx_chan
);
/* Set restrictions to params. */
mutex_lock
(
&
opened_mutex
);
...
...
@@ -980,6 +975,7 @@ static int __devinit atmel_ac97c_probe(struct platform_device *pdev)
if
(
!
chip
->
regs
)
{
dev_dbg
(
&
pdev
->
dev
,
"could not remap register memory
\n
"
);
retval
=
-
ENOMEM
;
goto
err_ioremap
;
}
...
...
@@ -1134,7 +1130,7 @@ static int __devinit atmel_ac97c_probe(struct platform_device *pdev)
return
retval
;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
atmel_ac97c_suspend
(
struct
device
*
pdev
)
{
struct
snd_card
*
card
=
dev_get_drvdata
(
pdev
);
...
...
This diff is collapsed.
Click to expand it.
sound/drivers/aloop.c
浏览文件 @
ddf83485
...
...
@@ -1176,7 +1176,7 @@ static int __devexit loopback_remove(struct platform_device *devptr)
return
0
;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
loopback_suspend
(
struct
device
*
pdev
)
{
struct
snd_card
*
card
=
dev_get_drvdata
(
pdev
);
...
...
This diff is collapsed.
Click to expand it.
sound/drivers/dummy.c
浏览文件 @
ddf83485
...
...
@@ -1064,7 +1064,7 @@ static int __devexit snd_dummy_remove(struct platform_device *devptr)
return
0
;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
snd_dummy_suspend
(
struct
device
*
pdev
)
{
struct
snd_card
*
card
=
dev_get_drvdata
(
pdev
);
...
...
This diff is collapsed.
Click to expand it.
sound/drivers/pcsp/pcsp.c
浏览文件 @
ddf83485
...
...
@@ -199,7 +199,7 @@ static void pcsp_stop_beep(struct snd_pcsp *chip)
pcspkr_stop_sound
();
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
pcsp_suspend
(
struct
device
*
dev
)
{
struct
snd_pcsp
*
chip
=
dev_get_drvdata
(
dev
);
...
...
@@ -212,7 +212,7 @@ static SIMPLE_DEV_PM_OPS(pcsp_pm, pcsp_suspend, NULL);
#define PCSP_PM_OPS &pcsp_pm
#else
#define PCSP_PM_OPS NULL
#endif
/* CONFIG_PM */
#endif
/* CONFIG_PM
_SLEEP
*/
static
void
pcsp_shutdown
(
struct
platform_device
*
dev
)
{
...
...
This diff is collapsed.
Click to expand it.
sound/oss/sb_audio.c
浏览文件 @
ddf83485
...
...
@@ -575,13 +575,15 @@ static int jazz16_audio_set_speed(int dev, int speed)
if
(
speed
>
0
)
{
int
tmp
;
int
s
=
speed
*
devc
->
channels
;
int
s
;
if
(
speed
<
5000
)
speed
=
5000
;
if
(
speed
>
44100
)
speed
=
44100
;
s
=
speed
*
devc
->
channels
;
devc
->
tconst
=
(
256
-
((
1000000
+
s
/
2
)
/
s
))
&
0xff
;
tmp
=
256
-
devc
->
tconst
;
...
...
This diff is collapsed.
Click to expand it.
sound/pci/cs46xx/cs46xx_lib.c
浏览文件 @
ddf83485
...
...
@@ -94,7 +94,7 @@ static unsigned short snd_cs46xx_codec_read(struct snd_cs46xx *chip,
if
(
snd_BUG_ON
(
codec_index
!=
CS46XX_PRIMARY_CODEC_INDEX
&&
codec_index
!=
CS46XX_SECONDARY_CODEC_INDEX
))
return
-
EINVAL
;
return
0xffff
;
chip
->
active_ctrl
(
chip
,
1
);
...
...
This diff is collapsed.
Click to expand it.
sound/pci/ctxfi/ctatc.c
浏览文件 @
ddf83485
...
...
@@ -1725,8 +1725,10 @@ int __devinit ct_atc_create(struct snd_card *card, struct pci_dev *pci,
atc_connect_resources
(
atc
);
atc
->
timer
=
ct_timer_new
(
atc
);
if
(
!
atc
->
timer
)
if
(
!
atc
->
timer
)
{
err
=
-
ENOMEM
;
goto
error1
;
}
err
=
snd_device_new
(
card
,
SNDRV_DEV_LOWLEVEL
,
atc
,
&
ops
);
if
(
err
<
0
)
...
...
This diff is collapsed.
Click to expand it.
sound/pci/hda/hda_beep.c
浏览文件 @
ddf83485
...
...
@@ -231,16 +231,22 @@ void snd_hda_detach_beep_device(struct hda_codec *codec)
}
EXPORT_SYMBOL_HDA
(
snd_hda_detach_beep_device
);
static
bool
ctl_has_mute
(
struct
snd_kcontrol
*
kcontrol
)
{
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
return
query_amp_caps
(
codec
,
get_amp_nid
(
kcontrol
),
get_amp_direction
(
kcontrol
))
&
AC_AMPCAP_MUTE
;
}
/* get/put callbacks for beep mute mixer switches */
int
snd_hda_mixer_amp_switch_get_beep
(
struct
snd_kcontrol
*
kcontrol
,
struct
snd_ctl_elem_value
*
ucontrol
)
{
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
hda_beep
*
beep
=
codec
->
beep
;
if
(
beep
)
{
if
(
beep
&&
(
!
beep
->
enabled
||
!
ctl_has_mute
(
kcontrol
))
)
{
ucontrol
->
value
.
integer
.
value
[
0
]
=
ucontrol
->
value
.
integer
.
value
[
1
]
=
beep
->
enabled
;
ucontrol
->
value
.
integer
.
value
[
1
]
=
beep
->
enabled
;
return
0
;
}
return
snd_hda_mixer_amp_switch_get
(
kcontrol
,
ucontrol
);
...
...
@@ -252,9 +258,20 @@ int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol,
{
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
hda_beep
*
beep
=
codec
->
beep
;
if
(
beep
)
snd_hda_enable_beep_device
(
codec
,
*
ucontrol
->
value
.
integer
.
value
);
if
(
beep
)
{
u8
chs
=
get_amp_channels
(
kcontrol
);
int
enable
=
0
;
long
*
valp
=
ucontrol
->
value
.
integer
.
value
;
if
(
chs
&
1
)
{
enable
|=
*
valp
;
valp
++
;
}
if
(
chs
&
2
)
enable
|=
*
valp
;
snd_hda_enable_beep_device
(
codec
,
enable
);
}
if
(
!
ctl_has_mute
(
kcontrol
))
return
0
;
return
snd_hda_mixer_amp_switch_put
(
kcontrol
,
ucontrol
);
}
EXPORT_SYMBOL_HDA
(
snd_hda_mixer_amp_switch_put_beep
);
This diff is collapsed.
Click to expand it.
sound/pci/hda/hda_codec.c
浏览文件 @
ddf83485
...
...
@@ -1386,6 +1386,44 @@ int snd_hda_codec_configure(struct hda_codec *codec)
}
EXPORT_SYMBOL_HDA
(
snd_hda_codec_configure
);
/* update the stream-id if changed */
static
void
update_pcm_stream_id
(
struct
hda_codec
*
codec
,
struct
hda_cvt_setup
*
p
,
hda_nid_t
nid
,
u32
stream_tag
,
int
channel_id
)
{
unsigned
int
oldval
,
newval
;
if
(
p
->
stream_tag
!=
stream_tag
||
p
->
channel_id
!=
channel_id
)
{
oldval
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_CONV
,
0
);
newval
=
(
stream_tag
<<
4
)
|
channel_id
;
if
(
oldval
!=
newval
)
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CHANNEL_STREAMID
,
newval
);
p
->
stream_tag
=
stream_tag
;
p
->
channel_id
=
channel_id
;
}
}
/* update the format-id if changed */
static
void
update_pcm_format
(
struct
hda_codec
*
codec
,
struct
hda_cvt_setup
*
p
,
hda_nid_t
nid
,
int
format
)
{
unsigned
int
oldval
;
if
(
p
->
format_id
!=
format
)
{
oldval
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_STREAM_FORMAT
,
0
);
if
(
oldval
!=
format
)
{
msleep
(
1
);
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_STREAM_FORMAT
,
format
);
}
p
->
format_id
=
format
;
}
}
/**
* snd_hda_codec_setup_stream - set up the codec for streaming
* @codec: the CODEC to set up
...
...
@@ -1400,7 +1438,6 @@ void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
{
struct
hda_codec
*
c
;
struct
hda_cvt_setup
*
p
;
unsigned
int
oldval
,
newval
;
int
type
;
int
i
;
...
...
@@ -1413,29 +1450,13 @@ void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
p
=
get_hda_cvt_setup
(
codec
,
nid
);
if
(
!
p
)
return
;
/* update the stream-id if changed */
if
(
p
->
stream_tag
!=
stream_tag
||
p
->
channel_id
!=
channel_id
)
{
oldval
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_CONV
,
0
);
newval
=
(
stream_tag
<<
4
)
|
channel_id
;
if
(
oldval
!=
newval
)
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CHANNEL_STREAMID
,
newval
);
p
->
stream_tag
=
stream_tag
;
p
->
channel_id
=
channel_id
;
}
/* update the format-id if changed */
if
(
p
->
format_id
!=
format
)
{
oldval
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_STREAM_FORMAT
,
0
);
if
(
oldval
!=
format
)
{
msleep
(
1
);
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_STREAM_FORMAT
,
format
);
}
p
->
format_id
=
format
;
}
if
(
codec
->
pcm_format_first
)
update_pcm_format
(
codec
,
p
,
nid
,
format
);
update_pcm_stream_id
(
codec
,
p
,
nid
,
stream_tag
,
channel_id
);
if
(
!
codec
->
pcm_format_first
)
update_pcm_format
(
codec
,
p
,
nid
,
format
);
p
->
active
=
1
;
p
->
dirty
=
0
;
...
...
@@ -3497,7 +3518,7 @@ static bool snd_hda_codec_get_supported_ps(struct hda_codec *codec, hda_nid_t fg
{
int
sup
=
snd_hda_param_read
(
codec
,
fg
,
AC_PAR_POWER_STATE
);
if
(
sup
<
0
)
if
(
sup
==
-
1
)
return
false
;
if
(
sup
&
power_state
)
return
true
;
...
...
@@ -4429,8 +4450,11 @@ static void __snd_hda_power_up(struct hda_codec *codec, bool wait_power_down)
/* If the power down delayed work was cancelled above before starting,
* then there is no need to go through power up here.
*/
if
(
codec
->
power_on
)
if
(
codec
->
power_on
)
{
if
(
codec
->
power_transition
<
0
)
codec
->
power_transition
=
0
;
return
;
}
trace_hda_power_up
(
codec
);
snd_hda_update_power_acct
(
codec
);
...
...
This diff is collapsed.
Click to expand it.
sound/pci/hda/hda_codec.h
浏览文件 @
ddf83485
...
...
@@ -865,6 +865,7 @@ struct hda_codec {
unsigned
int
no_trigger_sense
:
1
;
/* don't trigger at pin-sensing */
unsigned
int
ignore_misc_bit
:
1
;
/* ignore MISC_NO_PRESENCE bit */
unsigned
int
no_jack_detect
:
1
;
/* Machine has no jack-detection */
unsigned
int
pcm_format_first
:
1
;
/* PCM format must be set first */
#ifdef CONFIG_SND_HDA_POWER_SAVE
unsigned
int
power_on
:
1
;
/* current (global) power-state */
int
power_transition
;
/* power-state in transition */
...
...
This diff is collapsed.
Click to expand it.
sound/pci/hda/hda_intel.c
浏览文件 @
ddf83485
...
...
@@ -159,6 +159,7 @@ MODULE_SUPPORTED_DEVICE("{{Intel, ICH6},"
"{Intel, CPT},"
"{Intel, PPT},"
"{Intel, LPT},"
"{Intel, LPT_LP},"
"{Intel, HPT},"
"{Intel, PBG},"
"{Intel, SCH},"
...
...
@@ -3378,6 +3379,14 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
{
PCI_DEVICE
(
0x8086
,
0x8c20
),
.
driver_data
=
AZX_DRIVER_PCH
|
AZX_DCAPS_SCH_SNOOP
|
AZX_DCAPS_BUFSIZE
|
AZX_DCAPS_POSFIX_COMBO
},
/* Lynx Point-LP */
{
PCI_DEVICE
(
0x8086
,
0x9c20
),
.
driver_data
=
AZX_DRIVER_PCH
|
AZX_DCAPS_SCH_SNOOP
|
AZX_DCAPS_BUFSIZE
|
AZX_DCAPS_POSFIX_COMBO
},
/* Lynx Point-LP */
{
PCI_DEVICE
(
0x8086
,
0x9c21
),
.
driver_data
=
AZX_DRIVER_PCH
|
AZX_DCAPS_SCH_SNOOP
|
AZX_DCAPS_BUFSIZE
|
AZX_DCAPS_POSFIX_COMBO
},
/* Haswell */
{
PCI_DEVICE
(
0x8086
,
0x0c0c
),
.
driver_data
=
AZX_DRIVER_SCH
|
AZX_DCAPS_SCH_SNOOP
|
...
...
This diff is collapsed.
Click to expand it.
sound/pci/hda/hda_proc.c
浏览文件 @
ddf83485
...
...
@@ -415,7 +415,7 @@ static void print_digital_conv(struct snd_info_buffer *buffer,
if
(
digi1
&
AC_DIG1_EMPHASIS
)
snd_iprintf
(
buffer
,
" Preemphasis"
);
if
(
digi1
&
AC_DIG1_COPYRIGHT
)
snd_iprintf
(
buffer
,
" Copyright"
);
snd_iprintf
(
buffer
,
"
Non-
Copyright"
);
if
(
digi1
&
AC_DIG1_NONAUDIO
)
snd_iprintf
(
buffer
,
" Non-Audio"
);
if
(
digi1
&
AC_DIG1_PROFESSIONAL
)
...
...
This diff is collapsed.
Click to expand it.
sound/pci/hda/patch_ca0132.c
浏览文件 @
ddf83485
...
...
@@ -246,7 +246,7 @@ static void init_output(struct hda_codec *codec, hda_nid_t pin, hda_nid_t dac)
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_UNMUTE
);
}
if
(
dac
)
if
(
dac
&&
(
get_wcaps
(
codec
,
dac
)
&
AC_WCAP_OUT_AMP
)
)
snd_hda_codec_write
(
codec
,
dac
,
0
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_OUT_ZERO
);
}
...
...
@@ -261,7 +261,7 @@ static void init_input(struct hda_codec *codec, hda_nid_t pin, hda_nid_t adc)
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
));
}
if
(
adc
)
if
(
adc
&&
(
get_wcaps
(
codec
,
adc
)
&
AC_WCAP_IN_AMP
)
)
snd_hda_codec_write
(
codec
,
adc
,
0
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AMP_IN_UNMUTE
(
0
));
}
...
...
@@ -275,6 +275,10 @@ static int _add_switch(struct hda_codec *codec, hda_nid_t nid, const char *pfx,
int
type
=
dir
?
HDA_INPUT
:
HDA_OUTPUT
;
struct
snd_kcontrol_new
knew
=
HDA_CODEC_MUTE_MONO
(
namestr
,
nid
,
chan
,
0
,
type
);
if
((
query_amp_caps
(
codec
,
nid
,
type
)
&
AC_AMPCAP_MUTE
)
==
0
)
{
snd_printdd
(
"Skipping '%s %s Switch' (no mute on node 0x%x)
\n
"
,
pfx
,
dirstr
[
dir
],
nid
);
return
0
;
}
sprintf
(
namestr
,
"%s %s Switch"
,
pfx
,
dirstr
[
dir
]);
return
snd_hda_ctl_add
(
codec
,
nid
,
snd_ctl_new1
(
&
knew
,
codec
));
}
...
...
@@ -286,6 +290,10 @@ static int _add_volume(struct hda_codec *codec, hda_nid_t nid, const char *pfx,
int
type
=
dir
?
HDA_INPUT
:
HDA_OUTPUT
;
struct
snd_kcontrol_new
knew
=
HDA_CODEC_VOLUME_MONO
(
namestr
,
nid
,
chan
,
0
,
type
);
if
((
query_amp_caps
(
codec
,
nid
,
type
)
&
AC_AMPCAP_NUM_STEPS
)
==
0
)
{
snd_printdd
(
"Skipping '%s %s Volume' (no amp on node 0x%x)
\n
"
,
pfx
,
dirstr
[
dir
],
nid
);
return
0
;
}
sprintf
(
namestr
,
"%s %s Volume"
,
pfx
,
dirstr
[
dir
]);
return
snd_hda_ctl_add
(
codec
,
nid
,
snd_ctl_new1
(
&
knew
,
codec
));
}
...
...
@@ -464,50 +472,17 @@ static int chipio_read(struct hda_codec *codec,
}
/*
* PCM
stuff
s
* PCM
callback
s
*/
static
void
ca0132_setup_stream
(
struct
hda_codec
*
codec
,
hda_nid_t
nid
,
u32
stream_tag
,
int
channel_id
,
int
format
)
static
int
ca0132_playback_pcm_open
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
unsigned
int
oldval
,
newval
;
if
(
!
nid
)
return
;
snd_printdd
(
"ca0132_setup_stream: "
"NID=0x%x, stream=0x%x, channel=%d, format=0x%x
\n
"
,
nid
,
stream_tag
,
channel_id
,
format
);
/* update the format-id if changed */
oldval
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_STREAM_FORMAT
,
0
);
if
(
oldval
!=
format
)
{
msleep
(
20
);
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_STREAM_FORMAT
,
format
);
}
oldval
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_CONV
,
0
);
newval
=
(
stream_tag
<<
4
)
|
channel_id
;
if
(
oldval
!=
newval
)
{
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CHANNEL_STREAMID
,
newval
);
}
}
static
void
ca0132_cleanup_stream
(
struct
hda_codec
*
codec
,
hda_nid_t
nid
)
{
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_STREAM_FORMAT
,
0
);
snd_hda_codec_write
(
codec
,
nid
,
0
,
AC_VERB_SET_CHANNEL_STREAMID
,
0
);
struct
ca0132_spec
*
spec
=
codec
->
spec
;
return
snd_hda_multi_out_analog_open
(
codec
,
&
spec
->
multiout
,
substream
,
hinfo
);
}
/*
* PCM callbacks
*/
static
int
ca0132_playback_pcm_prepare
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
unsigned
int
stream_tag
,
...
...
@@ -515,10 +490,8 @@ static int ca0132_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_setup_stream
(
codec
,
spec
->
dacs
[
0
],
stream_tag
,
0
,
format
);
return
0
;
return
snd_hda_multi_out_analog_prepare
(
codec
,
&
spec
->
multiout
,
stream_tag
,
format
,
substream
);
}
static
int
ca0132_playback_pcm_cleanup
(
struct
hda_pcm_stream
*
hinfo
,
...
...
@@ -526,92 +499,45 @@ static int ca0132_playback_pcm_cleanup(struct hda_pcm_stream *hinfo,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_cleanup_stream
(
codec
,
spec
->
dacs
[
0
]);
return
0
;
return
snd_hda_multi_out_analog_cleanup
(
codec
,
&
spec
->
multiout
);
}
/*
* Digital out
*/
static
int
ca0132_dig_playback_pcm_prepare
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
unsigned
int
stream_tag
,
unsigned
int
format
,
struct
snd_pcm_substream
*
substream
)
static
int
ca0132_dig_playback_pcm_open
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_setup_stream
(
codec
,
spec
->
dig_out
,
stream_tag
,
0
,
format
);
return
0
;
return
snd_hda_multi_out_dig_open
(
codec
,
&
spec
->
multiout
);
}
static
int
ca0132_dig_playback_pcm_cleanup
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_cleanup_stream
(
codec
,
spec
->
dig_out
);
return
0
;
}
/*
* Analog capture
*/
static
int
ca0132_capture_pcm_prepare
(
struct
hda_pcm_stream
*
hinfo
,
static
int
ca0132_dig_playback_pcm_prepare
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
unsigned
int
stream_tag
,
unsigned
int
format
,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_setup_stream
(
codec
,
spec
->
adcs
[
substream
->
number
],
stream_tag
,
0
,
format
);
return
0
;
return
snd_hda_multi_out_dig_prepare
(
codec
,
&
spec
->
multiout
,
stream_tag
,
format
,
substream
);
}
static
int
ca0132_
capture
_pcm_cleanup
(
struct
hda_pcm_stream
*
hinfo
,
static
int
ca0132_
dig_playback
_pcm_cleanup
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_cleanup_stream
(
codec
,
spec
->
adcs
[
substream
->
number
]);
return
0
;
return
snd_hda_multi_out_dig_cleanup
(
codec
,
&
spec
->
multiout
);
}
/*
* Digital capture
*/
static
int
ca0132_dig_capture_pcm_prepare
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
unsigned
int
stream_tag
,
unsigned
int
format
,
struct
snd_pcm_substream
*
substream
)
static
int
ca0132_dig_playback_pcm_close
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_setup_stream
(
codec
,
spec
->
dig_in
,
stream_tag
,
0
,
format
);
return
0
;
}
static
int
ca0132_dig_capture_pcm_cleanup
(
struct
hda_pcm_stream
*
hinfo
,
struct
hda_codec
*
codec
,
struct
snd_pcm_substream
*
substream
)
{
struct
ca0132_spec
*
spec
=
codec
->
spec
;
ca0132_cleanup_stream
(
codec
,
spec
->
dig_in
);
return
0
;
return
snd_hda_multi_out_dig_close
(
codec
,
&
spec
->
multiout
);
}
/*
...
...
@@ -621,6 +547,7 @@ static struct hda_pcm_stream ca0132_pcm_analog_playback = {
.
channels_min
=
2
,
.
channels_max
=
2
,
.
ops
=
{
.
open
=
ca0132_playback_pcm_open
,
.
prepare
=
ca0132_playback_pcm_prepare
,
.
cleanup
=
ca0132_playback_pcm_cleanup
},
...
...
@@ -630,10 +557,6 @@ static struct hda_pcm_stream ca0132_pcm_analog_capture = {
.
substreams
=
1
,
.
channels_min
=
2
,
.
channels_max
=
2
,
.
ops
=
{
.
prepare
=
ca0132_capture_pcm_prepare
,
.
cleanup
=
ca0132_capture_pcm_cleanup
},
};
static
struct
hda_pcm_stream
ca0132_pcm_digital_playback
=
{
...
...
@@ -641,6 +564,8 @@ static struct hda_pcm_stream ca0132_pcm_digital_playback = {
.
channels_min
=
2
,
.
channels_max
=
2
,
.
ops
=
{
.
open
=
ca0132_dig_playback_pcm_open
,
.
close
=
ca0132_dig_playback_pcm_close
,
.
prepare
=
ca0132_dig_playback_pcm_prepare
,
.
cleanup
=
ca0132_dig_playback_pcm_cleanup
},
...
...
@@ -650,10 +575,6 @@ static struct hda_pcm_stream ca0132_pcm_digital_capture = {
.
substreams
=
1
,
.
channels_min
=
2
,
.
channels_max
=
2
,
.
ops
=
{
.
prepare
=
ca0132_dig_capture_pcm_prepare
,
.
cleanup
=
ca0132_dig_capture_pcm_cleanup
},
};
static
int
ca0132_build_pcms
(
struct
hda_codec
*
codec
)
...
...
@@ -928,18 +849,16 @@ static int ca0132_build_controls(struct hda_codec *codec)
spec
->
dig_out
);
if
(
err
<
0
)
return
err
;
err
=
add_out_volume
(
codec
,
spec
->
dig_out
,
"IEC958"
);
err
=
snd_hda_create_spdif_share_sw
(
codec
,
&
spec
->
multiout
);
if
(
err
<
0
)
return
err
;
/* spec->multiout.share_spdif = 1; */
}
if
(
spec
->
dig_in
)
{
err
=
snd_hda_create_spdif_in_ctls
(
codec
,
spec
->
dig_in
);
if
(
err
<
0
)
return
err
;
err
=
add_in_volume
(
codec
,
spec
->
dig_in
,
"IEC958"
);
if
(
err
<
0
)
return
err
;
}
return
0
;
}
...
...
@@ -961,6 +880,9 @@ static void ca0132_config(struct hda_codec *codec)
struct
ca0132_spec
*
spec
=
codec
->
spec
;
struct
auto_pin_cfg
*
cfg
=
&
spec
->
autocfg
;
codec
->
pcm_format_first
=
1
;
codec
->
no_sticky_stream
=
1
;
/* line-outs */
cfg
->
line_outs
=
1
;
cfg
->
line_out_pins
[
0
]
=
0x0b
;
/* front */
...
...
@@ -988,14 +910,24 @@ static void ca0132_config(struct hda_codec *codec)
/* Mic-in */
spec
->
input_pins
[
0
]
=
0x12
;
spec
->
input_labels
[
0
]
=
"Mic
-In
"
;
spec
->
input_labels
[
0
]
=
"Mic"
;
spec
->
adcs
[
0
]
=
0x07
;
/* Line-In */
spec
->
input_pins
[
1
]
=
0x11
;
spec
->
input_labels
[
1
]
=
"Line
-In
"
;
spec
->
input_labels
[
1
]
=
"Line"
;
spec
->
adcs
[
1
]
=
0x08
;
spec
->
num_inputs
=
2
;
/* SPDIF I/O */
spec
->
dig_out
=
0x05
;
spec
->
multiout
.
dig_out_nid
=
spec
->
dig_out
;
cfg
->
dig_out_pins
[
0
]
=
0x0c
;
cfg
->
dig_outs
=
1
;
cfg
->
dig_out_type
[
0
]
=
HDA_PCM_TYPE_SPDIF
;
spec
->
dig_in
=
0x09
;
cfg
->
dig_in_pin
=
0x0e
;
cfg
->
dig_in_type
=
HDA_PCM_TYPE_SPDIF
;
}
static
void
ca0132_init_chip
(
struct
hda_codec
*
codec
)
...
...
This diff is collapsed.
Click to expand it.
sound/pci/hda/patch_sigmatel.c
浏览文件 @
ddf83485
...
...
@@ -4272,7 +4272,8 @@ static int stac92xx_init(struct hda_codec *codec)
unsigned
int
gpio
;
int
i
;
snd_hda_sequence_write
(
codec
,
spec
->
init
);
if
(
spec
->
init
)
snd_hda_sequence_write
(
codec
,
spec
->
init
);
/* power down adcs initially */
if
(
spec
->
powerdown_adcs
)
...
...
@@ -5748,7 +5749,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
/* fallthru */
case
0x111d76b4
:
/* 6 Port without Analog Mixer */
case
0x111d76b5
:
spec
->
init
=
stac92hd71bxx_core_init
;
codec
->
slave_dig_outs
=
stac92hd71bxx_slave_dig_outs
;
spec
->
num_dmics
=
stac92xx_connected_ports
(
codec
,
stac92hd71bxx_dmic_nids
,
...
...
@@ -5773,7 +5773,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
spec
->
stream_delay
=
40
;
/* 40 milliseconds */
/* disable VSW */
spec
->
init
=
stac92hd71bxx_core_init
;
unmute_init
++
;
snd_hda_codec_set_pincfg
(
codec
,
0x0f
,
0x40f000f0
);
snd_hda_codec_set_pincfg
(
codec
,
0x19
,
0x40f000f3
);
...
...
@@ -5788,7 +5787,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
/* fallthru */
default:
spec
->
init
=
stac92hd71bxx_core_init
;
codec
->
slave_dig_outs
=
stac92hd71bxx_slave_dig_outs
;
spec
->
num_dmics
=
stac92xx_connected_ports
(
codec
,
stac92hd71bxx_dmic_nids
,
...
...
@@ -5796,6 +5794,9 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
break
;
}
if
(
get_wcaps_type
(
get_wcaps
(
codec
,
0x28
))
==
AC_WID_VOL_KNB
)
spec
->
init
=
stac92hd71bxx_core_init
;
if
(
get_wcaps
(
codec
,
0xa
)
&
AC_WCAP_IN_AMP
)
snd_hda_sequence_write_cache
(
codec
,
unmute_init
);
...
...
This diff is collapsed.
Click to expand it.
sound/pci/lx6464es/lx6464es.c
浏览文件 @
ddf83485
...
...
@@ -851,6 +851,8 @@ static int __devinit lx_pcm_create(struct lx6464es *chip)
/* hardcoded device name & channel count */
err
=
snd_pcm_new
(
chip
->
card
,
(
char
*
)
card_name
,
0
,
1
,
1
,
&
pcm
);
if
(
err
<
0
)
return
err
;
pcm
->
private_data
=
chip
;
...
...
This diff is collapsed.
Click to expand it.
sound/pci/rme9652/hdspm.c
浏览文件 @
ddf83485
...
...
@@ -6585,7 +6585,7 @@ static int __devinit snd_hdspm_create(struct snd_card *card,
snd_printk
(
KERN_ERR
"HDSPM: "
"unable to kmalloc Mixer memory of %d Bytes
\n
"
,
(
int
)
sizeof
(
struct
hdspm_mixer
));
return
err
;
return
-
ENOMEM
;
}
hdspm
->
port_names_in
=
NULL
;
...
...
This diff is collapsed.
Click to expand it.
sound/pci/sis7019.c
浏览文件 @
ddf83485
...
...
@@ -1377,8 +1377,9 @@ static int __devinit sis_chip_create(struct snd_card *card,
if
(
rc
)
goto
error_out_cleanup
;
if
(
request_irq
(
pci
->
irq
,
sis_interrupt
,
IRQF_SHARED
,
KBUILD_MODNAME
,
sis
))
{
rc
=
request_irq
(
pci
->
irq
,
sis_interrupt
,
IRQF_SHARED
,
KBUILD_MODNAME
,
sis
);
if
(
rc
)
{
dev_err
(
&
pci
->
dev
,
"unable to allocate irq %d
\n
"
,
sis
->
irq
);
goto
error_out_cleanup
;
}
...
...
This diff is collapsed.
Click to expand it.
sound/ppc/powermac.c
浏览文件 @
ddf83485
...
...
@@ -143,7 +143,7 @@ static int __devexit snd_pmac_remove(struct platform_device *devptr)
return
0
;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM
_SLEEP
static
int
snd_pmac_driver_suspend
(
struct
device
*
dev
)
{
struct
snd_card
*
card
=
dev_get_drvdata
(
dev
);
...
...
This diff is collapsed.
Click to expand it.
sound/ppc/snd_ps3.c
浏览文件 @
ddf83485
...
...
@@ -1040,6 +1040,7 @@ static int __devinit snd_ps3_driver_probe(struct ps3_system_bus_device *dev)
GFP_KERNEL
);
if
(
!
the_card
.
null_buffer_start_vaddr
)
{
pr_info
(
"%s: nullbuffer alloc failed
\n
"
,
__func__
);
ret
=
-
ENOMEM
;
goto
clean_preallocate
;
}
pr_debug
(
"%s: null vaddr=%p dma=%#llx
\n
"
,
__func__
,
...
...
This diff is collapsed.
Click to expand it.
sound/soc/blackfin/bf6xx-sport.c
浏览文件 @
ddf83485
...
...
@@ -413,7 +413,14 @@ EXPORT_SYMBOL(sport_create);
void
sport_delete
(
struct
sport_device
*
sport
)
{
if
(
sport
->
tx_desc
)
dma_free_coherent
(
NULL
,
sport
->
tx_desc_size
,
sport
->
tx_desc
,
0
);
if
(
sport
->
rx_desc
)
dma_free_coherent
(
NULL
,
sport
->
rx_desc_size
,
sport
->
rx_desc
,
0
);
sport_free_resource
(
sport
);
kfree
(
sport
);
}
EXPORT_SYMBOL
(
sport_delete
);
...
...
This diff is collapsed.
Click to expand it.
sound/soc/codecs/wm5102.c
浏览文件 @
ddf83485
...
...
@@ -128,13 +128,9 @@ SOC_SINGLE_TLV("EQ4 B5 Volume", ARIZONA_EQ4_2, ARIZONA_EQ4_B5_GAIN_SHIFT,
ARIZONA_MIXER_CONTROLS
(
"DRC1L"
,
ARIZONA_DRC1LMIX_INPUT_1_SOURCE
),
ARIZONA_MIXER_CONTROLS
(
"DRC1R"
,
ARIZONA_DRC1RMIX_INPUT_1_SOURCE
),
ARIZONA_MIXER_CONTROLS
(
"DRC2L"
,
ARIZONA_DRC2LMIX_INPUT_1_SOURCE
),
ARIZONA_MIXER_CONTROLS
(
"DRC2R"
,
ARIZONA_DRC2RMIX_INPUT_1_SOURCE
),
SND_SOC_BYTES_MASK
(
"DRC1"
,
ARIZONA_DRC1_CTRL1
,
5
,
ARIZONA_DRC1R_ENA
|
ARIZONA_DRC1L_ENA
),
SND_SOC_BYTES_MASK
(
"DRC2"
,
ARIZONA_DRC2_CTRL1
,
5
,
ARIZONA_DRC2R_ENA
|
ARIZONA_DRC2L_ENA
),
ARIZONA_MIXER_CONTROLS
(
"LHPF1"
,
ARIZONA_HPLP1MIX_INPUT_1_SOURCE
),
ARIZONA_MIXER_CONTROLS
(
"LHPF2"
,
ARIZONA_HPLP2MIX_INPUT_1_SOURCE
),
...
...
@@ -236,8 +232,6 @@ ARIZONA_MIXER_ENUMS(EQ4, ARIZONA_EQ4MIX_INPUT_1_SOURCE);
ARIZONA_MIXER_ENUMS
(
DRC1L
,
ARIZONA_DRC1LMIX_INPUT_1_SOURCE
);
ARIZONA_MIXER_ENUMS
(
DRC1R
,
ARIZONA_DRC1RMIX_INPUT_1_SOURCE
);
ARIZONA_MIXER_ENUMS
(
DRC2L
,
ARIZONA_DRC2LMIX_INPUT_1_SOURCE
);
ARIZONA_MIXER_ENUMS
(
DRC2R
,
ARIZONA_DRC2RMIX_INPUT_1_SOURCE
);
ARIZONA_MIXER_ENUMS
(
LHPF1
,
ARIZONA_HPLP1MIX_INPUT_1_SOURCE
);
ARIZONA_MIXER_ENUMS
(
LHPF2
,
ARIZONA_HPLP2MIX_INPUT_1_SOURCE
);
...
...
@@ -349,10 +343,6 @@ SND_SOC_DAPM_PGA("DRC1L", ARIZONA_DRC1_CTRL1, ARIZONA_DRC1L_ENA_SHIFT, 0,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"DRC1R"
,
ARIZONA_DRC1_CTRL1
,
ARIZONA_DRC1R_ENA_SHIFT
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"DRC2L"
,
ARIZONA_DRC2_CTRL1
,
ARIZONA_DRC2L_ENA_SHIFT
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"DRC2R"
,
ARIZONA_DRC2_CTRL1
,
ARIZONA_DRC2R_ENA_SHIFT
,
0
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"LHPF1"
,
ARIZONA_HPLPF1_1
,
ARIZONA_LHPF1_ENA_SHIFT
,
0
,
NULL
,
0
),
...
...
@@ -466,8 +456,6 @@ ARIZONA_MIXER_WIDGETS(EQ4, "EQ4"),
ARIZONA_MIXER_WIDGETS
(
DRC1L
,
"DRC1L"
),
ARIZONA_MIXER_WIDGETS
(
DRC1R
,
"DRC1R"
),
ARIZONA_MIXER_WIDGETS
(
DRC2L
,
"DRC2L"
),
ARIZONA_MIXER_WIDGETS
(
DRC2R
,
"DRC2R"
),
ARIZONA_MIXER_WIDGETS
(
LHPF1
,
"LHPF1"
),
ARIZONA_MIXER_WIDGETS
(
LHPF2
,
"LHPF2"
),
...
...
@@ -553,8 +541,6 @@ SND_SOC_DAPM_OUTPUT("SPKDAT1R"),
{ name, "EQ4", "EQ4" }, \
{ name, "DRC1L", "DRC1L" }, \
{ name, "DRC1R", "DRC1R" }, \
{ name, "DRC2L", "DRC2L" }, \
{ name, "DRC2R", "DRC2R" }, \
{ name, "LHPF1", "LHPF1" }, \
{ name, "LHPF2", "LHPF2" }, \
{ name, "LHPF3", "LHPF3" }, \
...
...
@@ -639,6 +625,15 @@ static const struct snd_soc_dapm_route wm5102_dapm_routes[] = {
{
"AIF2 Capture"
,
NULL
,
"SYSCLK"
},
{
"AIF3 Capture"
,
NULL
,
"SYSCLK"
},
{
"IN1L PGA"
,
NULL
,
"IN1L"
},
{
"IN1R PGA"
,
NULL
,
"IN1R"
},
{
"IN2L PGA"
,
NULL
,
"IN2L"
},
{
"IN2R PGA"
,
NULL
,
"IN2R"
},
{
"IN3L PGA"
,
NULL
,
"IN3L"
},
{
"IN3R PGA"
,
NULL
,
"IN3R"
},
ARIZONA_MIXER_ROUTES
(
"OUT1L"
,
"HPOUT1L"
),
ARIZONA_MIXER_ROUTES
(
"OUT1R"
,
"HPOUT1R"
),
ARIZONA_MIXER_ROUTES
(
"OUT2L"
,
"HPOUT2L"
),
...
...
@@ -675,8 +670,6 @@ static const struct snd_soc_dapm_route wm5102_dapm_routes[] = {
ARIZONA_MIXER_ROUTES
(
"DRC1L"
,
"DRC1L"
),
ARIZONA_MIXER_ROUTES
(
"DRC1R"
,
"DRC1R"
),
ARIZONA_MIXER_ROUTES
(
"DRC2L"
,
"DRC2L"
),
ARIZONA_MIXER_ROUTES
(
"DRC2R"
,
"DRC2R"
),
ARIZONA_MIXER_ROUTES
(
"LHPF1"
,
"LHPF1"
),
ARIZONA_MIXER_ROUTES
(
"LHPF2"
,
"LHPF2"
),
...
...
This diff is collapsed.
Click to expand it.
sound/soc/codecs/wm5110.c
浏览文件 @
ddf83485
...
...
@@ -681,6 +681,18 @@ static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {
{
"AIF2 Capture"
,
NULL
,
"SYSCLK"
},
{
"AIF3 Capture"
,
NULL
,
"SYSCLK"
},
{
"IN1L PGA"
,
NULL
,
"IN1L"
},
{
"IN1R PGA"
,
NULL
,
"IN1R"
},
{
"IN2L PGA"
,
NULL
,
"IN2L"
},
{
"IN2R PGA"
,
NULL
,
"IN2R"
},
{
"IN3L PGA"
,
NULL
,
"IN3L"
},
{
"IN3R PGA"
,
NULL
,
"IN3R"
},
{
"IN4L PGA"
,
NULL
,
"IN4L"
},
{
"IN4R PGA"
,
NULL
,
"IN4R"
},
ARIZONA_MIXER_ROUTES
(
"OUT1L"
,
"HPOUT1L"
),
ARIZONA_MIXER_ROUTES
(
"OUT1R"
,
"HPOUT1R"
),
ARIZONA_MIXER_ROUTES
(
"OUT2L"
,
"HPOUT2L"
),
...
...
This diff is collapsed.
Click to expand it.
sound/soc/codecs/wm8962.c
浏览文件 @
ddf83485
...
...
@@ -3733,21 +3733,6 @@ static int wm8962_runtime_resume(struct device *dev)
regcache_sync
(
wm8962
->
regmap
);
regmap_update_bits
(
wm8962
->
regmap
,
WM8962_ANTI_POP
,
WM8962_STARTUP_BIAS_ENA
|
WM8962_VMID_BUF_ENA
,
WM8962_STARTUP_BIAS_ENA
|
WM8962_VMID_BUF_ENA
);
/* Bias enable at 2*50k for ramp */
regmap_update_bits
(
wm8962
->
regmap
,
WM8962_PWR_MGMT_1
,
WM8962_VMID_SEL_MASK
|
WM8962_BIAS_ENA
,
WM8962_BIAS_ENA
|
0x180
);
msleep
(
5
);
/* VMID back to 2x250k for standby */
regmap_update_bits
(
wm8962
->
regmap
,
WM8962_PWR_MGMT_1
,
WM8962_VMID_SEL_MASK
,
0x100
);
return
0
;
}
...
...
This diff is collapsed.
Click to expand it.
sound/soc/codecs/wm8994.c
浏览文件 @
ddf83485
...
...
@@ -4038,6 +4038,8 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
break
;
case
WM8958
:
if
(
wm8994
->
revision
<
1
)
{
snd_soc_dapm_add_routes
(
dapm
,
wm8994_intercon
,
ARRAY_SIZE
(
wm8994_intercon
));
snd_soc_dapm_add_routes
(
dapm
,
wm8994_revd_intercon
,
ARRAY_SIZE
(
wm8994_revd_intercon
));
snd_soc_dapm_add_routes
(
dapm
,
wm8994_lateclk_revd_intercon
,
...
...
This diff is collapsed.
Click to expand it.
sound/soc/codecs/wm9712.c
浏览文件 @
ddf83485
...
...
@@ -148,7 +148,7 @@ SOC_SINGLE("Treble Volume", AC97_MASTER_TONE, 0, 15, 1),
SOC_SINGLE
(
"Capture ADC Switch"
,
AC97_REC_GAIN
,
15
,
1
,
1
),
SOC_ENUM
(
"Capture Volume Steps"
,
wm9712_enum
[
6
]),
SOC_DOUBLE
(
"Capture Volume"
,
AC97_REC_GAIN
,
8
,
0
,
63
,
1
),
SOC_DOUBLE
(
"Capture Volume"
,
AC97_REC_GAIN
,
8
,
0
,
63
,
0
),
SOC_SINGLE
(
"Capture ZC Switch"
,
AC97_REC_GAIN
,
7
,
1
,
0
),
SOC_SINGLE_TLV
(
"Mic 1 Volume"
,
AC97_MIC
,
8
,
31
,
1
,
main_tlv
),
...
...
@@ -272,7 +272,7 @@ SOC_DAPM_ENUM("Route", wm9712_enum[9]);
/* Mic select */
static
const
struct
snd_kcontrol_new
wm9712_mic_src_controls
=
SOC_DAPM_ENUM
(
"
Route
"
,
wm9712_enum
[
7
]);
SOC_DAPM_ENUM
(
"
Mic Source Select
"
,
wm9712_enum
[
7
]);
/* diff select */
static
const
struct
snd_kcontrol_new
wm9712_diff_sel_controls
=
...
...
@@ -291,7 +291,9 @@ SND_SOC_DAPM_MUX("Left Capture Select", SND_SOC_NOPM, 0, 0,
&
wm9712_capture_selectl_controls
),
SND_SOC_DAPM_MUX
(
"Right Capture Select"
,
SND_SOC_NOPM
,
0
,
0
,
&
wm9712_capture_selectr_controls
),
SND_SOC_DAPM_MUX
(
"Mic Select Source"
,
SND_SOC_NOPM
,
0
,
0
,
SND_SOC_DAPM_MUX
(
"Left Mic Select Source"
,
SND_SOC_NOPM
,
0
,
0
,
&
wm9712_mic_src_controls
),
SND_SOC_DAPM_MUX
(
"Right Mic Select Source"
,
SND_SOC_NOPM
,
0
,
0
,
&
wm9712_mic_src_controls
),
SND_SOC_DAPM_MUX
(
"Differential Source"
,
SND_SOC_NOPM
,
0
,
0
,
&
wm9712_diff_sel_controls
),
...
...
@@ -319,6 +321,7 @@ SND_SOC_DAPM_PGA("Out 3 PGA", AC97_INT_PAGING, 5, 1, NULL, 0),
SND_SOC_DAPM_PGA
(
"Line PGA"
,
AC97_INT_PAGING
,
2
,
1
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"Phone PGA"
,
AC97_INT_PAGING
,
1
,
1
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"Mic PGA"
,
AC97_INT_PAGING
,
0
,
1
,
NULL
,
0
),
SND_SOC_DAPM_PGA
(
"Differential Mic"
,
SND_SOC_NOPM
,
0
,
0
,
NULL
,
0
),
SND_SOC_DAPM_MICBIAS
(
"Mic Bias"
,
AC97_INT_PAGING
,
10
,
1
),
SND_SOC_DAPM_OUTPUT
(
"MONOOUT"
),
SND_SOC_DAPM_OUTPUT
(
"HPOUTL"
),
...
...
@@ -379,6 +382,18 @@ static const struct snd_soc_dapm_route wm9712_audio_map[] = {
{
"Mic PGA"
,
NULL
,
"MIC1"
},
{
"Mic PGA"
,
NULL
,
"MIC2"
},
/* microphones */
{
"Differential Mic"
,
NULL
,
"MIC1"
},
{
"Differential Mic"
,
NULL
,
"MIC2"
},
{
"Left Mic Select Source"
,
"Mic 1"
,
"MIC1"
},
{
"Left Mic Select Source"
,
"Mic 2"
,
"MIC2"
},
{
"Left Mic Select Source"
,
"Stereo"
,
"MIC1"
},
{
"Left Mic Select Source"
,
"Differential"
,
"Differential Mic"
},
{
"Right Mic Select Source"
,
"Mic 1"
,
"MIC1"
},
{
"Right Mic Select Source"
,
"Mic 2"
,
"MIC2"
},
{
"Right Mic Select Source"
,
"Stereo"
,
"MIC2"
},
{
"Right Mic Select Source"
,
"Differential"
,
"Differential Mic"
},
/* left capture selector */
{
"Left Capture Select"
,
"Mic"
,
"MIC1"
},
{
"Left Capture Select"
,
"Speaker Mixer"
,
"Speaker Mixer"
},
...
...
This diff is collapsed.
Click to expand it.
sound/soc/davinci/davinci-mcasp.c
浏览文件 @
ddf83485
...
...
@@ -380,14 +380,20 @@ static void mcasp_start_tx(struct davinci_audio_dev *dev)
static
void
davinci_mcasp_start
(
struct
davinci_audio_dev
*
dev
,
int
stream
)
{
if
(
stream
==
SNDRV_PCM_STREAM_PLAYBACK
)
{
if
(
dev
->
txnumevt
)
/* enable FIFO */
if
(
dev
->
txnumevt
)
{
/* enable FIFO */
mcasp_clr_bits
(
dev
->
base
+
DAVINCI_MCASP_WFIFOCTL
,
FIFO_ENABLE
);
mcasp_set_bits
(
dev
->
base
+
DAVINCI_MCASP_WFIFOCTL
,
FIFO_ENABLE
);
}
mcasp_start_tx
(
dev
);
}
else
{
if
(
dev
->
rxnumevt
)
/* enable FIFO */
if
(
dev
->
rxnumevt
)
{
/* enable FIFO */
mcasp_clr_bits
(
dev
->
base
+
DAVINCI_MCASP_RFIFOCTL
,
FIFO_ENABLE
);
mcasp_set_bits
(
dev
->
base
+
DAVINCI_MCASP_RFIFOCTL
,
FIFO_ENABLE
);
}
mcasp_start_rx
(
dev
);
}
}
...
...
This diff is collapsed.
Click to expand it.
sound/soc/fsl/imx-ssi.c
浏览文件 @
ddf83485
...
...
@@ -380,13 +380,14 @@ static int imx_ssi_dai_probe(struct snd_soc_dai *dai)
static
struct
snd_soc_dai_driver
imx_ssi_dai
=
{
.
probe
=
imx_ssi_dai_probe
,
.
playback
=
{
.
channels_min
=
1
,
/* The SSI does not support monaural audio. */
.
channels_min
=
2
,
.
channels_max
=
2
,
.
rates
=
SNDRV_PCM_RATE_8000_96000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
.
capture
=
{
.
channels_min
=
1
,
.
channels_min
=
2
,
.
channels_max
=
2
,
.
rates
=
SNDRV_PCM_RATE_8000_96000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
...
...
This diff is collapsed.
Click to expand it.
sound/soc/mxs/Kconfig
浏览文件 @
ddf83485
...
...
@@ -10,7 +10,7 @@ menuconfig SND_MXS_SOC
if SND_MXS_SOC
config SND_SOC_MXS_SGTL5000
tristate "SoC Audio support for
i.MX
boards with sgtl5000"
tristate "SoC Audio support for
MXS
boards with sgtl5000"
depends on I2C
select SND_SOC_SGTL5000
help
...
...
This diff is collapsed.
Click to expand it.
sound/soc/omap/mcbsp.c
浏览文件 @
ddf83485
...
...
@@ -745,7 +745,7 @@ int omap_mcbsp_6pin_src_mux(struct omap_mcbsp *mcbsp, u8 mux)
{
const
char
*
signal
,
*
src
;
if
(
mcbsp
->
pdata
->
mux_signal
)
if
(
!
mcbsp
->
pdata
->
mux_signal
)
return
-
EINVAL
;
switch
(
mux
)
{
...
...
This diff is collapsed.
Click to expand it.
sound/soc/samsung/pcm.c
浏览文件 @
ddf83485
...
...
@@ -20,7 +20,7 @@
#include <sound/pcm_params.h>
#include <plat/audio.h>
#include <
plat
/dma.h>
#include <
mach
/dma.h>
#include "dma.h"
#include "pcm.h"
...
...
This diff is collapsed.
Click to expand it.
sound/soc/soc-core.c
浏览文件 @
ddf83485
...
...
@@ -826,7 +826,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, int num)
}
if
(
!
rtd
->
cpu_dai
)
{
dev_
dbg
(
card
->
dev
,
"CPU DAI %s not registered
\n
"
,
dev_
err
(
card
->
dev
,
"CPU DAI %s not registered
\n
"
,
dai_link
->
cpu_dai_name
);
return
-
EPROBE_DEFER
;
}
...
...
@@ -857,14 +857,14 @@ static int soc_bind_dai_link(struct snd_soc_card *card, int num)
}
if
(
!
rtd
->
codec_dai
)
{
dev_
dbg
(
card
->
dev
,
"CODEC DAI %s not registered
\n
"
,
dev_
err
(
card
->
dev
,
"CODEC DAI %s not registered
\n
"
,
dai_link
->
codec_dai_name
);
return
-
EPROBE_DEFER
;
}
}
if
(
!
rtd
->
codec
)
{
dev_
dbg
(
card
->
dev
,
"CODEC %s not registered
\n
"
,
dev_
err
(
card
->
dev
,
"CODEC %s not registered
\n
"
,
dai_link
->
codec_name
);
return
-
EPROBE_DEFER
;
}
...
...
@@ -888,7 +888,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, int num)
rtd
->
platform
=
platform
;
}
if
(
!
rtd
->
platform
)
{
dev_
dbg
(
card
->
dev
,
"platform %s not registered
\n
"
,
dev_
err
(
card
->
dev
,
"platform %s not registered
\n
"
,
dai_link
->
platform_name
);
return
-
EPROBE_DEFER
;
}
...
...
@@ -1481,6 +1481,8 @@ static int soc_check_aux_dev(struct snd_soc_card *card, int num)
return
0
;
}
dev_err
(
card
->
dev
,
"%s not registered
\n
"
,
aux_dev
->
codec_name
);
return
-
EPROBE_DEFER
;
}
...
...
This diff is collapsed.
Click to expand it.
sound/soc/soc-jack.c
浏览文件 @
ddf83485
...
...
@@ -103,7 +103,7 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
}
/* Report before the DAPM sync to help users updating micbias status */
blocking_notifier_call_chain
(
&
jack
->
notifier
,
status
,
jack
);
blocking_notifier_call_chain
(
&
jack
->
notifier
,
jack
->
status
,
jack
);
snd_soc_dapm_sync
(
dapm
);
...
...
This diff is collapsed.
Click to expand it.
sound/usb/endpoint.c
浏览文件 @
ddf83485
...
...
@@ -821,10 +821,6 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep)
if
(
++
ep
->
use_count
!=
1
)
return
0
;
/* just to be sure */
deactivate_urbs
(
ep
,
0
,
1
);
wait_clear_urbs
(
ep
);
ep
->
active_mask
=
0
;
ep
->
unlink_mask
=
0
;
ep
->
phase
=
0
;
...
...
This diff is collapsed.
Click to expand it.
sound/usb/pcm.c
浏览文件 @
ddf83485
...
...
@@ -544,6 +544,9 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
subs
->
last_frame_number
=
0
;
runtime
->
delay
=
0
;
/* clear the pending deactivation on the target EPs */
deactivate_endpoints
(
subs
);
/* for playback, submit the URBs now; otherwise, the first hwptr_done
* updates for all URBs would happen at the same time when starting */
if
(
subs
->
direction
==
SNDRV_PCM_STREAM_PLAYBACK
)
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部