Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
473d5ae8
Commit
473d5ae8
authored
Apr 09, 2021
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-linus' into for-next
Signed-off-by:
Takashi Iwai
<
tiwai@suse.de
>
parents
66c6d1ef
c8426b27
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
118 additions
and
43 deletions
+118
-43
sound/drivers/aloop.c
sound/drivers/aloop.c
+8
-3
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+8
-0
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_conexant.c
+1
-0
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+19
-1
sound/soc/bcm/cygnus-ssp.c
sound/soc/bcm/cygnus-ssp.c
+3
-1
sound/soc/codecs/lpass-rx-macro.c
sound/soc/codecs/lpass-rx-macro.c
+1
-1
sound/soc/codecs/lpass-tx-macro.c
sound/soc/codecs/lpass-tx-macro.c
+1
-1
sound/soc/codecs/max98373-i2c.c
sound/soc/codecs/max98373-i2c.c
+1
-0
sound/soc/codecs/max98373-sdw.c
sound/soc/codecs/max98373-sdw.c
+1
-0
sound/soc/codecs/max98373.c
sound/soc/codecs/max98373.c
+2
-0
sound/soc/codecs/wm8960.c
sound/soc/codecs/wm8960.c
+7
-1
sound/soc/fsl/fsl_esai.c
sound/soc/fsl/fsl_esai.c
+5
-3
sound/soc/intel/atom/sst-mfld-platform-pcm.c
sound/soc/intel/atom/sst-mfld-platform-pcm.c
+6
-6
sound/soc/sof/core.c
sound/soc/sof/core.c
+7
-1
sound/soc/sof/intel/apl.c
sound/soc/sof/intel/apl.c
+2
-1
sound/soc/sof/intel/cnl.c
sound/soc/sof/intel/cnl.c
+2
-17
sound/soc/sof/intel/hda-dsp.c
sound/soc/sof/intel/hda-dsp.c
+17
-4
sound/soc/sof/intel/hda.h
sound/soc/sof/intel/hda.h
+1
-0
sound/soc/sof/intel/icl.c
sound/soc/sof/intel/icl.c
+2
-1
sound/soc/sof/intel/pci-tgl.c
sound/soc/sof/intel/pci-tgl.c
+1
-1
sound/soc/sof/intel/tgl.c
sound/soc/sof/intel/tgl.c
+17
-1
sound/soc/sunxi/sun4i-codec.c
sound/soc/sunxi/sun4i-codec.c
+5
-0
sound/usb/quirks.c
sound/usb/quirks.c
+1
-0
No files found.
sound/drivers/aloop.c
View file @
473d5ae8
...
...
@@ -1571,6 +1571,14 @@ static int loopback_mixer_new(struct loopback *loopback, int notify)
return
-
ENOMEM
;
kctl
->
id
.
device
=
dev
;
kctl
->
id
.
subdevice
=
substr
;
/* Add the control before copying the id so that
* the numid field of the id is set in the copy.
*/
err
=
snd_ctl_add
(
card
,
kctl
);
if
(
err
<
0
)
return
err
;
switch
(
idx
)
{
case
ACTIVE_IDX
:
setup
->
active_id
=
kctl
->
id
;
...
...
@@ -1587,9 +1595,6 @@ static int loopback_mixer_new(struct loopback *loopback, int notify)
default:
break
;
}
err
=
snd_ctl_add
(
card
,
kctl
);
if
(
err
<
0
)
return
err
;
}
}
}
...
...
sound/pci/hda/hda_intel.c
View file @
473d5ae8
...
...
@@ -989,8 +989,12 @@ static int azx_prepare(struct device *dev)
struct
snd_card
*
card
=
dev_get_drvdata
(
dev
);
struct
azx
*
chip
;
if
(
!
azx_is_pm_ready
(
card
))
return
0
;
chip
=
card
->
private_data
;
chip
->
pm_prepared
=
1
;
snd_power_change_state
(
card
,
SNDRV_CTL_POWER_D3hot
);
flush_work
(
&
azx_bus
(
chip
)
->
unsol_work
);
...
...
@@ -1005,7 +1009,11 @@ static void azx_complete(struct device *dev)
struct
snd_card
*
card
=
dev_get_drvdata
(
dev
);
struct
azx
*
chip
;
if
(
!
azx_is_pm_ready
(
card
))
return
;
chip
=
card
->
private_data
;
snd_power_change_state
(
card
,
SNDRV_CTL_POWER_D0
);
chip
->
pm_prepared
=
0
;
}
...
...
sound/pci/hda/patch_conexant.c
View file @
473d5ae8
...
...
@@ -944,6 +944,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
SND_PCI_QUIRK
(
0x103c
,
0x829a
,
"HP 800 G3 DM"
,
CXT_FIXUP_HP_MIC_NO_PRESENCE
),
SND_PCI_QUIRK
(
0x103c
,
0x8402
,
"HP ProBook 645 G4"
,
CXT_FIXUP_MUTE_LED_GPIO
),
SND_PCI_QUIRK
(
0x103c
,
0x8427
,
"HP ZBook Studio G5"
,
CXT_FIXUP_HP_ZBOOK_MUTE_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x844f
,
"HP ZBook Studio G5"
,
CXT_FIXUP_HP_ZBOOK_MUTE_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x8455
,
"HP Z2 G4"
,
CXT_FIXUP_HP_MIC_NO_PRESENCE
),
SND_PCI_QUIRK
(
0x103c
,
0x8456
,
"HP Z2 G4 SFF"
,
CXT_FIXUP_HP_MIC_NO_PRESENCE
),
SND_PCI_QUIRK
(
0x103c
,
0x8457
,
"HP Z2 G4 mini"
,
CXT_FIXUP_HP_MIC_NO_PRESENCE
),
...
...
sound/pci/hda/patch_realtek.c
View file @
473d5ae8
...
...
@@ -3934,6 +3934,15 @@ static void alc271_fixup_dmic(struct hda_codec *codec,
snd_hda_sequence_write
(
codec
,
verbs
);
}
/* Fix the speaker amp after resume, etc */
static
void
alc269vb_fixup_aspire_e1_coef
(
struct
hda_codec
*
codec
,
const
struct
hda_fixup
*
fix
,
int
action
)
{
if
(
action
==
HDA_FIXUP_ACT_INIT
)
alc_update_coef_idx
(
codec
,
0x0d
,
0x6000
,
0x6000
);
}
static
void
alc269_fixup_pcm_44k
(
struct
hda_codec
*
codec
,
const
struct
hda_fixup
*
fix
,
int
action
)
{
...
...
@@ -5263,7 +5272,7 @@ static void alc_determine_headset_type(struct hda_codec *codec)
case
0x10ec0274
:
case
0x10ec0294
:
alc_process_coef_fw
(
codec
,
coef0274
);
msleep
(
80
);
msleep
(
8
5
0
);
val
=
alc_read_coef_idx
(
codec
,
0x46
);
is_ctia
=
(
val
&
0x00f0
)
==
0x00f0
;
break
;
...
...
@@ -5447,6 +5456,7 @@ static void alc_update_headset_jack_cb(struct hda_codec *codec,
struct
hda_jack_callback
*
jack
)
{
snd_hda_gen_hp_automute
(
codec
,
jack
);
alc_update_headset_mode
(
codec
);
}
static
void
alc_probe_headset_mode
(
struct
hda_codec
*
codec
)
...
...
@@ -6307,6 +6317,7 @@ enum {
ALC283_FIXUP_HEADSET_MIC
,
ALC255_FIXUP_MIC_MUTE_LED
,
ALC282_FIXUP_ASPIRE_V5_PINS
,
ALC269VB_FIXUP_ASPIRE_E1_COEF
,
ALC280_FIXUP_HP_GPIO4
,
ALC286_FIXUP_HP_GPIO_LED
,
ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY
,
...
...
@@ -6985,6 +6996,10 @@ static const struct hda_fixup alc269_fixups[] = {
{
},
},
},
[
ALC269VB_FIXUP_ASPIRE_E1_COEF
]
=
{
.
type
=
HDA_FIXUP_FUNC
,
.
v
.
func
=
alc269vb_fixup_aspire_e1_coef
,
},
[
ALC280_FIXUP_HP_GPIO4
]
=
{
.
type
=
HDA_FIXUP_FUNC
,
.
v
.
func
=
alc280_fixup_hp_gpio4
,
...
...
@@ -7907,6 +7922,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK
(
0x1025
,
0x0762
,
"Acer Aspire E1-472"
,
ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572
),
SND_PCI_QUIRK
(
0x1025
,
0x0775
,
"Acer Aspire E1-572"
,
ALC271_FIXUP_HP_GATE_MIC_JACK_E1_572
),
SND_PCI_QUIRK
(
0x1025
,
0x079b
,
"Acer Aspire V5-573G"
,
ALC282_FIXUP_ASPIRE_V5_PINS
),
SND_PCI_QUIRK
(
0x1025
,
0x0840
,
"Acer Aspire E1"
,
ALC269VB_FIXUP_ASPIRE_E1_COEF
),
SND_PCI_QUIRK
(
0x1025
,
0x101c
,
"Acer Veriton N2510G"
,
ALC269_FIXUP_LIFEBOOK
),
SND_PCI_QUIRK
(
0x1025
,
0x102b
,
"Acer Aspire C24-860"
,
ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE
),
SND_PCI_QUIRK
(
0x1025
,
0x1065
,
"Acer Aspire C20-820"
,
ALC269VC_FIXUP_ACER_HEADSET_MIC
),
...
...
@@ -8064,6 +8080,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
ALC285_FIXUP_HP_GPIO_AMP_INIT
),
SND_PCI_QUIRK
(
0x103c
,
0x87c8
,
"HP"
,
ALC287_FIXUP_HP_GPIO_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x87e5
,
"HP ProBook 440 G8 Notebook PC"
,
ALC236_FIXUP_HP_GPIO_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x87f2
,
"HP ProBook 640 G8 Notebook PC"
,
ALC236_FIXUP_HP_GPIO_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x87f4
,
"HP"
,
ALC287_FIXUP_HP_GPIO_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x87f5
,
"HP"
,
ALC287_FIXUP_HP_GPIO_LED
),
SND_PCI_QUIRK
(
0x103c
,
0x87f7
,
"HP Spectre x360 14"
,
ALC245_FIXUP_HP_X360_AMP
),
...
...
@@ -8400,6 +8417,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
{.
id
=
ALC283_FIXUP_HEADSET_MIC
,
.
name
=
"alc283-headset"
},
{.
id
=
ALC255_FIXUP_MIC_MUTE_LED
,
.
name
=
"alc255-dell-mute"
},
{.
id
=
ALC282_FIXUP_ASPIRE_V5_PINS
,
.
name
=
"aspire-v5"
},
{.
id
=
ALC269VB_FIXUP_ASPIRE_E1_COEF
,
.
name
=
"aspire-e1-coef"
},
{.
id
=
ALC280_FIXUP_HP_GPIO4
,
.
name
=
"hp-gpio4"
},
{.
id
=
ALC286_FIXUP_HP_GPIO_LED
,
.
name
=
"hp-gpio-led"
},
{.
id
=
ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY
,
.
name
=
"hp-gpio2-hotkey"
},
...
...
sound/soc/bcm/cygnus-ssp.c
View file @
473d5ae8
...
...
@@ -1348,8 +1348,10 @@ static int cygnus_ssp_probe(struct platform_device *pdev)
&
cygnus_ssp_dai
[
active_port_count
]);
/* negative is err, 0 is active and good, 1 is disabled */
if
(
err
<
0
)
if
(
err
<
0
)
{
of_node_put
(
child_node
);
return
err
;
}
else
if
(
!
err
)
{
dev_dbg
(
dev
,
"Activating DAI: %s
\n
"
,
cygnus_ssp_dai
[
active_port_count
].
name
);
...
...
sound/soc/codecs/lpass-rx-macro.c
View file @
473d5ae8
...
...
@@ -3551,7 +3551,7 @@ static int rx_macro_probe(struct platform_device *pdev)
/* set MCLK and NPL rates */
clk_set_rate
(
rx
->
clks
[
2
].
clk
,
MCLK_FREQ
);
clk_set_rate
(
rx
->
clks
[
3
].
clk
,
MCLK_FREQ
);
clk_set_rate
(
rx
->
clks
[
3
].
clk
,
2
*
MCLK_FREQ
);
ret
=
clk_bulk_prepare_enable
(
RX_NUM_CLKS_MAX
,
rx
->
clks
);
if
(
ret
)
...
...
sound/soc/codecs/lpass-tx-macro.c
View file @
473d5ae8
...
...
@@ -1811,7 +1811,7 @@ static int tx_macro_probe(struct platform_device *pdev)
/* set MCLK and NPL rates */
clk_set_rate
(
tx
->
clks
[
2
].
clk
,
MCLK_FREQ
);
clk_set_rate
(
tx
->
clks
[
3
].
clk
,
MCLK_FREQ
);
clk_set_rate
(
tx
->
clks
[
3
].
clk
,
2
*
MCLK_FREQ
);
ret
=
clk_bulk_prepare_enable
(
TX_NUM_CLKS_MAX
,
tx
->
clks
);
if
(
ret
)
...
...
sound/soc/codecs/max98373-i2c.c
View file @
473d5ae8
...
...
@@ -446,6 +446,7 @@ static bool max98373_volatile_reg(struct device *dev, unsigned int reg)
case
MAX98373_R2054_MEAS_ADC_PVDD_CH_READBACK
:
case
MAX98373_R2055_MEAS_ADC_THERM_CH_READBACK
:
case
MAX98373_R20B6_BDE_CUR_STATE_READBACK
:
case
MAX98373_R20FF_GLOBAL_SHDN
:
case
MAX98373_R21FF_REV_ID
:
return
true
;
default:
...
...
sound/soc/codecs/max98373-sdw.c
View file @
473d5ae8
...
...
@@ -220,6 +220,7 @@ static bool max98373_volatile_reg(struct device *dev, unsigned int reg)
case
MAX98373_R2054_MEAS_ADC_PVDD_CH_READBACK
:
case
MAX98373_R2055_MEAS_ADC_THERM_CH_READBACK
:
case
MAX98373_R20B6_BDE_CUR_STATE_READBACK
:
case
MAX98373_R20FF_GLOBAL_SHDN
:
case
MAX98373_R21FF_REV_ID
:
/* SoundWire Control Port Registers */
case
MAX98373_R0040_SCP_INIT_STAT_1
...
MAX98373_R0070_SCP_FRAME_CTLR
:
...
...
sound/soc/codecs/max98373.c
View file @
473d5ae8
...
...
@@ -28,11 +28,13 @@ static int max98373_dac_event(struct snd_soc_dapm_widget *w,
regmap_update_bits
(
max98373
->
regmap
,
MAX98373_R20FF_GLOBAL_SHDN
,
MAX98373_GLOBAL_EN_MASK
,
1
);
usleep_range
(
30000
,
31000
);
break
;
case
SND_SOC_DAPM_POST_PMD
:
regmap_update_bits
(
max98373
->
regmap
,
MAX98373_R20FF_GLOBAL_SHDN
,
MAX98373_GLOBAL_EN_MASK
,
0
);
usleep_range
(
30000
,
31000
);
max98373
->
tdm_mode
=
false
;
break
;
default:
...
...
sound/soc/codecs/wm8960.c
View file @
473d5ae8
...
...
@@ -707,7 +707,13 @@ int wm8960_configure_pll(struct snd_soc_component *component, int freq_in,
best_freq_out
=
-
EINVAL
;
*
sysclk_idx
=
*
dac_idx
=
*
bclk_idx
=
-
1
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
sysclk_divs
);
++
i
)
{
/*
* From Datasheet, the PLL performs best when f2 is between
* 90MHz and 100MHz, the desired sysclk output is 11.2896MHz
* or 12.288MHz, then sysclkdiv = 2 is the best choice.
* So search sysclk_divs from 2 to 1 other than from 1 to 2.
*/
for
(
i
=
ARRAY_SIZE
(
sysclk_divs
)
-
1
;
i
>=
0
;
--
i
)
{
if
(
sysclk_divs
[
i
]
==
-
1
)
continue
;
for
(
j
=
0
;
j
<
ARRAY_SIZE
(
dac_divs
);
++
j
)
{
...
...
sound/soc/fsl/fsl_esai.c
View file @
473d5ae8
...
...
@@ -519,11 +519,13 @@ static int fsl_esai_startup(struct snd_pcm_substream *substream,
ESAI_SAICR_SYNC
,
esai_priv
->
synchronous
?
ESAI_SAICR_SYNC
:
0
);
/* Set
a default slot number -- 2
*/
/* Set
slots count
*/
regmap_update_bits
(
esai_priv
->
regmap
,
REG_ESAI_TCCR
,
ESAI_xCCR_xDC_MASK
,
ESAI_xCCR_xDC
(
2
));
ESAI_xCCR_xDC_MASK
,
ESAI_xCCR_xDC
(
esai_priv
->
slots
));
regmap_update_bits
(
esai_priv
->
regmap
,
REG_ESAI_RCCR
,
ESAI_xCCR_xDC_MASK
,
ESAI_xCCR_xDC
(
2
));
ESAI_xCCR_xDC_MASK
,
ESAI_xCCR_xDC
(
esai_priv
->
slots
));
}
return
0
;
...
...
sound/soc/intel/atom/sst-mfld-platform-pcm.c
View file @
473d5ae8
...
...
@@ -487,15 +487,15 @@ static struct snd_soc_dai_driver sst_platform_dai[] = {
.
stream_name
=
"Headset Playback"
,
.
channels_min
=
SST_STEREO
,
.
channels_max
=
SST_STEREO
,
.
rates
=
SNDRV_PCM_RATE_4
4100
|
SNDRV_PCM_RATE_4
8000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
|
SNDRV_PCM_FMTBIT_S24_LE
,
.
rates
=
SNDRV_PCM_RATE_48000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
.
capture
=
{
.
stream_name
=
"Headset Capture"
,
.
channels_min
=
1
,
.
channels_max
=
2
,
.
rates
=
SNDRV_PCM_RATE_4
4100
|
SNDRV_PCM_RATE_4
8000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
|
SNDRV_PCM_FMTBIT_S24_LE
,
.
rates
=
SNDRV_PCM_RATE_48000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
},
{
...
...
@@ -505,8 +505,8 @@ static struct snd_soc_dai_driver sst_platform_dai[] = {
.
stream_name
=
"Deepbuffer Playback"
,
.
channels_min
=
SST_STEREO
,
.
channels_max
=
SST_STEREO
,
.
rates
=
SNDRV_PCM_RATE_4
4100
|
SNDRV_PCM_RATE_4
8000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
|
SNDRV_PCM_FMTBIT_S24_LE
,
.
rates
=
SNDRV_PCM_RATE_48000
,
.
formats
=
SNDRV_PCM_FMTBIT_S16_LE
,
},
},
{
...
...
sound/soc/sof/core.c
View file @
473d5ae8
...
...
@@ -399,7 +399,13 @@ int snd_sof_device_shutdown(struct device *dev)
{
struct
snd_sof_dev
*
sdev
=
dev_get_drvdata
(
dev
);
return
snd_sof_shutdown
(
sdev
);
if
(
IS_ENABLED
(
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE
))
cancel_work_sync
(
&
sdev
->
probe_work
);
if
(
sdev
->
fw_state
==
SOF_FW_BOOT_COMPLETE
)
return
snd_sof_shutdown
(
sdev
);
return
0
;
}
EXPORT_SYMBOL
(
snd_sof_device_shutdown
);
...
...
sound/soc/sof/intel/apl.c
View file @
473d5ae8
...
...
@@ -27,9 +27,10 @@ static const struct snd_sof_debugfs_map apl_dsp_debugfs[] = {
/* apollolake ops */
const
struct
snd_sof_dsp_ops
sof_apl_ops
=
{
/* probe
and remove
*/
/* probe
/remove/shutdown
*/
.
probe
=
hda_dsp_probe
,
.
remove
=
hda_dsp_remove
,
.
shutdown
=
hda_dsp_shutdown
,
/* Register IO */
.
write
=
sof_io_write
,
...
...
sound/soc/sof/intel/cnl.c
View file @
473d5ae8
...
...
@@ -232,9 +232,10 @@ void cnl_ipc_dump(struct snd_sof_dev *sdev)
/* cannonlake ops */
const
struct
snd_sof_dsp_ops
sof_cnl_ops
=
{
/* probe
and remove
*/
/* probe
/remove/shutdown
*/
.
probe
=
hda_dsp_probe
,
.
remove
=
hda_dsp_remove
,
.
shutdown
=
hda_dsp_shutdown
,
/* Register IO */
.
write
=
sof_io_write
,
...
...
@@ -349,22 +350,6 @@ const struct sof_intel_dsp_desc cnl_chip_info = {
};
EXPORT_SYMBOL_NS
(
cnl_chip_info
,
SND_SOC_SOF_INTEL_HDA_COMMON
);
const
struct
sof_intel_dsp_desc
ehl_chip_info
=
{
/* Elkhartlake */
.
cores_num
=
4
,
.
init_core_mask
=
1
,
.
host_managed_cores_mask
=
BIT
(
0
),
.
ipc_req
=
CNL_DSP_REG_HIPCIDR
,
.
ipc_req_mask
=
CNL_DSP_REG_HIPCIDR_BUSY
,
.
ipc_ack
=
CNL_DSP_REG_HIPCIDA
,
.
ipc_ack_mask
=
CNL_DSP_REG_HIPCIDA_DONE
,
.
ipc_ctl
=
CNL_DSP_REG_HIPCCTL
,
.
rom_init_timeout
=
300
,
.
ssp_count
=
ICL_SSP_COUNT
,
.
ssp_base_offset
=
CNL_SSP_BASE_OFFSET
,
};
EXPORT_SYMBOL_NS
(
ehl_chip_info
,
SND_SOC_SOF_INTEL_HDA_COMMON
);
const
struct
sof_intel_dsp_desc
jsl_chip_info
=
{
/* Jasperlake */
.
cores_num
=
2
,
...
...
sound/soc/sof/intel/hda-dsp.c
View file @
473d5ae8
...
...
@@ -226,10 +226,17 @@ bool hda_dsp_core_is_enabled(struct snd_sof_dev *sdev,
val
=
snd_sof_dsp_read
(
sdev
,
HDA_DSP_BAR
,
HDA_DSP_REG_ADSPCS
);
is_enable
=
(
val
&
HDA_DSP_ADSPCS_CPA_MASK
(
core_mask
))
&&
(
val
&
HDA_DSP_ADSPCS_SPA_MASK
(
core_mask
))
&&
!
(
val
&
HDA_DSP_ADSPCS_CRST_MASK
(
core_mask
))
&&
!
(
val
&
HDA_DSP_ADSPCS_CSTALL_MASK
(
core_mask
));
#define MASK_IS_EQUAL(v, m, field) ({ \
u32 _m = field(m); \
((v) & _m) == _m; \
})
is_enable
=
MASK_IS_EQUAL
(
val
,
core_mask
,
HDA_DSP_ADSPCS_CPA_MASK
)
&&
MASK_IS_EQUAL
(
val
,
core_mask
,
HDA_DSP_ADSPCS_SPA_MASK
)
&&
!
(
val
&
HDA_DSP_ADSPCS_CRST_MASK
(
core_mask
))
&&
!
(
val
&
HDA_DSP_ADSPCS_CSTALL_MASK
(
core_mask
));
#undef MASK_IS_EQUAL
dev_dbg
(
sdev
->
dev
,
"DSP core(s) enabled? %d : core_mask %x
\n
"
,
is_enable
,
core_mask
);
...
...
@@ -885,6 +892,12 @@ int hda_dsp_suspend(struct snd_sof_dev *sdev, u32 target_state)
return
snd_sof_dsp_set_power_state
(
sdev
,
&
target_dsp_state
);
}
int
hda_dsp_shutdown
(
struct
snd_sof_dev
*
sdev
)
{
sdev
->
system_suspend_target
=
SOF_SUSPEND_S3
;
return
snd_sof_suspend
(
sdev
->
dev
);
}
int
hda_dsp_set_hw_params_upon_resume
(
struct
snd_sof_dev
*
sdev
)
{
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
...
...
sound/soc/sof/intel/hda.h
View file @
473d5ae8
...
...
@@ -517,6 +517,7 @@ int hda_dsp_resume(struct snd_sof_dev *sdev);
int
hda_dsp_runtime_suspend
(
struct
snd_sof_dev
*
sdev
);
int
hda_dsp_runtime_resume
(
struct
snd_sof_dev
*
sdev
);
int
hda_dsp_runtime_idle
(
struct
snd_sof_dev
*
sdev
);
int
hda_dsp_shutdown
(
struct
snd_sof_dev
*
sdev
);
int
hda_dsp_set_hw_params_upon_resume
(
struct
snd_sof_dev
*
sdev
);
void
hda_dsp_dump
(
struct
snd_sof_dev
*
sdev
,
u32
flags
);
void
hda_ipc_dump
(
struct
snd_sof_dev
*
sdev
);
...
...
sound/soc/sof/intel/icl.c
View file @
473d5ae8
...
...
@@ -26,9 +26,10 @@ static const struct snd_sof_debugfs_map icl_dsp_debugfs[] = {
/* Icelake ops */
const
struct
snd_sof_dsp_ops
sof_icl_ops
=
{
/* probe
and remove
*/
/* probe
/remove/shutdown
*/
.
probe
=
hda_dsp_probe
,
.
remove
=
hda_dsp_remove
,
.
shutdown
=
hda_dsp_shutdown
,
/* Register IO */
.
write
=
sof_io_write
,
...
...
sound/soc/sof/intel/pci-tgl.c
View file @
473d5ae8
...
...
@@ -65,7 +65,7 @@ static const struct sof_dev_desc ehl_desc = {
.
default_tplg_path
=
"intel/sof-tplg"
,
.
default_fw_filename
=
"sof-ehl.ri"
,
.
nocodec_tplg_filename
=
"sof-ehl-nocodec.tplg"
,
.
ops
=
&
sof_
cn
l_ops
,
.
ops
=
&
sof_
tg
l_ops
,
};
static
const
struct
sof_dev_desc
adls_desc
=
{
...
...
sound/soc/sof/intel/tgl.c
View file @
473d5ae8
...
...
@@ -25,7 +25,7 @@ const struct snd_sof_dsp_ops sof_tgl_ops = {
/* probe/remove/shutdown */
.
probe
=
hda_dsp_probe
,
.
remove
=
hda_dsp_remove
,
.
shutdown
=
hda_dsp_
remove
,
.
shutdown
=
hda_dsp_
shutdown
,
/* Register IO */
.
write
=
sof_io_write
,
...
...
@@ -156,6 +156,22 @@ const struct sof_intel_dsp_desc tglh_chip_info = {
};
EXPORT_SYMBOL_NS
(
tglh_chip_info
,
SND_SOC_SOF_INTEL_HDA_COMMON
);
const
struct
sof_intel_dsp_desc
ehl_chip_info
=
{
/* Elkhartlake */
.
cores_num
=
4
,
.
init_core_mask
=
1
,
.
host_managed_cores_mask
=
BIT
(
0
),
.
ipc_req
=
CNL_DSP_REG_HIPCIDR
,
.
ipc_req_mask
=
CNL_DSP_REG_HIPCIDR_BUSY
,
.
ipc_ack
=
CNL_DSP_REG_HIPCIDA
,
.
ipc_ack_mask
=
CNL_DSP_REG_HIPCIDA_DONE
,
.
ipc_ctl
=
CNL_DSP_REG_HIPCCTL
,
.
rom_init_timeout
=
300
,
.
ssp_count
=
ICL_SSP_COUNT
,
.
ssp_base_offset
=
CNL_SSP_BASE_OFFSET
,
};
EXPORT_SYMBOL_NS
(
ehl_chip_info
,
SND_SOC_SOF_INTEL_HDA_COMMON
);
const
struct
sof_intel_dsp_desc
adls_chip_info
=
{
/* Alderlake-S */
.
cores_num
=
2
,
...
...
sound/soc/sunxi/sun4i-codec.c
View file @
473d5ae8
...
...
@@ -1364,6 +1364,7 @@ static struct snd_soc_card *sun4i_codec_create_card(struct device *dev)
return
ERR_PTR
(
-
ENOMEM
);
card
->
dev
=
dev
;
card
->
owner
=
THIS_MODULE
;
card
->
name
=
"sun4i-codec"
;
card
->
dapm_widgets
=
sun4i_codec_card_dapm_widgets
;
card
->
num_dapm_widgets
=
ARRAY_SIZE
(
sun4i_codec_card_dapm_widgets
);
...
...
@@ -1396,6 +1397,7 @@ static struct snd_soc_card *sun6i_codec_create_card(struct device *dev)
return
ERR_PTR
(
-
ENOMEM
);
card
->
dev
=
dev
;
card
->
owner
=
THIS_MODULE
;
card
->
name
=
"A31 Audio Codec"
;
card
->
dapm_widgets
=
sun6i_codec_card_dapm_widgets
;
card
->
num_dapm_widgets
=
ARRAY_SIZE
(
sun6i_codec_card_dapm_widgets
);
...
...
@@ -1449,6 +1451,7 @@ static struct snd_soc_card *sun8i_a23_codec_create_card(struct device *dev)
return
ERR_PTR
(
-
ENOMEM
);
card
->
dev
=
dev
;
card
->
owner
=
THIS_MODULE
;
card
->
name
=
"A23 Audio Codec"
;
card
->
dapm_widgets
=
sun6i_codec_card_dapm_widgets
;
card
->
num_dapm_widgets
=
ARRAY_SIZE
(
sun6i_codec_card_dapm_widgets
);
...
...
@@ -1487,6 +1490,7 @@ static struct snd_soc_card *sun8i_h3_codec_create_card(struct device *dev)
return
ERR_PTR
(
-
ENOMEM
);
card
->
dev
=
dev
;
card
->
owner
=
THIS_MODULE
;
card
->
name
=
"H3 Audio Codec"
;
card
->
dapm_widgets
=
sun6i_codec_card_dapm_widgets
;
card
->
num_dapm_widgets
=
ARRAY_SIZE
(
sun6i_codec_card_dapm_widgets
);
...
...
@@ -1525,6 +1529,7 @@ static struct snd_soc_card *sun8i_v3s_codec_create_card(struct device *dev)
return
ERR_PTR
(
-
ENOMEM
);
card
->
dev
=
dev
;
card
->
owner
=
THIS_MODULE
;
card
->
name
=
"V3s Audio Codec"
;
card
->
dapm_widgets
=
sun6i_codec_card_dapm_widgets
;
card
->
num_dapm_widgets
=
ARRAY_SIZE
(
sun6i_codec_card_dapm_widgets
);
...
...
sound/usb/quirks.c
View file @
473d5ae8
...
...
@@ -1532,6 +1532,7 @@ bool snd_usb_get_sample_rate_quirk(struct snd_usb_audio *chip)
case
USB_ID
(
0x21b4
,
0x0081
):
/* AudioQuest DragonFly */
case
USB_ID
(
0x2912
,
0x30c8
):
/* Audioengine D1 */
case
USB_ID
(
0x413c
,
0xa506
):
/* Dell AE515 sound bar */
case
USB_ID
(
0x046d
,
0x084c
):
/* Logitech ConferenceCam Connect */
return
true
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment