Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
4d39265b
K
Kernel
项目概览
openeuler
/
Kernel
大约 2 年 前同步成功
通知
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看板
未验证
提交
4d39265b
编写于
8月 15, 2022
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'asoc/for-5.20' into asoc-6.0
上级
568035b0
b4b5f29a
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
116 addition
and
76 deletion
+116
-76
sound/soc/amd/yc/acp6x-mach.c
sound/soc/amd/yc/acp6x-mach.c
+28
-0
sound/soc/codecs/rt5640.c
sound/soc/codecs/rt5640.c
+3
-2
sound/soc/codecs/tas2770.c
sound/soc/codecs/tas2770.c
+43
-55
sound/soc/codecs/tas2770.h
sound/soc/codecs/tas2770.h
+5
-0
sound/soc/codecs/tlv320aic32x4.c
sound/soc/codecs/tlv320aic32x4.c
+9
-0
sound/soc/intel/avs/pcm.c
sound/soc/intel/avs/pcm.c
+2
-2
sound/soc/intel/boards/sof_es8336.c
sound/soc/intel/boards/sof_es8336.c
+3
-1
sound/soc/sh/rz-ssi.c
sound/soc/sh/rz-ssi.c
+15
-11
sound/soc/soc-pcm.c
sound/soc/soc-pcm.c
+3
-0
sound/soc/sof/debug.c
sound/soc/sof/debug.c
+3
-3
sound/soc/sof/intel/hda.c
sound/soc/sof/intel/hda.c
+1
-1
sound/soc/sof/ipc3-topology.c
sound/soc/sof/ipc3-topology.c
+1
-1
未找到文件。
sound/soc/amd/yc/acp6x-mach.c
浏览文件 @
4d39265b
...
@@ -143,6 +143,34 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
...
@@ -143,6 +143,34 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"21CL"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"21CL"
),
}
}
},
},
{
.
driver_data
=
&
acp6x_card
,
.
matches
=
{
DMI_MATCH
(
DMI_BOARD_VENDOR
,
"LENOVO"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"21EM"
),
}
},
{
.
driver_data
=
&
acp6x_card
,
.
matches
=
{
DMI_MATCH
(
DMI_BOARD_VENDOR
,
"LENOVO"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"21EN"
),
}
},
{
.
driver_data
=
&
acp6x_card
,
.
matches
=
{
DMI_MATCH
(
DMI_BOARD_VENDOR
,
"LENOVO"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"21J5"
),
}
},
{
.
driver_data
=
&
acp6x_card
,
.
matches
=
{
DMI_MATCH
(
DMI_BOARD_VENDOR
,
"LENOVO"
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"21J6"
),
}
},
{}
{}
};
};
...
...
sound/soc/codecs/rt5640.c
浏览文件 @
4d39265b
...
@@ -1986,7 +1986,7 @@ static int rt5640_set_bias_level(struct snd_soc_component *component,
...
@@ -1986,7 +1986,7 @@ static int rt5640_set_bias_level(struct snd_soc_component *component,
snd_soc_component_write
(
component
,
RT5640_PWR_MIXER
,
0x0000
);
snd_soc_component_write
(
component
,
RT5640_PWR_MIXER
,
0x0000
);
if
(
rt5640
->
jd_src
==
RT5640_JD_SRC_HDA_HEADER
)
if
(
rt5640
->
jd_src
==
RT5640_JD_SRC_HDA_HEADER
)
snd_soc_component_write
(
component
,
RT5640_PWR_ANLG1
,
snd_soc_component_write
(
component
,
RT5640_PWR_ANLG1
,
0x
00
18
);
0x
28
18
);
else
else
snd_soc_component_write
(
component
,
RT5640_PWR_ANLG1
,
snd_soc_component_write
(
component
,
RT5640_PWR_ANLG1
,
0x0000
);
0x0000
);
...
@@ -2600,7 +2600,8 @@ static void rt5640_enable_hda_jack_detect(
...
@@ -2600,7 +2600,8 @@ static void rt5640_enable_hda_jack_detect(
snd_soc_component_update_bits
(
component
,
RT5640_DUMMY1
,
0x400
,
0x0
);
snd_soc_component_update_bits
(
component
,
RT5640_DUMMY1
,
0x400
,
0x0
);
snd_soc_component_update_bits
(
component
,
RT5640_PWR_ANLG1
,
snd_soc_component_update_bits
(
component
,
RT5640_PWR_ANLG1
,
RT5640_PWR_VREF2
,
RT5640_PWR_VREF2
);
RT5640_PWR_VREF2
|
RT5640_PWR_MB
|
RT5640_PWR_BG
,
RT5640_PWR_VREF2
|
RT5640_PWR_MB
|
RT5640_PWR_BG
);
usleep_range
(
10000
,
15000
);
usleep_range
(
10000
,
15000
);
snd_soc_component_update_bits
(
component
,
RT5640_PWR_ANLG1
,
snd_soc_component_update_bits
(
component
,
RT5640_PWR_ANLG1
,
RT5640_PWR_FV2
,
RT5640_PWR_FV2
);
RT5640_PWR_FV2
,
RT5640_PWR_FV2
);
...
...
sound/soc/codecs/tas2770.c
浏览文件 @
4d39265b
...
@@ -46,34 +46,22 @@ static void tas2770_reset(struct tas2770_priv *tas2770)
...
@@ -46,34 +46,22 @@ static void tas2770_reset(struct tas2770_priv *tas2770)
usleep_range
(
1000
,
2000
);
usleep_range
(
1000
,
2000
);
}
}
static
int
tas2770_set_bias_level
(
struct
snd_soc_component
*
component
,
static
int
tas2770_update_pwr_ctrl
(
struct
tas2770_priv
*
tas2770
)
enum
snd_soc_bias_level
level
)
{
{
struct
tas2770_priv
*
tas2770
=
struct
snd_soc_component
*
component
=
tas2770
->
component
;
snd_soc_component_get_drvdata
(
component
);
unsigned
int
val
;
int
ret
;
switch
(
level
)
{
if
(
tas2770
->
dac_powered
)
case
SND_SOC_BIAS_ON
:
val
=
tas2770
->
unmuted
?
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
TAS2770_PWR_CTRL_ACTIVE
:
TAS2770_PWR_CTRL_MUTE
;
TAS2770_PWR_CTRL_MASK
,
else
TAS2770_PWR_CTRL_ACTIVE
);
val
=
TAS2770_PWR_CTRL_SHUTDOWN
;
break
;
case
SND_SOC_BIAS_STANDBY
:
case
SND_SOC_BIAS_PREPARE
:
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
TAS2770_PWR_CTRL_MASK
,
TAS2770_PWR_CTRL_MUTE
);
break
;
case
SND_SOC_BIAS_OFF
:
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
TAS2770_PWR_CTRL_MASK
,
TAS2770_PWR_CTRL_SHUTDOWN
);
break
;
default:
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
dev_err
(
tas2770
->
dev
,
"wrong power level setting %d
\n
"
,
leve
l
);
TAS2770_PWR_CTRL_MASK
,
va
l
);
return
-
EINVAL
;
if
(
ret
<
0
)
}
return
ret
;
return
0
;
return
0
;
}
}
...
@@ -114,9 +102,7 @@ static int tas2770_codec_resume(struct snd_soc_component *component)
...
@@ -114,9 +102,7 @@ static int tas2770_codec_resume(struct snd_soc_component *component)
gpiod_set_value_cansleep
(
tas2770
->
sdz_gpio
,
1
);
gpiod_set_value_cansleep
(
tas2770
->
sdz_gpio
,
1
);
usleep_range
(
1000
,
2000
);
usleep_range
(
1000
,
2000
);
}
else
{
}
else
{
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
ret
=
tas2770_update_pwr_ctrl
(
tas2770
);
TAS2770_PWR_CTRL_MASK
,
TAS2770_PWR_CTRL_ACTIVE
);
if
(
ret
<
0
)
if
(
ret
<
0
)
return
ret
;
return
ret
;
}
}
...
@@ -152,24 +138,19 @@ static int tas2770_dac_event(struct snd_soc_dapm_widget *w,
...
@@ -152,24 +138,19 @@ static int tas2770_dac_event(struct snd_soc_dapm_widget *w,
switch
(
event
)
{
switch
(
event
)
{
case
SND_SOC_DAPM_POST_PMU
:
case
SND_SOC_DAPM_POST_PMU
:
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
tas2770
->
dac_powered
=
1
;
TAS2770_PWR_CTRL_MASK
,
ret
=
tas2770_update_pwr_ctrl
(
tas2770
);
TAS2770_PWR_CTRL_MUTE
);
break
;
break
;
case
SND_SOC_DAPM_PRE_PMD
:
case
SND_SOC_DAPM_PRE_PMD
:
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
tas2770
->
dac_powered
=
0
;
TAS2770_PWR_CTRL_MASK
,
ret
=
tas2770_update_pwr_ctrl
(
tas2770
);
TAS2770_PWR_CTRL_SHUTDOWN
);
break
;
break
;
default:
default:
dev_err
(
tas2770
->
dev
,
"Not supported evevt
\n
"
);
dev_err
(
tas2770
->
dev
,
"Not supported evevt
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
if
(
ret
<
0
)
return
ret
;
return
ret
;
return
0
;
}
}
static
const
struct
snd_kcontrol_new
isense_switch
=
static
const
struct
snd_kcontrol_new
isense_switch
=
...
@@ -203,21 +184,11 @@ static const struct snd_soc_dapm_route tas2770_audio_map[] = {
...
@@ -203,21 +184,11 @@ static const struct snd_soc_dapm_route tas2770_audio_map[] = {
static
int
tas2770_mute
(
struct
snd_soc_dai
*
dai
,
int
mute
,
int
direction
)
static
int
tas2770_mute
(
struct
snd_soc_dai
*
dai
,
int
mute
,
int
direction
)
{
{
struct
snd_soc_component
*
component
=
dai
->
component
;
struct
snd_soc_component
*
component
=
dai
->
component
;
int
ret
;
struct
tas2770_priv
*
tas2770
=
snd_soc_component_get_drvdata
(
component
);
if
(
mute
)
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
TAS2770_PWR_CTRL_MASK
,
TAS2770_PWR_CTRL_MUTE
);
else
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_PWR_CTRL
,
TAS2770_PWR_CTRL_MASK
,
TAS2770_PWR_CTRL_ACTIVE
);
if
(
ret
<
0
)
return
ret
;
return
0
;
tas2770
->
unmuted
=
!
mute
;
return
tas2770_update_pwr_ctrl
(
tas2770
);
}
}
static
int
tas2770_set_bitwidth
(
struct
tas2770_priv
*
tas2770
,
int
bitwidth
)
static
int
tas2770_set_bitwidth
(
struct
tas2770_priv
*
tas2770
,
int
bitwidth
)
...
@@ -337,7 +308,7 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
...
@@ -337,7 +308,7 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
struct
snd_soc_component
*
component
=
dai
->
component
;
struct
snd_soc_component
*
component
=
dai
->
component
;
struct
tas2770_priv
*
tas2770
=
struct
tas2770_priv
*
tas2770
=
snd_soc_component_get_drvdata
(
component
);
snd_soc_component_get_drvdata
(
component
);
u8
tdm_rx_start_slot
=
0
,
asi_cfg_1
=
0
;
u8
tdm_rx_start_slot
=
0
,
invert_fpol
=
0
,
fpol_preinv
=
0
,
asi_cfg_1
=
0
;
int
ret
;
int
ret
;
switch
(
fmt
&
SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK
)
{
switch
(
fmt
&
SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK
)
{
...
@@ -349,9 +320,15 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
...
@@ -349,9 +320,15 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
}
}
switch
(
fmt
&
SND_SOC_DAIFMT_INV_MASK
)
{
switch
(
fmt
&
SND_SOC_DAIFMT_INV_MASK
)
{
case
SND_SOC_DAIFMT_NB_IF
:
invert_fpol
=
1
;
fallthrough
;
case
SND_SOC_DAIFMT_NB_NF
:
case
SND_SOC_DAIFMT_NB_NF
:
asi_cfg_1
|=
TAS2770_TDM_CFG_REG1_RX_RSING
;
asi_cfg_1
|=
TAS2770_TDM_CFG_REG1_RX_RSING
;
break
;
break
;
case
SND_SOC_DAIFMT_IB_IF
:
invert_fpol
=
1
;
fallthrough
;
case
SND_SOC_DAIFMT_IB_NF
:
case
SND_SOC_DAIFMT_IB_NF
:
asi_cfg_1
|=
TAS2770_TDM_CFG_REG1_RX_FALING
;
asi_cfg_1
|=
TAS2770_TDM_CFG_REG1_RX_FALING
;
break
;
break
;
...
@@ -369,15 +346,19 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
...
@@ -369,15 +346,19 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
switch
(
fmt
&
SND_SOC_DAIFMT_FORMAT_MASK
)
{
switch
(
fmt
&
SND_SOC_DAIFMT_FORMAT_MASK
)
{
case
SND_SOC_DAIFMT_I2S
:
case
SND_SOC_DAIFMT_I2S
:
tdm_rx_start_slot
=
1
;
tdm_rx_start_slot
=
1
;
fpol_preinv
=
0
;
break
;
break
;
case
SND_SOC_DAIFMT_DSP_A
:
case
SND_SOC_DAIFMT_DSP_A
:
tdm_rx_start_slot
=
0
;
tdm_rx_start_slot
=
0
;
fpol_preinv
=
1
;
break
;
break
;
case
SND_SOC_DAIFMT_DSP_B
:
case
SND_SOC_DAIFMT_DSP_B
:
tdm_rx_start_slot
=
1
;
tdm_rx_start_slot
=
1
;
fpol_preinv
=
1
;
break
;
break
;
case
SND_SOC_DAIFMT_LEFT_J
:
case
SND_SOC_DAIFMT_LEFT_J
:
tdm_rx_start_slot
=
0
;
tdm_rx_start_slot
=
0
;
fpol_preinv
=
1
;
break
;
break
;
default:
default:
dev_err
(
tas2770
->
dev
,
dev_err
(
tas2770
->
dev
,
...
@@ -391,6 +372,14 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
...
@@ -391,6 +372,14 @@ static int tas2770_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
if
(
ret
<
0
)
if
(
ret
<
0
)
return
ret
;
return
ret
;
ret
=
snd_soc_component_update_bits
(
component
,
TAS2770_TDM_CFG_REG0
,
TAS2770_TDM_CFG_REG0_FPOL_MASK
,
(
fpol_preinv
^
invert_fpol
)
?
TAS2770_TDM_CFG_REG0_FPOL_RSING
:
TAS2770_TDM_CFG_REG0_FPOL_FALING
);
if
(
ret
<
0
)
return
ret
;
return
0
;
return
0
;
}
}
...
@@ -489,7 +478,7 @@ static struct snd_soc_dai_driver tas2770_dai_driver[] = {
...
@@ -489,7 +478,7 @@ static struct snd_soc_dai_driver tas2770_dai_driver[] = {
.
id
=
0
,
.
id
=
0
,
.
playback
=
{
.
playback
=
{
.
stream_name
=
"ASI1 Playback"
,
.
stream_name
=
"ASI1 Playback"
,
.
channels_min
=
2
,
.
channels_min
=
1
,
.
channels_max
=
2
,
.
channels_max
=
2
,
.
rates
=
TAS2770_RATES
,
.
rates
=
TAS2770_RATES
,
.
formats
=
TAS2770_FORMATS
,
.
formats
=
TAS2770_FORMATS
,
...
@@ -537,7 +526,6 @@ static const struct snd_soc_component_driver soc_component_driver_tas2770 = {
...
@@ -537,7 +526,6 @@ static const struct snd_soc_component_driver soc_component_driver_tas2770 = {
.
probe
=
tas2770_codec_probe
,
.
probe
=
tas2770_codec_probe
,
.
suspend
=
tas2770_codec_suspend
,
.
suspend
=
tas2770_codec_suspend
,
.
resume
=
tas2770_codec_resume
,
.
resume
=
tas2770_codec_resume
,
.
set_bias_level
=
tas2770_set_bias_level
,
.
controls
=
tas2770_snd_controls
,
.
controls
=
tas2770_snd_controls
,
.
num_controls
=
ARRAY_SIZE
(
tas2770_snd_controls
),
.
num_controls
=
ARRAY_SIZE
(
tas2770_snd_controls
),
.
dapm_widgets
=
tas2770_dapm_widgets
,
.
dapm_widgets
=
tas2770_dapm_widgets
,
...
...
sound/soc/codecs/tas2770.h
浏览文件 @
4d39265b
...
@@ -41,6 +41,9 @@
...
@@ -41,6 +41,9 @@
#define TAS2770_TDM_CFG_REG0_31_44_1_48KHZ 0x6
#define TAS2770_TDM_CFG_REG0_31_44_1_48KHZ 0x6
#define TAS2770_TDM_CFG_REG0_31_88_2_96KHZ 0x8
#define TAS2770_TDM_CFG_REG0_31_88_2_96KHZ 0x8
#define TAS2770_TDM_CFG_REG0_31_176_4_192KHZ 0xa
#define TAS2770_TDM_CFG_REG0_31_176_4_192KHZ 0xa
#define TAS2770_TDM_CFG_REG0_FPOL_MASK BIT(0)
#define TAS2770_TDM_CFG_REG0_FPOL_RSING 0
#define TAS2770_TDM_CFG_REG0_FPOL_FALING 1
/* TDM Configuration Reg1 */
/* TDM Configuration Reg1 */
#define TAS2770_TDM_CFG_REG1 TAS2770_REG(0X0, 0x0B)
#define TAS2770_TDM_CFG_REG1 TAS2770_REG(0X0, 0x0B)
#define TAS2770_TDM_CFG_REG1_MASK GENMASK(5, 1)
#define TAS2770_TDM_CFG_REG1_MASK GENMASK(5, 1)
...
@@ -135,6 +138,8 @@ struct tas2770_priv {
...
@@ -135,6 +138,8 @@ struct tas2770_priv {
struct
device
*
dev
;
struct
device
*
dev
;
int
v_sense_slot
;
int
v_sense_slot
;
int
i_sense_slot
;
int
i_sense_slot
;
bool
dac_powered
;
bool
unmuted
;
};
};
#endif
/* __TAS2770__ */
#endif
/* __TAS2770__ */
sound/soc/codecs/tlv320aic32x4.c
浏览文件 @
4d39265b
...
@@ -49,6 +49,8 @@ struct aic32x4_priv {
...
@@ -49,6 +49,8 @@ struct aic32x4_priv {
struct
aic32x4_setup_data
*
setup
;
struct
aic32x4_setup_data
*
setup
;
struct
device
*
dev
;
struct
device
*
dev
;
enum
aic32x4_type
type
;
enum
aic32x4_type
type
;
unsigned
int
fmt
;
};
};
static
int
aic32x4_reset_adc
(
struct
snd_soc_dapm_widget
*
w
,
static
int
aic32x4_reset_adc
(
struct
snd_soc_dapm_widget
*
w
,
...
@@ -611,6 +613,7 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,
...
@@ -611,6 +613,7 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,
static
int
aic32x4_set_dai_fmt
(
struct
snd_soc_dai
*
codec_dai
,
unsigned
int
fmt
)
static
int
aic32x4_set_dai_fmt
(
struct
snd_soc_dai
*
codec_dai
,
unsigned
int
fmt
)
{
{
struct
snd_soc_component
*
component
=
codec_dai
->
component
;
struct
snd_soc_component
*
component
=
codec_dai
->
component
;
struct
aic32x4_priv
*
aic32x4
=
snd_soc_component_get_drvdata
(
component
);
u8
iface_reg_1
=
0
;
u8
iface_reg_1
=
0
;
u8
iface_reg_2
=
0
;
u8
iface_reg_2
=
0
;
u8
iface_reg_3
=
0
;
u8
iface_reg_3
=
0
;
...
@@ -653,6 +656,8 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
...
@@ -653,6 +656,8 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
return
-
EINVAL
;
return
-
EINVAL
;
}
}
aic32x4
->
fmt
=
fmt
;
snd_soc_component_update_bits
(
component
,
AIC32X4_IFACE1
,
snd_soc_component_update_bits
(
component
,
AIC32X4_IFACE1
,
AIC32X4_IFACE1_DATATYPE_MASK
|
AIC32X4_IFACE1_DATATYPE_MASK
|
AIC32X4_IFACE1_MASTER_MASK
,
iface_reg_1
);
AIC32X4_IFACE1_MASTER_MASK
,
iface_reg_1
);
...
@@ -757,6 +762,10 @@ static int aic32x4_setup_clocks(struct snd_soc_component *component,
...
@@ -757,6 +762,10 @@ static int aic32x4_setup_clocks(struct snd_soc_component *component,
return
-
EINVAL
;
return
-
EINVAL
;
}
}
/* PCM over I2S is always 2-channel */
if
((
aic32x4
->
fmt
&
SND_SOC_DAIFMT_FORMAT_MASK
)
==
SND_SOC_DAIFMT_I2S
)
channels
=
2
;
madc
=
DIV_ROUND_UP
((
32
*
adc_resource_class
),
aosr
);
madc
=
DIV_ROUND_UP
((
32
*
adc_resource_class
),
aosr
);
max_dosr
=
(
AIC32X4_MAX_DOSR_FREQ
/
sample_rate
/
dosr_increment
)
*
max_dosr
=
(
AIC32X4_MAX_DOSR_FREQ
/
sample_rate
/
dosr_increment
)
*
dosr_increment
;
dosr_increment
;
...
...
sound/soc/intel/avs/pcm.c
浏览文件 @
4d39265b
...
@@ -636,8 +636,8 @@ static ssize_t topology_name_read(struct file *file, char __user *user_buf, size
...
@@ -636,8 +636,8 @@ static ssize_t topology_name_read(struct file *file, char __user *user_buf, size
char
buf
[
64
];
char
buf
[
64
];
size_t
len
;
size_t
len
;
len
=
snprintf
(
buf
,
sizeof
(
buf
),
"%s/%s
\n
"
,
component
->
driver
->
topology_name_prefix
,
len
=
s
c
nprintf
(
buf
,
sizeof
(
buf
),
"%s/%s
\n
"
,
component
->
driver
->
topology_name_prefix
,
mach
->
tplg_filename
);
mach
->
tplg_filename
);
return
simple_read_from_buffer
(
user_buf
,
count
,
ppos
,
buf
,
len
);
return
simple_read_from_buffer
(
user_buf
,
count
,
ppos
,
buf
,
len
);
}
}
...
...
sound/soc/intel/boards/sof_es8336.c
浏览文件 @
4d39265b
...
@@ -759,6 +759,9 @@ static int sof_es8336_remove(struct platform_device *pdev)
...
@@ -759,6 +759,9 @@ static int sof_es8336_remove(struct platform_device *pdev)
}
}
static
const
struct
platform_device_id
board_ids
[]
=
{
static
const
struct
platform_device_id
board_ids
[]
=
{
{
.
name
=
"sof-essx8336"
,
/* default quirk == 0 */
},
{
{
.
name
=
"adl_es83x6_c1_h02"
,
.
name
=
"adl_es83x6_c1_h02"
,
.
driver_data
=
(
kernel_ulong_t
)(
SOF_ES8336_SSP_CODEC
(
1
)
|
.
driver_data
=
(
kernel_ulong_t
)(
SOF_ES8336_SSP_CODEC
(
1
)
|
...
@@ -786,5 +789,4 @@ module_platform_driver(sof_es8336_driver);
...
@@ -786,5 +789,4 @@ module_platform_driver(sof_es8336_driver);
MODULE_DESCRIPTION
(
"ASoC Intel(R) SOF + ES8336 Machine driver"
);
MODULE_DESCRIPTION
(
"ASoC Intel(R) SOF + ES8336 Machine driver"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_ALIAS
(
"platform:sof-essx8336"
);
MODULE_IMPORT_NS
(
SND_SOC_INTEL_HDA_DSP_COMMON
);
MODULE_IMPORT_NS
(
SND_SOC_INTEL_HDA_DSP_COMMON
);
sound/soc/sh/rz-ssi.c
浏览文件 @
4d39265b
...
@@ -1017,32 +1017,36 @@ static int rz_ssi_probe(struct platform_device *pdev)
...
@@ -1017,32 +1017,36 @@ static int rz_ssi_probe(struct platform_device *pdev)
ssi
->
rstc
=
devm_reset_control_get_exclusive
(
&
pdev
->
dev
,
NULL
);
ssi
->
rstc
=
devm_reset_control_get_exclusive
(
&
pdev
->
dev
,
NULL
);
if
(
IS_ERR
(
ssi
->
rstc
))
{
if
(
IS_ERR
(
ssi
->
rstc
))
{
r
z_ssi_release_dma_channels
(
ssi
);
r
et
=
PTR_ERR
(
ssi
->
rstc
);
return
PTR_ERR
(
ssi
->
rstc
)
;
goto
err_reset
;
}
}
reset_control_deassert
(
ssi
->
rstc
);
reset_control_deassert
(
ssi
->
rstc
);
pm_runtime_enable
(
&
pdev
->
dev
);
pm_runtime_enable
(
&
pdev
->
dev
);
ret
=
pm_runtime_resume_and_get
(
&
pdev
->
dev
);
ret
=
pm_runtime_resume_and_get
(
&
pdev
->
dev
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
rz_ssi_release_dma_channels
(
ssi
);
dev_err
(
&
pdev
->
dev
,
"pm_runtime_resume_and_get failed
\n
"
);
pm_runtime_disable
(
ssi
->
dev
);
goto
err_pm
;
reset_control_assert
(
ssi
->
rstc
);
return
dev_err_probe
(
ssi
->
dev
,
ret
,
"pm_runtime_resume_and_get failed
\n
"
);
}
}
ret
=
devm_snd_soc_register_component
(
&
pdev
->
dev
,
&
rz_ssi_soc_component
,
ret
=
devm_snd_soc_register_component
(
&
pdev
->
dev
,
&
rz_ssi_soc_component
,
rz_ssi_soc_dai
,
rz_ssi_soc_dai
,
ARRAY_SIZE
(
rz_ssi_soc_dai
));
ARRAY_SIZE
(
rz_ssi_soc_dai
));
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
rz_ssi_release_dma_channels
(
ssi
);
pm_runtime_put
(
ssi
->
dev
);
pm_runtime_disable
(
ssi
->
dev
);
reset_control_assert
(
ssi
->
rstc
);
dev_err
(
&
pdev
->
dev
,
"failed to register snd component
\n
"
);
dev_err
(
&
pdev
->
dev
,
"failed to register snd component
\n
"
);
goto
err_snd_soc
;
}
}
return
0
;
err_snd_soc:
pm_runtime_put
(
ssi
->
dev
);
err_pm:
pm_runtime_disable
(
ssi
->
dev
);
reset_control_assert
(
ssi
->
rstc
);
err_reset:
rz_ssi_release_dma_channels
(
ssi
);
return
ret
;
return
ret
;
}
}
...
...
sound/soc/soc-pcm.c
浏览文件 @
4d39265b
...
@@ -1317,6 +1317,9 @@ static struct snd_soc_pcm_runtime *dpcm_get_be(struct snd_soc_card *card,
...
@@ -1317,6 +1317,9 @@ static struct snd_soc_pcm_runtime *dpcm_get_be(struct snd_soc_card *card,
if
(
!
be
->
dai_link
->
no_pcm
)
if
(
!
be
->
dai_link
->
no_pcm
)
continue
;
continue
;
if
(
!
snd_soc_dpcm_get_substream
(
be
,
stream
))
continue
;
for_each_rtd_dais
(
be
,
i
,
dai
)
{
for_each_rtd_dais
(
be
,
i
,
dai
)
{
w
=
snd_soc_dai_get_widget
(
dai
,
stream
);
w
=
snd_soc_dai_get_widget
(
dai
,
stream
);
...
...
sound/soc/sof/debug.c
浏览文件 @
4d39265b
...
@@ -252,9 +252,9 @@ static int memory_info_update(struct snd_sof_dev *sdev, char *buf, size_t buff_s
...
@@ -252,9 +252,9 @@ static int memory_info_update(struct snd_sof_dev *sdev, char *buf, size_t buff_s
}
}
for
(
i
=
0
,
len
=
0
;
i
<
reply
->
num_elems
;
i
++
)
{
for
(
i
=
0
,
len
=
0
;
i
<
reply
->
num_elems
;
i
++
)
{
ret
=
snprintf
(
buf
+
len
,
buff_size
-
len
,
"zone %d.%d used %#8x free %#8x
\n
"
,
ret
=
s
c
nprintf
(
buf
+
len
,
buff_size
-
len
,
"zone %d.%d used %#8x free %#8x
\n
"
,
reply
->
elems
[
i
].
zone
,
reply
->
elems
[
i
].
id
,
reply
->
elems
[
i
].
zone
,
reply
->
elems
[
i
].
id
,
reply
->
elems
[
i
].
used
,
reply
->
elems
[
i
].
free
);
reply
->
elems
[
i
].
used
,
reply
->
elems
[
i
].
free
);
if
(
ret
<
0
)
if
(
ret
<
0
)
goto
error
;
goto
error
;
len
+=
ret
;
len
+=
ret
;
...
...
sound/soc/sof/intel/hda.c
浏览文件 @
4d39265b
...
@@ -574,7 +574,7 @@ static void hda_dsp_dump_ext_rom_status(struct snd_sof_dev *sdev, const char *le
...
@@ -574,7 +574,7 @@ static void hda_dsp_dump_ext_rom_status(struct snd_sof_dev *sdev, const char *le
chip
=
get_chip_info
(
sdev
->
pdata
);
chip
=
get_chip_info
(
sdev
->
pdata
);
for
(
i
=
0
;
i
<
HDA_EXT_ROM_STATUS_SIZE
;
i
++
)
{
for
(
i
=
0
;
i
<
HDA_EXT_ROM_STATUS_SIZE
;
i
++
)
{
value
=
snd_sof_dsp_read
(
sdev
,
HDA_DSP_BAR
,
chip
->
rom_status_reg
+
i
*
0x4
);
value
=
snd_sof_dsp_read
(
sdev
,
HDA_DSP_BAR
,
chip
->
rom_status_reg
+
i
*
0x4
);
len
+=
snprintf
(
msg
+
len
,
sizeof
(
msg
)
-
len
,
" 0x%x"
,
value
);
len
+=
s
c
nprintf
(
msg
+
len
,
sizeof
(
msg
)
-
len
,
" 0x%x"
,
value
);
}
}
dev_printk
(
level
,
sdev
->
dev
,
"extended rom status: %s"
,
msg
);
dev_printk
(
level
,
sdev
->
dev
,
"extended rom status: %s"
,
msg
);
...
...
sound/soc/sof/ipc3-topology.c
浏览文件 @
4d39265b
...
@@ -2338,7 +2338,7 @@ static int sof_ipc3_parse_manifest(struct snd_soc_component *scomp, int index,
...
@@ -2338,7 +2338,7 @@ static int sof_ipc3_parse_manifest(struct snd_soc_component *scomp, int index,
}
}
dev_info
(
scomp
->
dev
,
dev_info
(
scomp
->
dev
,
"Topology: ABI %d:%d:%d Kernel ABI %
hhu:%hhu:%hhu
\n
"
,
"Topology: ABI %d:%d:%d Kernel ABI %
d:%d:%d
\n
"
,
man
->
priv
.
data
[
0
],
man
->
priv
.
data
[
1
],
man
->
priv
.
data
[
2
],
man
->
priv
.
data
[
0
],
man
->
priv
.
data
[
1
],
man
->
priv
.
data
[
2
],
SOF_ABI_MAJOR
,
SOF_ABI_MINOR
,
SOF_ABI_PATCH
);
SOF_ABI_MAJOR
,
SOF_ABI_MINOR
,
SOF_ABI_PATCH
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录