Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
fc7f6a05
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看板
未验证
提交
fc7f6a05
编写于
10月 26, 2020
作者:
M
Mark Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge existing fixes from asoc/for-5.10
上级
3650b228
6e5329c6
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
106 addition
and
40 deletion
+106
-40
sound/soc/codecs/cs42l51.c
sound/soc/codecs/cs42l51.c
+21
-1
sound/soc/codecs/wsa881x.c
sound/soc/codecs/wsa881x.c
+2
-0
sound/soc/intel/Kconfig
sound/soc/intel/Kconfig
+0
-18
sound/soc/intel/atom/Makefile
sound/soc/intel/atom/Makefile
+1
-1
sound/soc/intel/atom/sst/Makefile
sound/soc/intel/atom/sst/Makefile
+3
-3
sound/soc/intel/boards/kbl_rt5663_max98927.c
sound/soc/intel/boards/kbl_rt5663_max98927.c
+31
-8
sound/soc/intel/catpt/dsp.c
sound/soc/intel/catpt/dsp.c
+6
-3
sound/soc/intel/catpt/pcm.c
sound/soc/intel/catpt/pcm.c
+10
-0
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
+25
-6
sound/soc/qcom/sdm845.c
sound/soc/qcom/sdm845.c
+2
-0
sound/soc/sof/loader.c
sound/soc/sof/loader.c
+5
-0
未找到文件。
sound/soc/codecs/cs42l51.c
浏览文件 @
fc7f6a05
...
...
@@ -254,8 +254,28 @@ static const struct snd_soc_dapm_widget cs42l51_dapm_widgets[] = {
&
cs42l51_adcr_mux_controls
),
};
static
int
mclk_event
(
struct
snd_soc_dapm_widget
*
w
,
struct
snd_kcontrol
*
kcontrol
,
int
event
)
{
struct
snd_soc_component
*
comp
=
snd_soc_dapm_to_component
(
w
->
dapm
);
struct
cs42l51_private
*
cs42l51
=
snd_soc_component_get_drvdata
(
comp
);
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
return
clk_prepare_enable
(
cs42l51
->
mclk_handle
);
case
SND_SOC_DAPM_POST_PMD
:
/* Delay mclk shutdown to fulfill power-down sequence requirements */
msleep
(
20
);
clk_disable_unprepare
(
cs42l51
->
mclk_handle
);
break
;
}
return
0
;
}
static
const
struct
snd_soc_dapm_widget
cs42l51_dapm_mclk_widgets
[]
=
{
SND_SOC_DAPM_CLOCK_SUPPLY
(
"MCLK"
)
SND_SOC_DAPM_SUPPLY
(
"MCLK"
,
SND_SOC_NOPM
,
0
,
0
,
mclk_event
,
SND_SOC_DAPM_PRE_PMU
|
SND_SOC_DAPM_POST_PMD
),
};
static
const
struct
snd_soc_dapm_route
cs42l51_routes
[]
=
{
...
...
sound/soc/codecs/wsa881x.c
浏览文件 @
fc7f6a05
...
...
@@ -1026,6 +1026,8 @@ static struct snd_soc_dai_driver wsa881x_dais[] = {
.
id
=
0
,
.
playback
=
{
.
stream_name
=
"SPKR Playback"
,
.
rates
=
SNDRV_PCM_RATE_48000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
.
rate_max
=
48000
,
.
rate_min
=
48000
,
.
channels_min
=
1
,
...
...
sound/soc/intel/Kconfig
浏览文件 @
fc7f6a05
...
...
@@ -15,22 +15,6 @@ config SND_SOC_INTEL_SST_TOPLEVEL
if SND_SOC_INTEL_SST_TOPLEVEL
config SND_SST_IPC
tristate
# This option controls the IPC core for HiFi2 platforms
config SND_SST_IPC_PCI
tristate
select SND_SST_IPC
# This option controls the PCI-based IPC for HiFi2 platforms
# (Medfield, Merrifield).
config SND_SST_IPC_ACPI
tristate
select SND_SST_IPC
# This option controls the ACPI-based IPC for HiFi2 platforms
# (Baytrail, Cherrytrail)
config SND_SOC_INTEL_SST
tristate
...
...
@@ -57,7 +41,6 @@ config SND_SST_ATOM_HIFI2_PLATFORM
config SND_SST_ATOM_HIFI2_PLATFORM_PCI
tristate "PCI HiFi2 (Merrifield) Platforms"
depends on X86 && PCI
select SND_SST_IPC_PCI
select SND_SST_ATOM_HIFI2_PLATFORM
help
If you have a Intel Merrifield/Edison platform, then
...
...
@@ -70,7 +53,6 @@ config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
tristate "ACPI HiFi2 (Baytrail, Cherrytrail) Platforms"
default ACPI
depends on X86 && ACPI && PCI
select SND_SST_IPC_ACPI
select SND_SST_ATOM_HIFI2_PLATFORM
select SND_SOC_ACPI_INTEL_MATCH
select IOSF_MBI
...
...
sound/soc/intel/atom/Makefile
浏览文件 @
fc7f6a05
...
...
@@ -6,4 +6,4 @@ snd-soc-sst-atom-hifi2-platform-objs := sst-mfld-platform-pcm.o \
obj-$(CONFIG_SND_SST_ATOM_HIFI2_PLATFORM)
+=
snd-soc-sst-atom-hifi2-platform.o
# DSP driver
obj-$(CONFIG_SND_SST_
IPC
)
+=
sst/
obj-$(CONFIG_SND_SST_
ATOM_HIFI2_PLATFORM
)
+=
sst/
sound/soc/intel/atom/sst/Makefile
浏览文件 @
fc7f6a05
...
...
@@ -3,6 +3,6 @@ snd-intel-sst-core-objs := sst.o sst_ipc.o sst_stream.o sst_drv_interface.o sst_
snd-intel-sst-pci-objs
+=
sst_pci.o
snd-intel-sst-acpi-objs
+=
sst_acpi.o
obj-$(CONFIG_SND_SST_
IPC
)
+=
snd-intel-sst-core.o
obj-$(CONFIG_SND_SST_
IPC
_PCI)
+=
snd-intel-sst-pci.o
obj-$(CONFIG_SND_SST_
IPC
_ACPI)
+=
snd-intel-sst-acpi.o
obj-$(CONFIG_SND_SST_
ATOM_HIFI2_PLATFORM
)
+=
snd-intel-sst-core.o
obj-$(CONFIG_SND_SST_
ATOM_HIFI2_PLATFORM
_PCI)
+=
snd-intel-sst-pci.o
obj-$(CONFIG_SND_SST_
ATOM_HIFI2_PLATFORM
_ACPI)
+=
snd-intel-sst-acpi.o
sound/soc/intel/boards/kbl_rt5663_max98927.c
浏览文件 @
fc7f6a05
...
...
@@ -401,17 +401,40 @@ static int kabylake_ssp_fixup(struct snd_soc_pcm_runtime *rtd,
struct
snd_interval
*
chan
=
hw_param_interval
(
params
,
SNDRV_PCM_HW_PARAM_CHANNELS
);
struct
snd_mask
*
fmt
=
hw_param_mask
(
params
,
SNDRV_PCM_HW_PARAM_FORMAT
);
struct
snd_soc_dpcm
*
dpcm
=
container_of
(
params
,
struct
snd_soc_dpcm
,
hw_params
);
struct
snd_soc_dai_link
*
fe_dai_link
=
dpcm
->
fe
->
dai_link
;
struct
snd_soc_dai_link
*
be_dai_link
=
dpcm
->
be
->
dai_link
;
struct
snd_soc_dpcm
*
dpcm
,
*
rtd_dpcm
=
NULL
;
/*
* The following loop will be called only for playback stream
* In this platform, there is only one playback device on every SSP
*/
for_each_dpcm_fe
(
rtd
,
SNDRV_PCM_STREAM_PLAYBACK
,
dpcm
)
{
rtd_dpcm
=
dpcm
;
break
;
}
/*
* This following loop will be called only for capture stream
* In this platform, there is only one capture device on every SSP
*/
for_each_dpcm_fe
(
rtd
,
SNDRV_PCM_STREAM_CAPTURE
,
dpcm
)
{
rtd_dpcm
=
dpcm
;
break
;
}
if
(
!
rtd_dpcm
)
return
-
EINVAL
;
/*
* The above 2 loops are mutually exclusive based on the stream direction,
* thus rtd_dpcm variable will never be overwritten
*/
/*
* The ADSP will convert the FE rate to 48k, stereo, 24 bit
*/
if
(
!
strcmp
(
fe_
dai_link
->
name
,
"Kbl Audio Port"
)
||
!
strcmp
(
fe_
dai_link
->
name
,
"Kbl Audio Headset Playback"
)
||
!
strcmp
(
fe_
dai_link
->
name
,
"Kbl Audio Capture Port"
))
{
if
(
!
strcmp
(
rtd_dpcm
->
fe
->
dai_link
->
name
,
"Kbl Audio Port"
)
||
!
strcmp
(
rtd_dpcm
->
fe
->
dai_link
->
name
,
"Kbl Audio Headset Playback"
)
||
!
strcmp
(
rtd_dpcm
->
fe
->
dai_link
->
name
,
"Kbl Audio Capture Port"
))
{
rate
->
min
=
rate
->
max
=
48000
;
chan
->
min
=
chan
->
max
=
2
;
snd_mask_none
(
fmt
);
...
...
@@ -421,7 +444,7 @@ static int kabylake_ssp_fixup(struct snd_soc_pcm_runtime *rtd,
* The speaker on the SSP0 supports S16_LE and not S24_LE.
* thus changing the mask here
*/
if
(
!
strcmp
(
be_
dai_link
->
name
,
"SSP0-Codec"
))
if
(
!
strcmp
(
rtd_dpcm
->
be
->
dai_link
->
name
,
"SSP0-Codec"
))
snd_mask_set_format
(
fmt
,
SNDRV_PCM_FORMAT_S16_LE
);
return
0
;
...
...
sound/soc/intel/catpt/dsp.c
浏览文件 @
fc7f6a05
...
...
@@ -267,9 +267,12 @@ static int catpt_dsp_select_lpclock(struct catpt_dev *cdev, bool lp, bool waiti)
reg
,
(
reg
&
CATPT_ISD_DCPWM
),
500
,
10000
);
if
(
ret
)
{
dev_err
(
cdev
->
dev
,
"await WAITI timeout
\n
"
);
mutex_unlock
(
&
cdev
->
clk_mutex
);
return
ret
;
dev_warn
(
cdev
->
dev
,
"await WAITI timeout
\n
"
);
/* no signal - only high clock selection allowed */
if
(
lp
)
{
mutex_unlock
(
&
cdev
->
clk_mutex
);
return
0
;
}
}
}
...
...
sound/soc/intel/catpt/pcm.c
浏览文件 @
fc7f6a05
...
...
@@ -667,7 +667,17 @@ static int catpt_dai_pcm_new(struct snd_soc_pcm_runtime *rtm,
break
;
}
/* see if this is a new configuration */
if
(
!
memcmp
(
&
cdev
->
devfmt
[
devfmt
.
iface
],
&
devfmt
,
sizeof
(
devfmt
)))
return
0
;
pm_runtime_get_sync
(
cdev
->
dev
);
ret
=
catpt_ipc_set_device_format
(
cdev
,
&
devfmt
);
pm_runtime_mark_last_busy
(
cdev
->
dev
);
pm_runtime_put_autosuspend
(
cdev
->
dev
);
if
(
ret
)
return
CATPT_IPC_ERROR
(
ret
);
...
...
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
浏览文件 @
fc7f6a05
...
...
@@ -630,15 +630,34 @@ static struct snd_soc_codec_conf mt8183_da7219_rt1015_codec_conf[] = {
},
};
static
const
struct
snd_kcontrol_new
mt8183_da7219_rt1015_snd_controls
[]
=
{
SOC_DAPM_PIN_SWITCH
(
"Left Spk"
),
SOC_DAPM_PIN_SWITCH
(
"Right Spk"
),
};
static
const
struct
snd_soc_dapm_widget
mt8183_da7219_rt1015_dapm_widgets
[]
=
{
SND_SOC_DAPM_SPK
(
"Left Spk"
,
NULL
),
SND_SOC_DAPM_SPK
(
"Right Spk"
,
NULL
),
SND_SOC_DAPM_PINCTRL
(
"TDM_OUT_PINCTRL"
,
"aud_tdm_out_on"
,
"aud_tdm_out_off"
),
};
static
const
struct
snd_soc_dapm_route
mt8183_da7219_rt1015_dapm_routes
[]
=
{
{
"Left Spk"
,
NULL
,
"Left SPO"
},
{
"Right Spk"
,
NULL
,
"Right SPO"
},
{
"I2S Playback"
,
NULL
,
"TDM_OUT_PINCTRL"
},
};
static
struct
snd_soc_card
mt8183_da7219_rt1015_card
=
{
.
name
=
"mt8183_da7219_rt1015"
,
.
owner
=
THIS_MODULE
,
.
controls
=
mt8183_da7219_
max98357
_snd_controls
,
.
num_controls
=
ARRAY_SIZE
(
mt8183_da7219_
max98357
_snd_controls
),
.
dapm_widgets
=
mt8183_da7219_
max98357
_dapm_widgets
,
.
num_dapm_widgets
=
ARRAY_SIZE
(
mt8183_da7219_
max98357
_dapm_widgets
),
.
dapm_routes
=
mt8183_da7219_
max98357
_dapm_routes
,
.
num_dapm_routes
=
ARRAY_SIZE
(
mt8183_da7219_
max98357
_dapm_routes
),
.
controls
=
mt8183_da7219_
rt1015
_snd_controls
,
.
num_controls
=
ARRAY_SIZE
(
mt8183_da7219_
rt1015
_snd_controls
),
.
dapm_widgets
=
mt8183_da7219_
rt1015
_dapm_widgets
,
.
num_dapm_widgets
=
ARRAY_SIZE
(
mt8183_da7219_
rt1015
_dapm_widgets
),
.
dapm_routes
=
mt8183_da7219_
rt1015
_dapm_routes
,
.
num_dapm_routes
=
ARRAY_SIZE
(
mt8183_da7219_
rt1015
_dapm_routes
),
.
dai_link
=
mt8183_da7219_dai_links
,
.
num_links
=
ARRAY_SIZE
(
mt8183_da7219_dai_links
),
.
aux_dev
=
&
mt8183_da7219_max98357_headset_dev
,
...
...
sound/soc/qcom/sdm845.c
浏览文件 @
fc7f6a05
...
...
@@ -17,6 +17,7 @@
#include "qdsp6/q6afe.h"
#include "../codecs/rt5663.h"
#define DRIVER_NAME "sdm845"
#define DEFAULT_SAMPLE_RATE_48K 48000
#define DEFAULT_MCLK_RATE 24576000
#define TDM_BCLK_RATE 6144000
...
...
@@ -552,6 +553,7 @@ static int sdm845_snd_platform_probe(struct platform_device *pdev)
if
(
!
data
)
return
-
ENOMEM
;
card
->
driver_name
=
DRIVER_NAME
;
card
->
dapm_widgets
=
sdm845_snd_widgets
;
card
->
num_dapm_widgets
=
ARRAY_SIZE
(
sdm845_snd_widgets
);
card
->
dev
=
dev
;
...
...
sound/soc/sof/loader.c
浏览文件 @
fc7f6a05
...
...
@@ -118,6 +118,11 @@ int snd_sof_fw_parse_ext_data(struct snd_sof_dev *sdev, u32 bar, u32 offset)
case
SOF_IPC_EXT_CC_INFO
:
ret
=
get_cc_info
(
sdev
,
ext_hdr
);
break
;
case
SOF_IPC_EXT_UNUSED
:
case
SOF_IPC_EXT_PROBE_INFO
:
case
SOF_IPC_EXT_USER_ABI_INFO
:
/* They are supported but we don't do anything here */
break
;
default:
dev_warn
(
sdev
->
dev
,
"warning: unknown ext header type %d size 0x%x
\n
"
,
ext_hdr
->
type
,
ext_hdr
->
hdr
.
size
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录