Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
77088cc9
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
170
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
77088cc9
编写于
11月 23, 2011
作者:
T
Takashi Iwai
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fix/asoc' into for-linus
上级
6759dc32
ed3e80c4
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
88 addition
and
20 deletion
+88
-20
MAINTAINERS
MAINTAINERS
+0
-1
sound/soc/codecs/adau1373.c
sound/soc/codecs/adau1373.c
+1
-1
sound/soc/codecs/cs4271.c
sound/soc/codecs/cs4271.c
+5
-3
sound/soc/codecs/rt5631.c
sound/soc/codecs/rt5631.c
+1
-1
sound/soc/codecs/sgtl5000.c
sound/soc/codecs/sgtl5000.c
+1
-1
sound/soc/codecs/sta32x.c
sound/soc/codecs/sta32x.c
+62
-1
sound/soc/codecs/sta32x.h
sound/soc/codecs/sta32x.h
+1
-0
sound/soc/codecs/wm8731.c
sound/soc/codecs/wm8731.c
+1
-0
sound/soc/codecs/wm8753.c
sound/soc/codecs/wm8753.c
+3
-0
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8962.c
+2
-2
sound/soc/codecs/wm8993.c
sound/soc/codecs/wm8993.c
+1
-1
sound/soc/codecs/wm9081.c
sound/soc/codecs/wm9081.c
+5
-5
sound/soc/codecs/wm9090.c
sound/soc/codecs/wm9090.c
+3
-3
sound/soc/codecs/wm_hubs.c
sound/soc/codecs/wm_hubs.c
+1
-1
sound/soc/fsl/fsl_ssi.c
sound/soc/fsl/fsl_ssi.c
+1
-0
未找到文件。
MAINTAINERS
浏览文件 @
77088cc9
...
...
@@ -5648,7 +5648,6 @@ F: drivers/media/video/*7146*
F: include/media/*7146*
SAMSUNG AUDIO (ASoC) DRIVERS
M: Jassi Brar <jassisinghbrar@gmail.com>
M: Sangbeom Kim <sbkim73@samsung.com>
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
S: Supported
...
...
sound/soc/codecs/adau1373.c
浏览文件 @
77088cc9
...
...
@@ -245,7 +245,7 @@ static const char *adau1373_bass_hpf_cutoff_text[] = {
};
static
const
unsigned
int
adau1373_bass_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
4
),
TLV_DB_RANGE_HEAD
(
3
),
0
,
2
,
TLV_DB_SCALE_ITEM
(
-
600
,
600
,
1
),
3
,
4
,
TLV_DB_SCALE_ITEM
(
950
,
250
,
0
),
5
,
7
,
TLV_DB_SCALE_ITEM
(
1400
,
150
,
0
),
...
...
sound/soc/codecs/cs4271.c
浏览文件 @
77088cc9
...
...
@@ -434,7 +434,8 @@ static int cs4271_soc_suspend(struct snd_soc_codec *codec, pm_message_t mesg)
{
int
ret
;
/* Set power-down bit */
ret
=
snd_soc_update_bits
(
codec
,
CS4271_MODE2
,
0
,
CS4271_MODE2_PDN
);
ret
=
snd_soc_update_bits
(
codec
,
CS4271_MODE2
,
CS4271_MODE2_PDN
,
CS4271_MODE2_PDN
);
if
(
ret
<
0
)
return
ret
;
return
0
;
...
...
@@ -501,8 +502,9 @@ static int cs4271_probe(struct snd_soc_codec *codec)
return
ret
;
}
ret
=
snd_soc_update_bits
(
codec
,
CS4271_MODE2
,
0
,
CS4271_MODE2_PDN
|
CS4271_MODE2_CPEN
);
ret
=
snd_soc_update_bits
(
codec
,
CS4271_MODE2
,
CS4271_MODE2_PDN
|
CS4271_MODE2_CPEN
,
CS4271_MODE2_PDN
|
CS4271_MODE2_CPEN
);
if
(
ret
<
0
)
return
ret
;
ret
=
snd_soc_update_bits
(
codec
,
CS4271_MODE2
,
CS4271_MODE2_PDN
,
0
);
...
...
sound/soc/codecs/rt5631.c
浏览文件 @
77088cc9
...
...
@@ -177,7 +177,7 @@ static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -95625, 375, 0);
static
const
DECLARE_TLV_DB_SCALE
(
in_vol_tlv
,
-
3450
,
150
,
0
);
/* {0, +20, +24, +30, +35, +40, +44, +50, +52}dB */
static
unsigned
int
mic_bst_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
6
),
TLV_DB_RANGE_HEAD
(
7
),
0
,
0
,
TLV_DB_SCALE_ITEM
(
0
,
0
,
0
),
1
,
1
,
TLV_DB_SCALE_ITEM
(
2000
,
0
,
0
),
2
,
2
,
TLV_DB_SCALE_ITEM
(
2400
,
0
,
0
),
...
...
sound/soc/codecs/sgtl5000.c
浏览文件 @
77088cc9
...
...
@@ -365,7 +365,7 @@ static const DECLARE_TLV_DB_SCALE(capture_6db_attenuate, -600, 600, 0);
/* tlv for mic gain, 0db 20db 30db 40db */
static
const
unsigned
int
mic_gain_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
4
),
TLV_DB_RANGE_HEAD
(
2
),
0
,
0
,
TLV_DB_SCALE_ITEM
(
0
,
0
,
0
),
1
,
3
,
TLV_DB_SCALE_ITEM
(
2000
,
1000
,
0
),
};
...
...
sound/soc/codecs/sta32x.c
浏览文件 @
77088cc9
...
...
@@ -76,6 +76,8 @@ struct sta32x_priv {
unsigned
int
mclk
;
unsigned
int
format
;
u32
coef_shadow
[
STA32X_COEF_COUNT
];
};
static
const
DECLARE_TLV_DB_SCALE
(
mvol_tlv
,
-
12700
,
50
,
1
);
...
...
@@ -227,6 +229,7 @@ static int sta32x_coefficient_put(struct snd_kcontrol *kcontrol,
struct
snd_ctl_elem_value
*
ucontrol
)
{
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
sta32x_priv
*
sta32x
=
snd_soc_codec_get_drvdata
(
codec
);
int
numcoef
=
kcontrol
->
private_value
>>
16
;
int
index
=
kcontrol
->
private_value
&
0xffff
;
unsigned
int
cfud
;
...
...
@@ -239,6 +242,11 @@ static int sta32x_coefficient_put(struct snd_kcontrol *kcontrol,
snd_soc_write
(
codec
,
STA32X_CFUD
,
cfud
);
snd_soc_write
(
codec
,
STA32X_CFADDR2
,
index
);
for
(
i
=
0
;
i
<
numcoef
&&
(
index
+
i
<
STA32X_COEF_COUNT
);
i
++
)
sta32x
->
coef_shadow
[
index
+
i
]
=
(
ucontrol
->
value
.
bytes
.
data
[
3
*
i
]
<<
16
)
|
(
ucontrol
->
value
.
bytes
.
data
[
3
*
i
+
1
]
<<
8
)
|
(
ucontrol
->
value
.
bytes
.
data
[
3
*
i
+
2
]);
for
(
i
=
0
;
i
<
3
*
numcoef
;
i
++
)
snd_soc_write
(
codec
,
STA32X_B1CF1
+
i
,
ucontrol
->
value
.
bytes
.
data
[
i
]);
...
...
@@ -252,6 +260,48 @@ static int sta32x_coefficient_put(struct snd_kcontrol *kcontrol,
return
0
;
}
int
sta32x_sync_coef_shadow
(
struct
snd_soc_codec
*
codec
)
{
struct
sta32x_priv
*
sta32x
=
snd_soc_codec_get_drvdata
(
codec
);
unsigned
int
cfud
;
int
i
;
/* preserve reserved bits in STA32X_CFUD */
cfud
=
snd_soc_read
(
codec
,
STA32X_CFUD
)
&
0xf0
;
for
(
i
=
0
;
i
<
STA32X_COEF_COUNT
;
i
++
)
{
snd_soc_write
(
codec
,
STA32X_CFADDR2
,
i
);
snd_soc_write
(
codec
,
STA32X_B1CF1
,
(
sta32x
->
coef_shadow
[
i
]
>>
16
)
&
0xff
);
snd_soc_write
(
codec
,
STA32X_B1CF2
,
(
sta32x
->
coef_shadow
[
i
]
>>
8
)
&
0xff
);
snd_soc_write
(
codec
,
STA32X_B1CF3
,
(
sta32x
->
coef_shadow
[
i
])
&
0xff
);
/* chip documentation does not say if the bits are
* self-clearing, so do it explicitly */
snd_soc_write
(
codec
,
STA32X_CFUD
,
cfud
);
snd_soc_write
(
codec
,
STA32X_CFUD
,
cfud
|
0x01
);
}
return
0
;
}
int
sta32x_cache_sync
(
struct
snd_soc_codec
*
codec
)
{
unsigned
int
mute
;
int
rc
;
if
(
!
codec
->
cache_sync
)
return
0
;
/* mute during register sync */
mute
=
snd_soc_read
(
codec
,
STA32X_MMUTE
);
snd_soc_write
(
codec
,
STA32X_MMUTE
,
mute
|
STA32X_MMUTE_MMUTE
);
sta32x_sync_coef_shadow
(
codec
);
rc
=
snd_soc_cache_sync
(
codec
);
snd_soc_write
(
codec
,
STA32X_MMUTE
,
mute
);
return
rc
;
}
#define SINGLE_COEF(xname, index) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
.info = sta32x_coefficient_info, \
...
...
@@ -661,7 +711,7 @@ static int sta32x_set_bias_level(struct snd_soc_codec *codec,
return
ret
;
}
s
nd_soc
_cache_sync
(
codec
);
s
ta32x
_cache_sync
(
codec
);
}
/* Power up to mute */
...
...
@@ -790,6 +840,17 @@ static int sta32x_probe(struct snd_soc_codec *codec)
STA32X_CxCFG_OM_MASK
,
2
<<
STA32X_CxCFG_OM_SHIFT
);
/* initialize coefficient shadow RAM with reset values */
for
(
i
=
4
;
i
<=
49
;
i
+=
5
)
sta32x
->
coef_shadow
[
i
]
=
0x400000
;
for
(
i
=
50
;
i
<=
54
;
i
++
)
sta32x
->
coef_shadow
[
i
]
=
0x7fffff
;
sta32x
->
coef_shadow
[
55
]
=
0x5a9df7
;
sta32x
->
coef_shadow
[
56
]
=
0x7fffff
;
sta32x
->
coef_shadow
[
59
]
=
0x7fffff
;
sta32x
->
coef_shadow
[
60
]
=
0x400000
;
sta32x
->
coef_shadow
[
61
]
=
0x400000
;
sta32x_set_bias_level
(
codec
,
SND_SOC_BIAS_STANDBY
);
/* Bias level configuration will have done an extra enable */
regulator_bulk_disable
(
ARRAY_SIZE
(
sta32x
->
supplies
),
sta32x
->
supplies
);
...
...
sound/soc/codecs/sta32x.h
浏览文件 @
77088cc9
...
...
@@ -19,6 +19,7 @@
/* STA326 register addresses */
#define STA32X_REGISTER_COUNT 0x2d
#define STA32X_COEF_COUNT 62
#define STA32X_CONFA 0x00
#define STA32X_CONFB 0x01
...
...
sound/soc/codecs/wm8731.c
浏览文件 @
77088cc9
...
...
@@ -453,6 +453,7 @@ static int wm8731_set_bias_level(struct snd_soc_codec *codec,
snd_soc_write
(
codec
,
WM8731_PWR
,
0xffff
);
regulator_bulk_disable
(
ARRAY_SIZE
(
wm8731
->
supplies
),
wm8731
->
supplies
);
codec
->
cache_sync
=
1
;
break
;
}
codec
->
dapm
.
bias_level
=
level
;
...
...
sound/soc/codecs/wm8753.c
浏览文件 @
77088cc9
...
...
@@ -190,6 +190,9 @@ static int wm8753_set_dai(struct snd_kcontrol *kcontrol,
struct
wm8753_priv
*
wm8753
=
snd_soc_codec_get_drvdata
(
codec
);
u16
ioctl
;
if
(
wm8753
->
dai_func
==
ucontrol
->
value
.
integer
.
value
[
0
])
return
0
;
if
(
codec
->
active
)
return
-
EBUSY
;
...
...
sound/soc/codecs/wm8962.c
浏览文件 @
77088cc9
...
...
@@ -1973,7 +1973,7 @@ static int wm8962_reset(struct snd_soc_codec *codec)
static
const
DECLARE_TLV_DB_SCALE
(
inpga_tlv
,
-
2325
,
75
,
0
);
static
const
DECLARE_TLV_DB_SCALE
(
mixin_tlv
,
-
1500
,
300
,
0
);
static
const
unsigned
int
mixinpga_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
7
),
TLV_DB_RANGE_HEAD
(
5
),
0
,
1
,
TLV_DB_SCALE_ITEM
(
0
,
600
,
0
),
2
,
2
,
TLV_DB_SCALE_ITEM
(
1300
,
1300
,
0
),
3
,
4
,
TLV_DB_SCALE_ITEM
(
1800
,
200
,
0
),
...
...
@@ -1988,7 +1988,7 @@ static const DECLARE_TLV_DB_SCALE(bypass_tlv, -1500, 300, 0);
static
const
DECLARE_TLV_DB_SCALE
(
out_tlv
,
-
12100
,
100
,
1
);
static
const
DECLARE_TLV_DB_SCALE
(
hp_tlv
,
-
700
,
100
,
0
);
static
const
unsigned
int
classd_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
7
),
TLV_DB_RANGE_HEAD
(
2
),
0
,
6
,
TLV_DB_SCALE_ITEM
(
0
,
150
,
0
),
7
,
7
,
TLV_DB_SCALE_ITEM
(
1200
,
0
,
0
),
};
...
...
sound/soc/codecs/wm8993.c
浏览文件 @
77088cc9
...
...
@@ -512,7 +512,7 @@ static const DECLARE_TLV_DB_SCALE(drc_comp_threash, -4500, 75, 0);
static
const
DECLARE_TLV_DB_SCALE
(
drc_comp_amp
,
-
2250
,
75
,
0
);
static
const
DECLARE_TLV_DB_SCALE
(
drc_min_tlv
,
-
1800
,
600
,
0
);
static
const
unsigned
int
drc_max_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
4
),
TLV_DB_RANGE_HEAD
(
2
),
0
,
2
,
TLV_DB_SCALE_ITEM
(
1200
,
600
,
0
),
3
,
3
,
TLV_DB_SCALE_ITEM
(
3600
,
0
,
0
),
};
...
...
sound/soc/codecs/wm9081.c
浏览文件 @
77088cc9
...
...
@@ -807,7 +807,6 @@ static int wm9081_set_bias_level(struct snd_soc_codec *codec,
mdelay
(
100
);
/* Normal bias enable & soft start off */
reg
|=
WM9081_BIAS_ENA
;
reg
&=
~
WM9081_VMID_RAMP
;
snd_soc_write
(
codec
,
WM9081_VMID_CONTROL
,
reg
);
...
...
@@ -818,7 +817,7 @@ static int wm9081_set_bias_level(struct snd_soc_codec *codec,
}
/* VMID 2*240k */
reg
=
snd_soc_read
(
codec
,
WM9081_
BIAS_CONTROL_1
);
reg
=
snd_soc_read
(
codec
,
WM9081_
VMID_CONTROL
);
reg
&=
~
WM9081_VMID_SEL_MASK
;
reg
|=
0x04
;
snd_soc_write
(
codec
,
WM9081_VMID_CONTROL
,
reg
);
...
...
@@ -830,14 +829,15 @@ static int wm9081_set_bias_level(struct snd_soc_codec *codec,
break
;
case
SND_SOC_BIAS_OFF
:
/* Startup bias source */
/* Startup bias source
and disable bias
*/
reg
=
snd_soc_read
(
codec
,
WM9081_BIAS_CONTROL_1
);
reg
|=
WM9081_BIAS_SRC
;
reg
&=
~
WM9081_BIAS_ENA
;
snd_soc_write
(
codec
,
WM9081_BIAS_CONTROL_1
,
reg
);
/* Disable VMID
and biases
with soft ramping */
/* Disable VMID with soft ramping */
reg
=
snd_soc_read
(
codec
,
WM9081_VMID_CONTROL
);
reg
&=
~
(
WM9081_VMID_SEL_MASK
|
WM9081_BIAS_ENA
)
;
reg
&=
~
WM9081_VMID_SEL_MASK
;
reg
|=
WM9081_VMID_RAMP
;
snd_soc_write
(
codec
,
WM9081_VMID_CONTROL
,
reg
);
...
...
sound/soc/codecs/wm9090.c
浏览文件 @
77088cc9
...
...
@@ -177,19 +177,19 @@ static void wait_for_dc_servo(struct snd_soc_codec *codec)
}
static
const
unsigned
int
in_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
6
),
TLV_DB_RANGE_HEAD
(
3
),
0
,
0
,
TLV_DB_SCALE_ITEM
(
-
600
,
0
,
0
),
1
,
3
,
TLV_DB_SCALE_ITEM
(
-
350
,
350
,
0
),
4
,
6
,
TLV_DB_SCALE_ITEM
(
600
,
600
,
0
),
};
static
const
unsigned
int
mix_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
4
),
TLV_DB_RANGE_HEAD
(
2
),
0
,
2
,
TLV_DB_SCALE_ITEM
(
-
1200
,
300
,
0
),
3
,
3
,
TLV_DB_SCALE_ITEM
(
0
,
0
,
0
),
};
static
const
DECLARE_TLV_DB_SCALE
(
out_tlv
,
-
5700
,
100
,
0
);
static
const
unsigned
int
spkboost_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
7
),
TLV_DB_RANGE_HEAD
(
2
),
0
,
6
,
TLV_DB_SCALE_ITEM
(
0
,
150
,
0
),
7
,
7
,
TLV_DB_SCALE_ITEM
(
1200
,
0
,
0
),
};
...
...
sound/soc/codecs/wm_hubs.c
浏览文件 @
77088cc9
...
...
@@ -40,7 +40,7 @@ static const DECLARE_TLV_DB_SCALE(outmix_tlv, -2100, 300, 0);
static
const
DECLARE_TLV_DB_SCALE
(
spkmixout_tlv
,
-
1800
,
600
,
1
);
static
const
DECLARE_TLV_DB_SCALE
(
outpga_tlv
,
-
5700
,
100
,
0
);
static
const
unsigned
int
spkboost_tlv
[]
=
{
TLV_DB_RANGE_HEAD
(
7
),
TLV_DB_RANGE_HEAD
(
2
),
0
,
6
,
TLV_DB_SCALE_ITEM
(
0
,
150
,
0
),
7
,
7
,
TLV_DB_SCALE_ITEM
(
1200
,
0
,
0
),
};
...
...
sound/soc/fsl/fsl_ssi.c
浏览文件 @
77088cc9
...
...
@@ -694,6 +694,7 @@ static int __devinit fsl_ssi_probe(struct platform_device *pdev)
/* Initialize the the device_attribute structure */
dev_attr
=
&
ssi_private
->
dev_attr
;
sysfs_attr_init
(
&
dev_attr
->
attr
);
dev_attr
->
attr
.
name
=
"statistics"
;
dev_attr
->
attr
.
mode
=
S_IRUGO
;
dev_attr
->
show
=
fsl_sysfs_ssi_show
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录