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
7f5a466f
Commit
7f5a466f
authored
May 06, 2019
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'asoc-5.1' into asoc-linus
parents
e93c9c99
f47b9ad9
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
63 additions
and
16 deletions
+63
-16
sound/soc/codecs/da7213.c
sound/soc/codecs/da7213.c
+4
-1
sound/soc/codecs/da7213.h
sound/soc/codecs/da7213.h
+2
-0
sound/soc/codecs/da7219.c
sound/soc/codecs/da7219.c
+8
-2
sound/soc/codecs/hdac_hdmi.c
sound/soc/codecs/hdac_hdmi.c
+11
-0
sound/soc/codecs/hdmi-codec.c
sound/soc/codecs/hdmi-codec.c
+5
-1
sound/soc/codecs/rt5682.c
sound/soc/codecs/rt5682.c
+1
-1
sound/soc/mediatek/common/mtk-btcvsd.c
sound/soc/mediatek/common/mtk-btcvsd.c
+2
-2
sound/soc/sh/rcar/core.c
sound/soc/sh/rcar/core.c
+13
-5
sound/soc/sh/rcar/rsnd.h
sound/soc/sh/rcar/rsnd.h
+1
-0
sound/soc/sh/rcar/ssi.c
sound/soc/sh/rcar/ssi.c
+2
-0
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+3
-0
sound/soc/soc-pcm.c
sound/soc/soc-pcm.c
+8
-2
sound/soc/stm/stm32_i2s.c
sound/soc/stm/stm32_i2s.c
+3
-2
No files found.
sound/soc/codecs/da7213.c
View file @
7f5a466f
...
...
@@ -1305,7 +1305,10 @@ static int da7213_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
/* By default only 64 BCLK per WCLK is supported */
dai_clk_mode
|=
DA7213_DAI_BCLKS_PER_WCLK_64
;
snd_soc_component_write
(
component
,
DA7213_DAI_CLK_MODE
,
dai_clk_mode
);
snd_soc_component_update_bits
(
component
,
DA7213_DAI_CLK_MODE
,
DA7213_DAI_BCLKS_PER_WCLK_MASK
|
DA7213_DAI_CLK_POL_MASK
|
DA7213_DAI_WCLK_POL_MASK
,
dai_clk_mode
);
snd_soc_component_update_bits
(
component
,
DA7213_DAI_CTRL
,
DA7213_DAI_FORMAT_MASK
,
dai_ctrl
);
snd_soc_component_write
(
component
,
DA7213_DAI_OFFSET
,
dai_offset
);
...
...
sound/soc/codecs/da7213.h
View file @
7f5a466f
...
...
@@ -181,7 +181,9 @@
#define DA7213_DAI_BCLKS_PER_WCLK_256 (0x3 << 0)
#define DA7213_DAI_BCLKS_PER_WCLK_MASK (0x3 << 0)
#define DA7213_DAI_CLK_POL_INV (0x1 << 2)
#define DA7213_DAI_CLK_POL_MASK (0x1 << 2)
#define DA7213_DAI_WCLK_POL_INV (0x1 << 3)
#define DA7213_DAI_WCLK_POL_MASK (0x1 << 3)
#define DA7213_DAI_CLK_EN_MASK (0x1 << 7)
/* DA7213_DAI_CTRL = 0x29 */
...
...
sound/soc/codecs/da7219.c
View file @
7f5a466f
...
...
@@ -1583,20 +1583,26 @@ static const struct snd_soc_dai_ops da7219_dai_ops = {
#define DA7219_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
#define DA7219_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |\
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |\
SNDRV_PCM_RATE_96000)
static
struct
snd_soc_dai_driver
da7219_dai
=
{
.
name
=
"da7219-hifi"
,
.
playback
=
{
.
stream_name
=
"Playback"
,
.
channels_min
=
1
,
.
channels_max
=
DA7219_DAI_CH_NUM_MAX
,
.
rates
=
SNDRV_PCM_RATE_8000_96000
,
.
rates
=
DA7219_RATES
,
.
formats
=
DA7219_FORMATS
,
},
.
capture
=
{
.
stream_name
=
"Capture"
,
.
channels_min
=
1
,
.
channels_max
=
DA7219_DAI_CH_NUM_MAX
,
.
rates
=
SNDRV_PCM_RATE_8000_96000
,
.
rates
=
DA7219_RATES
,
.
formats
=
DA7219_FORMATS
,
},
.
ops
=
&
da7219_dai_ops
,
...
...
sound/soc/codecs/hdac_hdmi.c
View file @
7f5a466f
...
...
@@ -1854,6 +1854,17 @@ static int hdmi_codec_probe(struct snd_soc_component *component)
/* Imp: Store the card pointer in hda_codec */
hdmi
->
card
=
dapm
->
card
->
snd_card
;
/*
* Setup a device_link between card device and HDMI codec device.
* The card device is the consumer and the HDMI codec device is
* the supplier. With this setting, we can make sure that the audio
* domain in display power will be always turned on before operating
* on the HDMI audio codec registers.
* Let's use the flag DL_FLAG_AUTOREMOVE_CONSUMER. This can make
* sure the device link is freed when the machine driver is removed.
*/
device_link_add
(
component
->
card
->
dev
,
&
hdev
->
dev
,
DL_FLAG_RPM_ACTIVE
|
DL_FLAG_AUTOREMOVE_CONSUMER
);
/*
* hdac_device core already sets the state to active and calls
* get_noresume. So enable runtime and set the device to suspend.
...
...
sound/soc/codecs/hdmi-codec.c
View file @
7f5a466f
...
...
@@ -439,8 +439,12 @@ static int hdmi_codec_startup(struct snd_pcm_substream *substream,
if
(
!
ret
)
{
ret
=
snd_pcm_hw_constraint_eld
(
substream
->
runtime
,
hcp
->
eld
);
if
(
ret
)
if
(
ret
)
{
mutex_lock
(
&
hcp
->
current_stream_lock
);
hcp
->
current_stream
=
NULL
;
mutex_unlock
(
&
hcp
->
current_stream_lock
);
return
ret
;
}
}
/* Select chmap supported */
hdmi_codec_eld_chmap
(
hcp
);
...
...
sound/soc/codecs/rt5682.c
View file @
7f5a466f
...
...
@@ -2588,6 +2588,7 @@ static int rt5682_i2c_probe(struct i2c_client *i2c,
rt5682_reset
(
rt5682
->
regmap
);
mutex_init
(
&
rt5682
->
calibrate_mutex
);
rt5682_calibrate
(
rt5682
);
ret
=
regmap_multi_reg_write
(
rt5682
->
regmap
,
patch_list
,
...
...
@@ -2654,7 +2655,6 @@ static int rt5682_i2c_probe(struct i2c_client *i2c,
INIT_DELAYED_WORK
(
&
rt5682
->
jd_check_work
,
rt5682_jd_check_handler
);
mutex_init
(
&
rt5682
->
calibrate_mutex
);
if
(
i2c
->
irq
)
{
ret
=
devm_request_threaded_irq
(
&
i2c
->
dev
,
i2c
->
irq
,
NULL
,
...
...
sound/soc/mediatek/common/mtk-btcvsd.c
View file @
7f5a466f
...
...
@@ -193,13 +193,13 @@ static const u8 table_msbc_silence[SCO_PACKET_180] = {
static
void
mtk_btcvsd_snd_irq_enable
(
struct
mtk_btcvsd_snd
*
bt
)
{
regmap_update_bits
(
bt
->
infra
,
bt
->
infra_misc_offset
,
bt
->
conn_bt_cvsd_mask
,
bt
->
conn_bt_cvsd_mask
);
bt
->
conn_bt_cvsd_mask
,
0
);
}
static
void
mtk_btcvsd_snd_irq_disable
(
struct
mtk_btcvsd_snd
*
bt
)
{
regmap_update_bits
(
bt
->
infra
,
bt
->
infra_misc_offset
,
bt
->
conn_bt_cvsd_mask
,
0
);
bt
->
conn_bt_cvsd_mask
,
bt
->
conn_bt_cvsd_mask
);
}
static
void
mtk_btcvsd_snd_set_state
(
struct
mtk_btcvsd_snd
*
bt
,
...
...
sound/soc/sh/rcar/core.c
View file @
7f5a466f
...
...
@@ -300,6 +300,18 @@ int rsnd_runtime_channel_after_ctu_with_params(struct rsnd_dai_stream *io,
return
chan
;
}
int
rsnd_channel_normalization
(
int
chan
)
{
if
((
chan
>
8
)
||
(
chan
<
0
))
return
0
;
/* TDM Extend Mode needs 8ch */
if
(
chan
==
6
)
chan
=
8
;
return
chan
;
}
int
rsnd_runtime_channel_for_ssi_with_params
(
struct
rsnd_dai_stream
*
io
,
struct
snd_pcm_hw_params
*
params
)
{
...
...
@@ -312,11 +324,7 @@ int rsnd_runtime_channel_for_ssi_with_params(struct rsnd_dai_stream *io,
if
(
rsnd_runtime_is_multi_ssi
(
io
))
chan
/=
rsnd_rdai_ssi_lane_get
(
rdai
);
/* TDM Extend Mode needs 8ch */
if
(
chan
==
6
)
chan
=
8
;
return
chan
;
return
rsnd_channel_normalization
(
chan
);
}
int
rsnd_runtime_is_multi_ssi
(
struct
rsnd_dai_stream
*
io
)
...
...
sound/soc/sh/rcar/rsnd.h
View file @
7f5a466f
...
...
@@ -446,6 +446,7 @@ void rsnd_parse_connect_common(struct rsnd_dai *rdai,
struct
device_node
*
playback
,
struct
device_node
*
capture
);
int
rsnd_channel_normalization
(
int
chan
);
#define rsnd_runtime_channel_original(io) \
rsnd_runtime_channel_original_with_params(io, NULL)
int
rsnd_runtime_channel_original_with_params
(
struct
rsnd_dai_stream
*
io
,
...
...
sound/soc/sh/rcar/ssi.c
View file @
7f5a466f
...
...
@@ -303,6 +303,8 @@ static int rsnd_ssi_master_clk_start(struct rsnd_mod *mod,
if
(
rsnd_runtime_is_tdm_split
(
io
))
chan
=
rsnd_io_converted_chan
(
io
);
chan
=
rsnd_channel_normalization
(
chan
);
main_rate
=
rsnd_ssi_clk_query
(
rdai
,
rate
,
chan
,
&
idx
);
if
(
!
main_rate
)
{
dev_err
(
dev
,
"unsupported clock rate
\n
"
);
...
...
sound/soc/soc-dapm.c
View file @
7f5a466f
...
...
@@ -883,6 +883,7 @@ static int dapm_create_or_share_kcontrol(struct snd_soc_dapm_widget *w,
case
snd_soc_dapm_switch
:
case
snd_soc_dapm_mixer
:
case
snd_soc_dapm_pga
:
case
snd_soc_dapm_effect
:
case
snd_soc_dapm_out_drv
:
wname_in_long_name
=
true
;
kcname_in_long_name
=
true
;
...
...
@@ -2370,6 +2371,7 @@ static ssize_t dapm_widget_show_component(struct snd_soc_component *cmpnt,
case
snd_soc_dapm_dac
:
case
snd_soc_dapm_adc
:
case
snd_soc_dapm_pga
:
case
snd_soc_dapm_effect
:
case
snd_soc_dapm_out_drv
:
case
snd_soc_dapm_mixer
:
case
snd_soc_dapm_mixer_named_ctl
:
...
...
@@ -3197,6 +3199,7 @@ int snd_soc_dapm_new_widgets(struct snd_soc_card *card)
dapm_new_mux
(
w
);
break
;
case
snd_soc_dapm_pga
:
case
snd_soc_dapm_effect
:
case
snd_soc_dapm_out_drv
:
dapm_new_pga
(
w
);
break
;
...
...
sound/soc/soc-pcm.c
View file @
7f5a466f
...
...
@@ -43,8 +43,8 @@ static bool snd_soc_dai_stream_valid(struct snd_soc_dai *dai, int stream)
else
codec_stream
=
&
dai
->
driver
->
capture
;
/* If the codec specifies any
rate at all, it supports the stream.
*/
return
codec_stream
->
rates
;
/* If the codec specifies any
channels at all, it supports the stream
*/
return
codec_stream
->
channels_min
;
}
/**
...
...
@@ -1033,6 +1033,9 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream,
codec_err:
for_each_rtd_codec_dai_rollback
(
rtd
,
i
,
codec_dai
)
{
if
(
!
snd_soc_dai_stream_valid
(
codec_dai
,
substream
->
stream
))
continue
;
if
(
codec_dai
->
driver
->
ops
->
hw_free
)
codec_dai
->
driver
->
ops
->
hw_free
(
substream
,
codec_dai
);
codec_dai
->
rate
=
0
;
...
...
@@ -1090,6 +1093,9 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
/* now free hw params for the DAIs */
for_each_rtd_codec_dai
(
rtd
,
i
,
codec_dai
)
{
if
(
!
snd_soc_dai_stream_valid
(
codec_dai
,
substream
->
stream
))
continue
;
if
(
codec_dai
->
driver
->
ops
->
hw_free
)
codec_dai
->
driver
->
ops
->
hw_free
(
substream
,
codec_dai
);
}
...
...
sound/soc/stm/stm32_i2s.c
View file @
7f5a466f
...
...
@@ -845,8 +845,9 @@ static int stm32_i2s_parse_dt(struct platform_device *pdev,
/* Get irqs */
irq
=
platform_get_irq
(
pdev
,
0
);
if
(
irq
<
0
)
{
dev_err
(
&
pdev
->
dev
,
"no irq for node %s
\n
"
,
pdev
->
name
);
return
-
ENOENT
;
if
(
irq
!=
-
EPROBE_DEFER
)
dev_err
(
&
pdev
->
dev
,
"no irq for node %s
\n
"
,
pdev
->
name
);
return
irq
;
}
ret
=
devm_request_irq
(
&
pdev
->
dev
,
irq
,
stm32_i2s_isr
,
IRQF_ONESHOT
,
...
...
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