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
a1cb98ac
Commit
a1cb98ac
authored
Aug 04, 2014
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/component' into asoc-next
parents
7c081528
0f2780ad
Changes
23
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1125 additions
and
749 deletions
+1125
-749
include/sound/soc-dai.h
include/sound/soc-dai.h
+4
-1
include/sound/soc-dapm.h
include/sound/soc-dapm.h
+5
-3
include/sound/soc.h
include/sound/soc.h
+57
-21
include/trace/events/asoc.h
include/trace/events/asoc.h
+3
-3
sound/soc/codecs/ac97.c
sound/soc/codecs/ac97.c
+2
-2
sound/soc/codecs/cx20442.c
sound/soc/codecs/cx20442.c
+3
-3
sound/soc/codecs/tlv320dac33.c
sound/soc/codecs/tlv320dac33.c
+1
-1
sound/soc/codecs/uda134x.c
sound/soc/codecs/uda134x.c
+1
-1
sound/soc/codecs/wm8960.c
sound/soc/codecs/wm8960.c
+1
-1
sound/soc/codecs/wm_adsp.c
sound/soc/codecs/wm_adsp.c
+2
-2
sound/soc/omap/ams-delta.c
sound/soc/omap/ams-delta.c
+1
-1
sound/soc/soc-cache.c
sound/soc/soc-cache.c
+3
-4
sound/soc/soc-compress.c
sound/soc/soc-compress.c
+10
-3
sound/soc/soc-core.c
sound/soc/soc-core.c
+462
-384
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+158
-121
sound/soc/soc-jack.c
sound/soc/soc-jack.c
+2
-2
sound/soc/soc-pcm.c
sound/soc/soc-pcm.c
+400
-180
sound/soc/tegra/tegra_alc5632.c
sound/soc/tegra/tegra_alc5632.c
+2
-3
sound/soc/tegra/tegra_max98090.c
sound/soc/tegra/tegra_max98090.c
+2
-3
sound/soc/tegra/tegra_rt5640.c
sound/soc/tegra/tegra_rt5640.c
+2
-3
sound/soc/tegra/tegra_wm8753.c
sound/soc/tegra/tegra_wm8753.c
+1
-2
sound/soc/tegra/tegra_wm8903.c
sound/soc/tegra/tegra_wm8903.c
+2
-3
sound/soc/tegra/trimslice.c
sound/soc/tegra/trimslice.c
+1
-2
No files found.
include/sound/soc-dai.h
View file @
a1cb98ac
...
...
@@ -257,7 +257,6 @@ struct snd_soc_dai {
struct
snd_soc_dapm_widget
*
playback_widget
;
struct
snd_soc_dapm_widget
*
capture_widget
;
struct
snd_soc_dapm_context
dapm
;
/* DAI DMA data */
void
*
playback_dma_data
;
...
...
@@ -273,6 +272,10 @@ struct snd_soc_dai {
struct
snd_soc_codec
*
codec
;
struct
snd_soc_component
*
component
;
/* CODEC TDM slot masks and params (for fixup) */
unsigned
int
tx_mask
;
unsigned
int
rx_mask
;
struct
snd_soc_card
*
card
;
struct
list_head
list
;
...
...
include/sound/soc-dapm.h
View file @
a1cb98ac
...
...
@@ -431,7 +431,7 @@ int snd_soc_dapm_force_enable_pin_unlocked(struct snd_soc_dapm_context *dapm,
const
char
*
pin
);
int
snd_soc_dapm_ignore_suspend
(
struct
snd_soc_dapm_context
*
dapm
,
const
char
*
pin
);
void
snd_soc_dapm_auto_nc_
codec_pins
(
struct
snd_soc_codec
*
codec
);
void
snd_soc_dapm_auto_nc_
pins
(
struct
snd_soc_card
*
card
);
/* Mostly internal - should not normally be used */
void
dapm_mark_io_dirty
(
struct
snd_soc_dapm_context
*
dapm
);
...
...
@@ -441,6 +441,8 @@ int snd_soc_dapm_dai_get_connected_widgets(struct snd_soc_dai *dai, int stream,
struct
snd_soc_dapm_widget_list
**
list
);
struct
snd_soc_codec
*
snd_soc_dapm_kcontrol_codec
(
struct
snd_kcontrol
*
kcontrol
);
struct
snd_soc_dapm_context
*
snd_soc_dapm_kcontrol_dapm
(
struct
snd_kcontrol
*
kcontrol
);
/* dapm widget types */
enum
snd_soc_dapm_type
{
...
...
@@ -524,7 +526,6 @@ struct snd_soc_dapm_widget {
const
char
*
name
;
/* widget name */
const
char
*
sname
;
/* stream name */
struct
snd_soc_codec
*
codec
;
struct
snd_soc_platform
*
platform
;
struct
list_head
list
;
struct
snd_soc_dapm_context
*
dapm
;
...
...
@@ -593,7 +594,6 @@ struct snd_soc_dapm_context {
struct
device
*
dev
;
/* from parent - for debug */
struct
snd_soc_component
*
component
;
/* parent component */
struct
snd_soc_codec
*
codec
;
/* parent codec */
struct
snd_soc_platform
*
platform
;
/* parent platform */
struct
snd_soc_card
*
card
;
/* parent card */
/* used during DAPM updates */
...
...
@@ -601,6 +601,8 @@ struct snd_soc_dapm_context {
struct
list_head
list
;
int
(
*
stream_event
)(
struct
snd_soc_dapm_context
*
dapm
,
int
event
);
int
(
*
set_bias_level
)(
struct
snd_soc_dapm_context
*
dapm
,
enum
snd_soc_bias_level
level
);
#ifdef CONFIG_DEBUG_FS
struct
dentry
*
debugfs_dapm
;
...
...
include/sound/soc.h
View file @
a1cb98ac
...
...
@@ -436,6 +436,10 @@ int snd_soc_set_runtime_hwparams(struct snd_pcm_substream *substream,
int
snd_soc_platform_trigger
(
struct
snd_pcm_substream
*
substream
,
int
cmd
,
struct
snd_soc_platform
*
platform
);
int
soc_dai_hw_params
(
struct
snd_pcm_substream
*
substream
,
struct
snd_pcm_hw_params
*
params
,
struct
snd_soc_dai
*
dai
);
/* Jack reporting */
int
snd_soc_jack_new
(
struct
snd_soc_codec
*
codec
,
const
char
*
id
,
int
type
,
struct
snd_soc_jack
*
jack
);
...
...
@@ -503,10 +507,12 @@ struct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template,
const
char
*
prefix
);
struct
snd_kcontrol
*
snd_soc_card_get_kcontrol
(
struct
snd_soc_card
*
soc_card
,
const
char
*
name
);
int
snd_soc_add_component_controls
(
struct
snd_soc_component
*
component
,
const
struct
snd_kcontrol_new
*
controls
,
unsigned
int
num_controls
);
int
snd_soc_add_codec_controls
(
struct
snd_soc_codec
*
codec
,
const
struct
snd_kcontrol_new
*
controls
,
int
num_controls
);
const
struct
snd_kcontrol_new
*
controls
,
unsigned
int
num_controls
);
int
snd_soc_add_platform_controls
(
struct
snd_soc_platform
*
platform
,
const
struct
snd_kcontrol_new
*
controls
,
int
num_controls
);
const
struct
snd_kcontrol_new
*
controls
,
unsigned
int
num_controls
);
int
snd_soc_add_card_controls
(
struct
snd_soc_card
*
soc_card
,
const
struct
snd_kcontrol_new
*
controls
,
int
num_controls
);
int
snd_soc_add_dai_controls
(
struct
snd_soc_dai
*
dai
,
...
...
@@ -677,12 +683,17 @@ struct snd_soc_component_driver {
int
(
*
of_xlate_dai_name
)(
struct
snd_soc_component
*
component
,
struct
of_phandle_args
*
args
,
const
char
**
dai_name
);
void
(
*
seq_notifier
)(
struct
snd_soc_component
*
,
enum
snd_soc_dapm_type
,
int
subseq
);
int
(
*
stream_event
)(
struct
snd_soc_component
*
,
int
event
);
};
struct
snd_soc_component
{
const
char
*
name
;
int
id
;
const
char
*
name_prefix
;
struct
device
*
dev
;
struct
snd_soc_card
*
card
;
unsigned
int
active
;
...
...
@@ -705,18 +716,18 @@ struct snd_soc_component {
int
val_bytes
;
struct
mutex
io_mutex
;
/* Don't use these, use snd_soc_component_get_dapm() */
struct
snd_soc_dapm_context
dapm
;
struct
snd_soc_dapm_context
*
dapm_ptr
;
};
/* SoC Audio Codec device */
struct
snd_soc_codec
{
const
char
*
name
;
const
char
*
name_prefix
;
int
id
;
struct
device
*
dev
;
const
struct
snd_soc_codec_driver
*
driver
;
struct
mutex
mutex
;
struct
snd_soc_card
*
card
;
struct
list_head
list
;
struct
list_head
card_list
;
...
...
@@ -790,9 +801,6 @@ struct snd_soc_codec_driver {
void
(
*
seq_notifier
)(
struct
snd_soc_dapm_context
*
,
enum
snd_soc_dapm_type
,
int
);
/* codec stream completion event */
int
(
*
stream_event
)(
struct
snd_soc_dapm_context
*
dapm
,
int
event
);
bool
ignore_pmdown_time
;
/* Doesn't benefit from pmdown delay */
/* probe ordering - for components with runtime dependencies */
...
...
@@ -834,9 +842,6 @@ struct snd_soc_platform_driver {
/* platform stream compress ops */
const
struct
snd_compr_ops
*
compr_ops
;
/* platform stream completion event */
int
(
*
stream_event
)(
struct
snd_soc_dapm_context
*
dapm
,
int
event
);
/* probe ordering - for components with runtime dependencies */
int
probe_order
;
int
remove_order
;
...
...
@@ -847,23 +852,23 @@ struct snd_soc_platform_driver {
int
(
*
bespoke_trigger
)(
struct
snd_pcm_substream
*
,
int
);
};
struct
snd_soc_
platform
{
struct
snd_soc_
dai_link_component
{
const
char
*
name
;
int
id
;
const
struct
device_node
*
of_node
;
const
char
*
dai_name
;
};
struct
snd_soc_platform
{
struct
device
*
dev
;
const
struct
snd_soc_platform_driver
*
driver
;
unsigned
int
suspended
:
1
;
/* platform is suspended */
unsigned
int
probed
:
1
;
struct
snd_soc_card
*
card
;
struct
list_head
list
;
struct
list_head
card_list
;
struct
snd_soc_component
component
;
struct
snd_soc_dapm_context
dapm
;
#ifdef CONFIG_DEBUG_FS
struct
dentry
*
debugfs_platform_root
;
#endif
...
...
@@ -896,6 +901,10 @@ struct snd_soc_dai_link {
const
struct
device_node
*
codec_of_node
;
/* You MUST specify the DAI name within the codec */
const
char
*
codec_dai_name
;
struct
snd_soc_dai_link_component
*
codecs
;
unsigned
int
num_codecs
;
/*
* You MAY specify the link's platform/PCM/DMA driver, either by
* device name, or by DT/OF node, but not both. Some forms of link
...
...
@@ -1047,7 +1056,6 @@ struct snd_soc_card {
/* lists of probed devices belonging to this card */
struct
list_head
codec_dev_list
;
struct
list_head
platform_dev_list
;
struct
list_head
widgets
;
struct
list_head
paths
;
...
...
@@ -1094,6 +1102,9 @@ struct snd_soc_pcm_runtime {
struct
snd_soc_dai
*
codec_dai
;
struct
snd_soc_dai
*
cpu_dai
;
struct
snd_soc_dai
**
codec_dais
;
unsigned
int
num_codecs
;
struct
delayed_work
delayed_work
;
#ifdef CONFIG_DEBUG_FS
struct
dentry
*
debugfs_dpcm_root
;
...
...
@@ -1164,6 +1175,21 @@ static inline struct snd_soc_platform *snd_soc_component_to_platform(
return
container_of
(
component
,
struct
snd_soc_platform
,
component
);
}
/**
* snd_soc_dapm_to_component() - Casts a DAPM context to the component it is
* embedded in
* @dapm: The DAPM context to cast to the component
*
* This function must only be used on DAPM contexts that are known to be part of
* a component (e.g. in a component driver). Otherwise the behavior is
* undefined.
*/
static
inline
struct
snd_soc_component
*
snd_soc_dapm_to_component
(
struct
snd_soc_dapm_context
*
dapm
)
{
return
container_of
(
dapm
,
struct
snd_soc_component
,
dapm
);
}
/**
* snd_soc_dapm_to_codec() - Casts a DAPM context to the CODEC it is embedded in
* @dapm: The DAPM context to cast to the CODEC
...
...
@@ -1188,7 +1214,18 @@ static inline struct snd_soc_codec *snd_soc_dapm_to_codec(
static
inline
struct
snd_soc_platform
*
snd_soc_dapm_to_platform
(
struct
snd_soc_dapm_context
*
dapm
)
{
return
container_of
(
dapm
,
struct
snd_soc_platform
,
dapm
);
return
snd_soc_component_to_platform
(
snd_soc_dapm_to_component
(
dapm
));
}
/**
* snd_soc_component_get_dapm() - Returns the DAPM context associated with a
* component
* @component: The component for which to get the DAPM context
*/
static
inline
struct
snd_soc_dapm_context
*
snd_soc_component_get_dapm
(
struct
snd_soc_component
*
component
)
{
return
component
->
dapm_ptr
;
}
/* codec IO */
...
...
@@ -1261,7 +1298,6 @@ static inline void *snd_soc_pcm_get_drvdata(struct snd_soc_pcm_runtime *rtd)
static
inline
void
snd_soc_initialize_card_lists
(
struct
snd_soc_card
*
card
)
{
INIT_LIST_HEAD
(
&
card
->
codec_dev_list
);
INIT_LIST_HEAD
(
&
card
->
platform_dev_list
);
INIT_LIST_HEAD
(
&
card
->
widgets
);
INIT_LIST_HEAD
(
&
card
->
paths
);
INIT_LIST_HEAD
(
&
card
->
dapm_list
);
...
...
include/trace/events/asoc.h
View file @
a1cb98ac
...
...
@@ -296,17 +296,17 @@ TRACE_EVENT(snd_soc_cache_sync,
TP_ARGS
(
codec
,
type
,
status
),
TP_STRUCT__entry
(
__string
(
name
,
codec
->
name
)
__string
(
name
,
codec
->
component
.
name
)
__string
(
status
,
status
)
__string
(
type
,
type
)
__field
(
int
,
id
)
),
TP_fast_assign
(
__assign_str
(
name
,
codec
->
name
);
__assign_str
(
name
,
codec
->
component
.
name
);
__assign_str
(
status
,
status
);
__assign_str
(
type
,
type
);
__entry
->
id
=
codec
->
id
;
__entry
->
id
=
codec
->
component
.
id
;
),
TP_printk
(
"codec=%s.%d type=%s status=%s"
,
__get_str
(
name
),
...
...
sound/soc/codecs/ac97.c
View file @
a1cb98ac
...
...
@@ -89,8 +89,8 @@ static int ac97_soc_probe(struct snd_soc_codec *codec)
int
ret
;
/* add codec as bus device for standard ac97 */
ret
=
snd_ac97_bus
(
codec
->
c
ard
->
snd_card
,
0
,
soc_ac97_ops
,
NULL
,
&
ac97_bus
);
ret
=
snd_ac97_bus
(
codec
->
c
omponent
.
card
->
snd_card
,
0
,
soc_ac97_ops
,
NULL
,
&
ac97_bus
);
if
(
ret
<
0
)
return
ret
;
...
...
sound/soc/codecs/cx20442.c
View file @
a1cb98ac
...
...
@@ -253,7 +253,7 @@ static void v253_close(struct tty_struct *tty)
/* Prevent the codec driver from further accessing the modem */
codec
->
hw_write
=
NULL
;
cx20442
->
control_data
=
NULL
;
codec
->
card
->
pop_time
=
0
;
codec
->
c
omponent
.
c
ard
->
pop_time
=
0
;
}
/* Line discipline .hangup() */
...
...
@@ -281,7 +281,7 @@ static void v253_receive(struct tty_struct *tty,
/* Set up codec driver access to modem controls */
cx20442
->
control_data
=
tty
;
codec
->
hw_write
=
(
hw_write_t
)
tty
->
ops
->
write
;
codec
->
card
->
pop_time
=
1
;
codec
->
c
omponent
.
c
ard
->
pop_time
=
1
;
}
}
...
...
@@ -372,7 +372,7 @@ static int cx20442_codec_probe(struct snd_soc_codec *codec)
snd_soc_codec_set_drvdata
(
codec
,
cx20442
);
codec
->
hw_write
=
NULL
;
codec
->
card
->
pop_time
=
0
;
codec
->
c
omponent
.
c
ard
->
pop_time
=
0
;
return
0
;
}
...
...
sound/soc/codecs/tlv320dac33.c
View file @
a1cb98ac
...
...
@@ -1404,7 +1404,7 @@ static int dac33_soc_probe(struct snd_soc_codec *codec)
if
(
dac33
->
irq
>=
0
)
{
ret
=
request_irq
(
dac33
->
irq
,
dac33_interrupt_handler
,
IRQF_TRIGGER_RISING
,
codec
->
name
,
codec
);
codec
->
component
.
name
,
codec
);
if
(
ret
<
0
)
{
dev_err
(
codec
->
dev
,
"Could not request IRQ%d (%d)
\n
"
,
dac33
->
irq
,
ret
);
...
...
sound/soc/codecs/uda134x.c
View file @
a1cb98ac
...
...
@@ -479,7 +479,7 @@ static struct snd_soc_dai_driver uda134x_dai = {
static
int
uda134x_soc_probe
(
struct
snd_soc_codec
*
codec
)
{
struct
uda134x_priv
*
uda134x
;
struct
uda134x_platform_data
*
pd
=
codec
->
card
->
dev
->
platform_data
;
struct
uda134x_platform_data
*
pd
=
codec
->
c
omponent
.
c
ard
->
dev
->
platform_data
;
const
struct
snd_soc_dapm_widget
*
widgets
;
unsigned
num_widgets
;
...
...
sound/soc/codecs/wm8960.c
View file @
a1cb98ac
...
...
@@ -472,7 +472,7 @@ static int wm8960_add_widgets(struct snd_soc_codec *codec)
* list each time to find the desired power state do so now
* and save the result.
*/
list_for_each_entry
(
w
,
&
codec
->
card
->
widgets
,
list
)
{
list_for_each_entry
(
w
,
&
codec
->
c
omponent
.
c
ard
->
widgets
,
list
)
{
if
(
w
->
dapm
!=
&
codec
->
dapm
)
continue
;
if
(
strcmp
(
w
->
name
,
"LOUT1 PGA"
)
==
0
)
...
...
sound/soc/codecs/wm_adsp.c
View file @
a1cb98ac
...
...
@@ -1382,7 +1382,7 @@ int wm_adsp1_event(struct snd_soc_dapm_widget *w,
int
ret
;
int
val
;
dsp
->
card
=
codec
->
card
;
dsp
->
card
=
codec
->
c
omponent
.
c
ard
;
switch
(
event
)
{
case
SND_SOC_DAPM_POST_PMU
:
...
...
@@ -1617,7 +1617,7 @@ int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
struct
wm_adsp
*
dsps
=
snd_soc_codec_get_drvdata
(
codec
);
struct
wm_adsp
*
dsp
=
&
dsps
[
w
->
shift
];
dsp
->
card
=
codec
->
card
;
dsp
->
card
=
codec
->
c
omponent
.
c
ard
;
switch
(
event
)
{
case
SND_SOC_DAPM_PRE_PMU
:
...
...
sound/soc/omap/ams-delta.c
View file @
a1cb98ac
...
...
@@ -301,7 +301,7 @@ static int cx81801_open(struct tty_struct *tty)
static
void
cx81801_close
(
struct
tty_struct
*
tty
)
{
struct
snd_soc_codec
*
codec
=
tty
->
disc_data
;
struct
snd_soc_dapm_context
*
dapm
=
&
codec
->
card
->
dapm
;
struct
snd_soc_dapm_context
*
dapm
=
&
codec
->
c
omponent
.
c
ard
->
dapm
;
del_timer_sync
(
&
cx81801_timer
);
...
...
sound/soc/soc-cache.c
View file @
a1cb98ac
...
...
@@ -78,7 +78,7 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
mutex_init
(
&
codec
->
cache_rw_mutex
);
dev_dbg
(
codec
->
dev
,
"ASoC: Initializing cache for %s codec
\n
"
,
codec
->
name
);
codec
->
component
.
name
);
if
(
codec_drv
->
reg_cache_default
)
codec
->
reg_cache
=
kmemdup
(
codec_drv
->
reg_cache_default
,
...
...
@@ -98,8 +98,7 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
int
snd_soc_cache_exit
(
struct
snd_soc_codec
*
codec
)
{
dev_dbg
(
codec
->
dev
,
"ASoC: Destroying cache for %s codec
\n
"
,
codec
->
name
);
codec
->
component
.
name
);
kfree
(
codec
->
reg_cache
);
codec
->
reg_cache
=
NULL
;
return
0
;
...
...
@@ -192,7 +191,7 @@ int snd_soc_cache_sync(struct snd_soc_codec *codec)
return
0
;
dev_dbg
(
codec
->
dev
,
"ASoC: Syncing cache for %s codec
\n
"
,
codec
->
name
);
codec
->
component
.
name
);
trace_snd_soc_cache_sync
(
codec
,
name
,
"start"
);
ret
=
snd_soc_flat_cache_sync
(
codec
);
if
(
!
ret
)
...
...
sound/soc/soc-compress.c
View file @
a1cb98ac
...
...
@@ -37,7 +37,8 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
if
(
platform
->
driver
->
compr_ops
&&
platform
->
driver
->
compr_ops
->
open
)
{
ret
=
platform
->
driver
->
compr_ops
->
open
(
cstream
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
platform
->
name
);
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
platform
->
component
.
name
);
goto
out
;
}
}
...
...
@@ -84,7 +85,8 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
if
(
platform
->
driver
->
compr_ops
&&
platform
->
driver
->
compr_ops
->
open
)
{
ret
=
platform
->
driver
->
compr_ops
->
open
(
cstream
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
platform
->
name
);
pr_err
(
"compress asoc: can't open platform %s
\n
"
,
platform
->
component
.
name
);
goto
out
;
}
}
...
...
@@ -627,6 +629,11 @@ int soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
char
new_name
[
64
];
int
ret
=
0
,
direction
=
0
;
if
(
rtd
->
num_codecs
>
1
)
{
dev_err
(
rtd
->
card
->
dev
,
"Multicodec not supported for compressed stream
\n
"
);
return
-
EINVAL
;
}
/* check client and interface hw capabilities */
snprintf
(
new_name
,
sizeof
(
new_name
),
"%s %s-%d"
,
rtd
->
dai_link
->
stream_name
,
codec_dai
->
name
,
num
);
...
...
@@ -680,7 +687,7 @@ int soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
ret
=
snd_compress_new
(
rtd
->
card
->
snd_card
,
num
,
direction
,
compr
);
if
(
ret
<
0
)
{
pr_err
(
"compress asoc: can't create compress for codec %s
\n
"
,
codec
->
name
);
codec
->
component
.
name
);
goto
compr_err
;
}
...
...
sound/soc/soc-core.c
View file @
a1cb98ac
This diff is collapsed.
Click to expand it.
sound/soc/soc-dapm.c
View file @
a1cb98ac
This diff is collapsed.
Click to expand it.
sound/soc/soc-jack.c
View file @
a1cb98ac
...
...
@@ -43,7 +43,7 @@ int snd_soc_jack_new(struct snd_soc_codec *codec, const char *id, int type,
INIT_LIST_HEAD
(
&
jack
->
jack_zones
);
BLOCKING_INIT_NOTIFIER_HEAD
(
&
jack
->
notifier
);
return
snd_jack_new
(
codec
->
card
->
snd_card
,
id
,
type
,
&
jack
->
jack
);
return
snd_jack_new
(
codec
->
c
omponent
.
c
ard
->
snd_card
,
id
,
type
,
&
jack
->
jack
);
}
EXPORT_SYMBOL_GPL
(
snd_soc_jack_new
);
...
...
@@ -260,7 +260,7 @@ static void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio)
static
irqreturn_t
gpio_handler
(
int
irq
,
void
*
data
)
{
struct
snd_soc_jack_gpio
*
gpio
=
data
;
struct
device
*
dev
=
gpio
->
jack
->
codec
->
card
->
dev
;
struct
device
*
dev
=
gpio
->
jack
->
codec
->
c
omponent
.
c
ard
->
dev
;
trace_snd_soc_jack_irq
(
gpio
->
name
);
...
...
sound/soc/soc-pcm.c
View file @
a1cb98ac
This diff is collapsed.
Click to expand it.
sound/soc/tegra/tegra_alc5632.c
View file @
a1cb98ac
...
...
@@ -41,8 +41,7 @@ static int tegra_alc5632_asoc_hw_params(struct snd_pcm_substream *substream,
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_alc5632
*
alc5632
=
snd_soc_card_get_drvdata
(
card
);
int
srate
,
mclk
;
int
err
;
...
...
@@ -105,7 +104,7 @@ static int tegra_alc5632_asoc_init(struct snd_soc_pcm_runtime *rtd)
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_dapm_context
*
dapm
=
&
codec
->
dapm
;
struct
tegra_alc5632
*
machine
=
snd_soc_card_get_drvdata
(
codec
->
card
);
struct
tegra_alc5632
*
machine
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
snd_soc_jack_new
(
codec
,
"Headset Jack"
,
SND_JACK_HEADSET
,
&
tegra_alc5632_hs_jack
);
...
...
sound/soc/tegra/tegra_max98090.c
View file @
a1cb98ac
...
...
@@ -49,8 +49,7 @@ static int tegra_max98090_asoc_hw_params(struct snd_pcm_substream *substream,
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_max98090
*
machine
=
snd_soc_card_get_drvdata
(
card
);
int
srate
,
mclk
;
int
err
;
...
...
@@ -127,7 +126,7 @@ static int tegra_max98090_asoc_init(struct snd_soc_pcm_runtime *rtd)
{
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
tegra_max98090
*
machine
=
snd_soc_card_get_drvdata
(
codec
->
card
);
struct
tegra_max98090
*
machine
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
if
(
gpio_is_valid
(
machine
->
gpio_hp_det
))
{
snd_soc_jack_new
(
codec
,
"Headphones"
,
SND_JACK_HEADPHONE
,
...
...
sound/soc/tegra/tegra_rt5640.c
View file @
a1cb98ac
...
...
@@ -51,8 +51,7 @@ static int tegra_rt5640_asoc_hw_params(struct snd_pcm_substream *substream,
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_rt5640
*
machine
=
snd_soc_card_get_drvdata
(
card
);
int
srate
,
mclk
;
int
err
;
...
...
@@ -110,7 +109,7 @@ static int tegra_rt5640_asoc_init(struct snd_soc_pcm_runtime *rtd)
{
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
tegra_rt5640
*
machine
=
snd_soc_card_get_drvdata
(
codec
->
card
);
struct
tegra_rt5640
*
machine
=
snd_soc_card_get_drvdata
(
rtd
->
card
);
snd_soc_jack_new
(
codec
,
"Headphones"
,
SND_JACK_HEADPHONE
,
&
tegra_rt5640_hp_jack
);
...
...
sound/soc/tegra/tegra_wm8753.c
View file @
a1cb98ac
...
...
@@ -55,8 +55,7 @@ static int tegra_wm8753_hw_params(struct snd_pcm_substream *substream,
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_wm8753
*
machine
=
snd_soc_card_get_drvdata
(
card
);
int
srate
,
mclk
;
int
err
;
...
...
sound/soc/tegra/tegra_wm8903.c
View file @
a1cb98ac
...
...
@@ -60,8 +60,7 @@ static int tegra_wm8903_hw_params(struct snd_pcm_substream *substream,
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_wm8903
*
machine
=
snd_soc_card_get_drvdata
(
card
);
int
srate
,
mclk
;
int
err
;
...
...
@@ -173,7 +172,7 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_dapm_context
*
dapm
=
&
codec
->
dapm
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_wm8903
*
machine
=
snd_soc_card_get_drvdata
(
card
);
if
(
gpio_is_valid
(
machine
->
gpio_hp_det
))
{
...
...
sound/soc/tegra/trimslice.c
View file @
a1cb98ac
...
...
@@ -50,8 +50,7 @@ static int trimslice_asoc_hw_params(struct snd_pcm_substream *substream,
{
struct
snd_soc_pcm_runtime
*
rtd
=
substream
->
private_data
;
struct
snd_soc_dai
*
codec_dai
=
rtd
->
codec_dai
;
struct
snd_soc_codec
*
codec
=
codec_dai
->
codec
;
struct
snd_soc_card
*
card
=
codec
->
card
;
struct
snd_soc_card
*
card
=
rtd
->
card
;
struct
tegra_trimslice
*
trimslice
=
snd_soc_card_get_drvdata
(
card
);
int
srate
,
mclk
;
int
err
;
...
...
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