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
nexedi
linux
Commits
0dceaf7c
Commit
0dceaf7c
authored
Jul 06, 2019
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'asoc-5.2' into asoc-linus
parents
6fbc7275
1bcc1fd6
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
91 additions
and
29 deletions
+91
-29
sound/soc/codecs/ad193x.c
sound/soc/codecs/ad193x.c
+2
-4
sound/soc/codecs/hdac_hdmi.c
sound/soc/codecs/hdac_hdmi.c
+31
-0
sound/soc/codecs/nau8825.c
sound/soc/codecs/nau8825.c
+4
-0
sound/soc/codecs/nau8825.h
sound/soc/codecs/nau8825.h
+2
-0
sound/soc/generic/audio-graph-card.c
sound/soc/generic/audio-graph-card.c
+3
-3
sound/soc/intel/boards/sof_rt5682.c
sound/soc/intel/boards/sof_rt5682.c
+1
-1
sound/soc/intel/skylake/skl.c
sound/soc/intel/skylake/skl.c
+21
-0
sound/soc/intel/skylake/skl.h
sound/soc/intel/skylake/skl.h
+1
-0
sound/soc/meson/axg-tdm.h
sound/soc/meson/axg-tdm.h
+1
-1
sound/soc/meson/axg-tdmin.c
sound/soc/meson/axg-tdmin.c
+0
-1
sound/soc/meson/axg-tdmout.c
sound/soc/meson/axg-tdmout.c
+0
-1
sound/soc/qcom/common.c
sound/soc/qcom/common.c
+1
-0
sound/soc/soc-core.c
sound/soc/soc-core.c
+12
-8
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+10
-8
sound/soc/ti/davinci-mcasp.c
sound/soc/ti/davinci-mcasp.c
+1
-1
sound/soc/ti/omap-mcbsp.c
sound/soc/ti/omap-mcbsp.c
+1
-1
No files found.
sound/soc/codecs/ad193x.c
View file @
0dceaf7c
...
...
@@ -240,10 +240,8 @@ static int ad193x_set_dai_fmt(struct snd_soc_dai *codec_dai,
}
/* For DSP_*, LRCLK's polarity must be inverted */
if
(
fmt
&
SND_SOC_DAIFMT_DSP_A
)
{
change_bit
(
ffs
(
AD193X_DAC_LEFT_HIGH
)
-
1
,
(
unsigned
long
*
)
&
dac_fmt
);
}
if
(
fmt
&
SND_SOC_DAIFMT_DSP_A
)
dac_fmt
^=
AD193X_DAC_LEFT_HIGH
;
switch
(
fmt
&
SND_SOC_DAIFMT_MASTER_MASK
)
{
case
SND_SOC_DAIFMT_CBM_CFM
:
/* codec clk & frm master */
...
...
sound/soc/codecs/hdac_hdmi.c
View file @
0dceaf7c
...
...
@@ -538,6 +538,29 @@ static struct hdac_hdmi_port *hdac_hdmi_get_port_from_cvt(
return
NULL
;
}
/*
* Go through all converters and ensure connection is set to
* the correct pin as set via kcontrols.
*/
static
void
hdac_hdmi_verify_connect_sel_all_pins
(
struct
hdac_device
*
hdev
)
{
struct
hdac_hdmi_priv
*
hdmi
=
hdev_to_hdmi_priv
(
hdev
);
struct
hdac_hdmi_port
*
port
;
struct
hdac_hdmi_cvt
*
cvt
;
int
cvt_idx
=
0
;
list_for_each_entry
(
cvt
,
&
hdmi
->
cvt_list
,
head
)
{
port
=
hdac_hdmi_get_port_from_cvt
(
hdev
,
hdmi
,
cvt
);
if
(
port
&&
port
->
pin
)
{
snd_hdac_codec_write
(
hdev
,
port
->
pin
->
nid
,
0
,
AC_VERB_SET_CONNECT_SEL
,
cvt_idx
);
dev_dbg
(
&
hdev
->
dev
,
"%s: %s set connect %d -> %d
\n
"
,
__func__
,
cvt
->
name
,
port
->
pin
->
nid
,
cvt_idx
);
}
++
cvt_idx
;
}
}
/*
* This tries to get a valid pin and set the HW constraints based on the
* ELD. Even if a valid pin is not found return success so that device open
...
...
@@ -798,6 +821,14 @@ static int hdac_hdmi_cvt_output_widget_event(struct snd_soc_dapm_widget *w,
AC_VERB_SET_CHANNEL_STREAMID
,
pcm
->
stream_tag
);
snd_hdac_codec_write
(
hdev
,
cvt
->
nid
,
0
,
AC_VERB_SET_STREAM_FORMAT
,
pcm
->
format
);
/*
* The connection indices are shared by all converters and
* may interfere with each other. Ensure correct
* routing for all converters at stream start.
*/
hdac_hdmi_verify_connect_sel_all_pins
(
hdev
);
break
;
case
SND_SOC_DAPM_POST_PMD
:
...
...
sound/soc/codecs/nau8825.c
View file @
0dceaf7c
...
...
@@ -1880,6 +1880,10 @@ static void nau8825_init_regs(struct nau8825 *nau8825)
NAU8825_JACK_EJECT_DEBOUNCE_MASK
,
nau8825
->
jack_eject_debounce
<<
NAU8825_JACK_EJECT_DEBOUNCE_SFT
);
/* Pull up IRQ pin */
regmap_update_bits
(
regmap
,
NAU8825_REG_INTERRUPT_MASK
,
NAU8825_IRQ_PIN_PULLUP
|
NAU8825_IRQ_PIN_PULL_EN
,
NAU8825_IRQ_PIN_PULLUP
|
NAU8825_IRQ_PIN_PULL_EN
);
/* Mask unneeded IRQs: 1 - disable, 0 - enable */
regmap_update_bits
(
regmap
,
NAU8825_REG_INTERRUPT_MASK
,
0x7ff
,
0x7ff
);
...
...
sound/soc/codecs/nau8825.h
View file @
0dceaf7c
...
...
@@ -168,6 +168,8 @@
#define NAU8825_JACK_POLARITY (1 << 1)
/* 0 - active low, 1 - active high */
/* INTERRUPT_MASK (0xf) */
#define NAU8825_IRQ_PIN_PULLUP (1 << 14)
#define NAU8825_IRQ_PIN_PULL_EN (1 << 13)
#define NAU8825_IRQ_OUTPUT_EN (1 << 11)
#define NAU8825_IRQ_HEADSET_COMPLETE_EN (1 << 10)
#define NAU8825_IRQ_RMS_EN (1 << 8)
...
...
sound/soc/generic/audio-graph-card.c
View file @
0dceaf7c
...
...
@@ -435,9 +435,6 @@ static int graph_for_each_link(struct asoc_simple_priv *priv,
codec_ep
=
of_graph_get_remote_endpoint
(
cpu_ep
);
codec_port
=
of_get_parent
(
codec_ep
);
of_node_put
(
codec_ep
);
of_node_put
(
codec_port
);
/* get convert-xxx property */
memset
(
&
adata
,
0
,
sizeof
(
adata
));
graph_parse_convert
(
dev
,
codec_ep
,
&
adata
);
...
...
@@ -457,6 +454,9 @@ static int graph_for_each_link(struct asoc_simple_priv *priv,
else
ret
=
func_noml
(
priv
,
cpu_ep
,
codec_ep
,
li
);
of_node_put
(
codec_ep
);
of_node_put
(
codec_port
);
if
(
ret
<
0
)
return
ret
;
...
...
sound/soc/intel/boards/sof_rt5682.c
View file @
0dceaf7c
...
...
@@ -494,7 +494,7 @@ static int sof_audio_probe(struct platform_device *pdev)
int
dmic_num
,
hdmi_num
;
int
ret
,
ssp_amp
,
ssp_codec
;
ctx
=
devm_kzalloc
(
&
pdev
->
dev
,
sizeof
(
*
ctx
),
GFP_
ATOMIC
);
ctx
=
devm_kzalloc
(
&
pdev
->
dev
,
sizeof
(
*
ctx
),
GFP_
KERNEL
);
if
(
!
ctx
)
return
-
ENOMEM
;
...
...
sound/soc/intel/skylake/skl.c
View file @
0dceaf7c
...
...
@@ -184,6 +184,25 @@ void skl_update_d0i3c(struct device *dev, bool enable)
snd_hdac_chip_readb
(
bus
,
VS_D0I3C
));
}
/**
* skl_dum_set - set DUM bit in EM2 register
* @bus: HD-audio core bus
*
* Addresses incorrect position reporting for capture streams.
* Used on device power up.
*/
static
void
skl_dum_set
(
struct
hdac_bus
*
bus
)
{
/* For the DUM bit to be set, CRST needs to be out of reset state */
if
(
!
(
snd_hdac_chip_readb
(
bus
,
GCTL
)
&
AZX_GCTL_RESET
))
{
skl_enable_miscbdcge
(
bus
->
dev
,
false
);
snd_hdac_bus_exit_link_reset
(
bus
);
skl_enable_miscbdcge
(
bus
->
dev
,
true
);
}
snd_hdac_chip_updatel
(
bus
,
VS_EM2
,
AZX_VS_EM2_DUM
,
AZX_VS_EM2_DUM
);
}
/* called from IRQ */
static
void
skl_stream_update
(
struct
hdac_bus
*
bus
,
struct
hdac_stream
*
hstr
)
{
...
...
@@ -291,6 +310,7 @@ static int _skl_resume(struct hdac_bus *bus)
struct
skl
*
skl
=
bus_to_skl
(
bus
);
skl_init_pci
(
skl
);
skl_dum_set
(
bus
);
skl_init_chip
(
bus
,
true
);
return
skl_resume_dsp
(
skl
);
...
...
@@ -948,6 +968,7 @@ static int skl_first_init(struct hdac_bus *bus)
/* initialize chip */
skl_init_pci
(
skl
);
skl_dum_set
(
bus
);
return
skl_init_chip
(
bus
,
true
);
}
...
...
sound/soc/intel/skylake/skl.h
View file @
0dceaf7c
...
...
@@ -37,6 +37,7 @@
#define DMA_TRANSMITION_START 2
#define DMA_TRANSMITION_STOP 3
#define AZX_VS_EM2_DUM BIT(23)
#define AZX_REG_VS_EM2_L1SEN BIT(13)
struct
skl_dsp_resource
{
...
...
sound/soc/meson/axg-tdm.h
View file @
0dceaf7c
...
...
@@ -40,7 +40,7 @@ struct axg_tdm_iface {
static
inline
bool
axg_tdm_lrclk_invert
(
unsigned
int
fmt
)
{
return
(
fmt
&
SND_SOC_DAIFMT_I2S
)
^
return
(
(
fmt
&
SND_SOC_DAIFMT_FORMAT_MASK
)
==
SND_SOC_DAIFMT_I2S
)
^
!!
(
fmt
&
(
SND_SOC_DAIFMT_IB_IF
|
SND_SOC_DAIFMT_NB_IF
));
}
...
...
sound/soc/meson/axg-tdmin.c
View file @
0dceaf7c
...
...
@@ -121,7 +121,6 @@ static int axg_tdmin_prepare(struct regmap *map,
break
;
case
SND_SOC_DAIFMT_LEFT_J
:
case
SND_SOC_DAIFMT_RIGHT_J
:
case
SND_SOC_DAIFMT_DSP_B
:
break
;
...
...
sound/soc/meson/axg-tdmout.c
View file @
0dceaf7c
...
...
@@ -137,7 +137,6 @@ static int axg_tdmout_prepare(struct regmap *map,
break
;
case
SND_SOC_DAIFMT_LEFT_J
:
case
SND_SOC_DAIFMT_RIGHT_J
:
case
SND_SOC_DAIFMT_DSP_B
:
skew
+=
1
;
break
;
...
...
sound/soc/qcom/common.c
View file @
0dceaf7c
...
...
@@ -97,6 +97,7 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
goto
err
;
}
link
->
nonatomic
=
1
;
link
->
dpcm_playback
=
1
;
link
->
dpcm_capture
=
1
;
link
->
stream_name
=
link
->
name
;
...
...
sound/soc/soc-core.c
View file @
0dceaf7c
...
...
@@ -158,9 +158,10 @@ static void soc_init_component_debugfs(struct snd_soc_component *component)
component
->
card
->
debugfs_card_root
);
}
if
(
!
component
->
debugfs_root
)
{
if
(
IS_ERR
(
component
->
debugfs_root
)
)
{
dev_warn
(
component
->
dev
,
"ASoC: Failed to create component debugfs directory
\n
"
);
"ASoC: Failed to create component debugfs directory: %ld
\n
"
,
PTR_ERR
(
component
->
debugfs_root
));
return
;
}
...
...
@@ -212,18 +213,21 @@ static void soc_init_card_debugfs(struct snd_soc_card *card)
card
->
debugfs_card_root
=
debugfs_create_dir
(
card
->
name
,
snd_soc_debugfs_root
);
if
(
!
card
->
debugfs_card_root
)
{
if
(
IS_ERR
(
card
->
debugfs_card_root
)
)
{
dev_warn
(
card
->
dev
,
"ASoC: Failed to create card debugfs directory
\n
"
);
"ASoC: Failed to create card debugfs directory: %ld
\n
"
,
PTR_ERR
(
card
->
debugfs_card_root
));
card
->
debugfs_card_root
=
NULL
;
return
;
}
card
->
debugfs_pop_time
=
debugfs_create_u32
(
"dapm_pop_time"
,
0644
,
card
->
debugfs_card_root
,
&
card
->
pop_time
);
if
(
!
card
->
debugfs_pop_time
)
if
(
IS_ERR
(
card
->
debugfs_pop_time
)
)
dev_warn
(
card
->
dev
,
"ASoC: Failed to create pop time debugfs file
\n
"
);
"ASoC: Failed to create pop time debugfs file: %ld
\n
"
,
PTR_ERR
(
card
->
debugfs_pop_time
));
}
static
void
soc_cleanup_card_debugfs
(
struct
snd_soc_card
*
card
)
...
...
@@ -2837,14 +2841,12 @@ static void snd_soc_unbind_card(struct snd_soc_card *card, bool unregister)
snd_soc_dapm_shutdown
(
card
);
snd_soc_flush_all_delayed_work
(
card
);
mutex_lock
(
&
client_mutex
);
/* remove all components used by DAI links on this card */
for_each_comp_order
(
order
)
{
for_each_card_rtds
(
card
,
rtd
)
{
soc_remove_link_components
(
card
,
rtd
,
order
);
}
}
mutex_unlock
(
&
client_mutex
);
soc_cleanup_card_resources
(
card
);
if
(
!
unregister
)
...
...
@@ -2863,7 +2865,9 @@ static void snd_soc_unbind_card(struct snd_soc_card *card, bool unregister)
*/
int
snd_soc_unregister_card
(
struct
snd_soc_card
*
card
)
{
mutex_lock
(
&
client_mutex
);
snd_soc_unbind_card
(
card
,
true
);
mutex_unlock
(
&
client_mutex
);
dev_dbg
(
card
->
dev
,
"ASoC: Unregistered card '%s'
\n
"
,
card
->
name
);
return
0
;
...
...
sound/soc/soc-dapm.c
View file @
0dceaf7c
...
...
@@ -2155,23 +2155,25 @@ void snd_soc_dapm_debugfs_init(struct snd_soc_dapm_context *dapm,
{
struct
dentry
*
d
;
if
(
!
parent
)
if
(
!
parent
||
IS_ERR
(
parent
)
)
return
;
dapm
->
debugfs_dapm
=
debugfs_create_dir
(
"dapm"
,
parent
);
if
(
!
dapm
->
debugfs_dapm
)
{
if
(
IS_ERR
(
dapm
->
debugfs_dapm
)
)
{
dev_warn
(
dapm
->
dev
,
"ASoC: Failed to create DAPM debugfs directory
\n
"
);
"ASoC: Failed to create DAPM debugfs directory %ld
\n
"
,
PTR_ERR
(
dapm
->
debugfs_dapm
));
return
;
}
d
=
debugfs_create_file
(
"bias_level"
,
0444
,
dapm
->
debugfs_dapm
,
dapm
,
&
dapm_bias_fops
);
if
(
!
d
)
if
(
IS_ERR
(
d
)
)
dev_warn
(
dapm
->
dev
,
"ASoC: Failed to create bias level debugfs file
\n
"
);
"ASoC: Failed to create bias level debugfs file: %ld
\n
"
,
PTR_ERR
(
d
));
}
static
void
dapm_debugfs_add_widget
(
struct
snd_soc_dapm_widget
*
w
)
...
...
@@ -2185,10 +2187,10 @@ static void dapm_debugfs_add_widget(struct snd_soc_dapm_widget *w)
d
=
debugfs_create_file
(
w
->
name
,
0444
,
dapm
->
debugfs_dapm
,
w
,
&
dapm_widget_power_fops
);
if
(
!
d
)
if
(
IS_ERR
(
d
)
)
dev_warn
(
w
->
dapm
->
dev
,
"ASoC: Failed to create %s debugfs file
\n
"
,
w
->
name
);
"ASoC: Failed to create %s debugfs file: %ld
\n
"
,
w
->
name
,
PTR_ERR
(
d
)
);
}
static
void
dapm_debugfs_cleanup
(
struct
snd_soc_dapm_context
*
dapm
)
...
...
sound/soc/ti/davinci-mcasp.c
View file @
0dceaf7c
...
...
@@ -2234,7 +2234,7 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
ret
=
edma_pcm_platform_register
(
&
pdev
->
dev
);
break
;
case
PCM_SDMA
:
ret
=
sdma_pcm_platform_register
(
&
pdev
->
dev
,
NULL
,
NULL
);
ret
=
sdma_pcm_platform_register
(
&
pdev
->
dev
,
"tx"
,
"rx"
);
break
;
default:
dev_err
(
&
pdev
->
dev
,
"No DMA controller found (%d)
\n
"
,
ret
);
...
...
sound/soc/ti/omap-mcbsp.c
View file @
0dceaf7c
...
...
@@ -1424,7 +1424,7 @@ static int asoc_mcbsp_probe(struct platform_device *pdev)
if
(
ret
)
return
ret
;
return
sdma_pcm_platform_register
(
&
pdev
->
dev
,
NULL
,
NULL
);
return
sdma_pcm_platform_register
(
&
pdev
->
dev
,
"tx"
,
"rx"
);
}
static
int
asoc_mcbsp_remove
(
struct
platform_device
*
pdev
)
...
...
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