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
b47f8a5d
Commit
b47f8a5d
authored
Feb 04, 2015
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next
parents
d01aa9b7
fcf6c5ea
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
95 deletions
+18
-95
include/sound/soc-dapm.h
include/sound/soc-dapm.h
+0
-1
sound/soc/soc-core.c
sound/soc/soc-core.c
+0
-3
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+18
-91
No files found.
include/sound/soc-dapm.h
View file @
b47f8a5d
...
@@ -431,7 +431,6 @@ int snd_soc_dapm_force_enable_pin_unlocked(struct snd_soc_dapm_context *dapm,
...
@@ -431,7 +431,6 @@ int snd_soc_dapm_force_enable_pin_unlocked(struct snd_soc_dapm_context *dapm,
const
char
*
pin
);
const
char
*
pin
);
int
snd_soc_dapm_ignore_suspend
(
struct
snd_soc_dapm_context
*
dapm
,
int
snd_soc_dapm_ignore_suspend
(
struct
snd_soc_dapm_context
*
dapm
,
const
char
*
pin
);
const
char
*
pin
);
void
snd_soc_dapm_auto_nc_pins
(
struct
snd_soc_card
*
card
);
unsigned
int
dapm_kcontrol_get_value
(
const
struct
snd_kcontrol
*
kcontrol
);
unsigned
int
dapm_kcontrol_get_value
(
const
struct
snd_kcontrol
*
kcontrol
);
/* Mostly internal - should not normally be used */
/* Mostly internal - should not normally be used */
...
...
sound/soc/soc-core.c
View file @
b47f8a5d
...
@@ -1636,9 +1636,6 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
...
@@ -1636,9 +1636,6 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
}
}
}
}
if
(
card
->
fully_routed
)
snd_soc_dapm_auto_nc_pins
(
card
);
snd_soc_dapm_new_widgets
(
card
);
snd_soc_dapm_new_widgets
(
card
);
ret
=
snd_card_register
(
card
->
snd_card
);
ret
=
snd_card_register
(
card
->
snd_card
);
...
...
sound/soc/soc-dapm.c
View file @
b47f8a5d
...
@@ -517,8 +517,8 @@ static int soc_dapm_update_bits(struct snd_soc_dapm_context *dapm,
...
@@ -517,8 +517,8 @@ static int soc_dapm_update_bits(struct snd_soc_dapm_context *dapm,
{
{
if
(
!
dapm
->
component
)
if
(
!
dapm
->
component
)
return
-
EIO
;
return
-
EIO
;
return
snd_soc_component_update_bits
_async
(
dapm
->
component
,
reg
,
return
snd_soc_component_update_bits
(
dapm
->
component
,
reg
,
mask
,
value
);
mask
,
value
);
}
}
static
int
soc_dapm_test_bits
(
struct
snd_soc_dapm_context
*
dapm
,
static
int
soc_dapm_test_bits
(
struct
snd_soc_dapm_context
*
dapm
,
...
@@ -2274,6 +2274,9 @@ static void dapm_update_widget_flags(struct snd_soc_dapm_widget *w)
...
@@ -2274,6 +2274,9 @@ static void dapm_update_widget_flags(struct snd_soc_dapm_widget *w)
switch
(
w
->
id
)
{
switch
(
w
->
id
)
{
case
snd_soc_dapm_input
:
case
snd_soc_dapm_input
:
/* On a fully routed card a input is never a source */
if
(
w
->
dapm
->
card
->
fully_routed
)
break
;
w
->
is_source
=
1
;
w
->
is_source
=
1
;
list_for_each_entry
(
p
,
&
w
->
sources
,
list_sink
)
{
list_for_each_entry
(
p
,
&
w
->
sources
,
list_sink
)
{
if
(
p
->
source
->
id
==
snd_soc_dapm_micbias
||
if
(
p
->
source
->
id
==
snd_soc_dapm_micbias
||
...
@@ -2286,6 +2289,9 @@ static void dapm_update_widget_flags(struct snd_soc_dapm_widget *w)
...
@@ -2286,6 +2289,9 @@ static void dapm_update_widget_flags(struct snd_soc_dapm_widget *w)
}
}
break
;
break
;
case
snd_soc_dapm_output
:
case
snd_soc_dapm_output
:
/* On a fully routed card a output is never a sink */
if
(
w
->
dapm
->
card
->
fully_routed
)
break
;
w
->
is_sink
=
1
;
w
->
is_sink
=
1
;
list_for_each_entry
(
p
,
&
w
->
sinks
,
list_source
)
{
list_for_each_entry
(
p
,
&
w
->
sinks
,
list_source
)
{
if
(
p
->
sink
->
id
==
snd_soc_dapm_spk
||
if
(
p
->
sink
->
id
==
snd_soc_dapm_spk
||
...
@@ -3080,16 +3086,24 @@ snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm,
...
@@ -3080,16 +3086,24 @@ snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm,
switch
(
w
->
id
)
{
switch
(
w
->
id
)
{
case
snd_soc_dapm_mic
:
case
snd_soc_dapm_mic
:
case
snd_soc_dapm_input
:
w
->
is_source
=
1
;
w
->
is_source
=
1
;
w
->
power_check
=
dapm_generic_check_power
;
w
->
power_check
=
dapm_generic_check_power
;
break
;
break
;
case
snd_soc_dapm_input
:
if
(
!
dapm
->
card
->
fully_routed
)
w
->
is_source
=
1
;
w
->
power_check
=
dapm_generic_check_power
;
break
;
case
snd_soc_dapm_spk
:
case
snd_soc_dapm_spk
:
case
snd_soc_dapm_hp
:
case
snd_soc_dapm_hp
:
case
snd_soc_dapm_output
:
w
->
is_sink
=
1
;
w
->
is_sink
=
1
;
w
->
power_check
=
dapm_generic_check_power
;
w
->
power_check
=
dapm_generic_check_power
;
break
;
break
;
case
snd_soc_dapm_output
:
if
(
!
dapm
->
card
->
fully_routed
)
w
->
is_sink
=
1
;
w
->
power_check
=
dapm_generic_check_power
;
break
;
case
snd_soc_dapm_vmid
:
case
snd_soc_dapm_vmid
:
case
snd_soc_dapm_siggen
:
case
snd_soc_dapm_siggen
:
w
->
is_source
=
1
;
w
->
is_source
=
1
;
...
@@ -3803,93 +3817,6 @@ int snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm,
...
@@ -3803,93 +3817,6 @@ int snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm,
}
}
EXPORT_SYMBOL_GPL
(
snd_soc_dapm_ignore_suspend
);
EXPORT_SYMBOL_GPL
(
snd_soc_dapm_ignore_suspend
);
/**
* dapm_is_external_path() - Checks if a path is a external path
* @card: The card the path belongs to
* @path: The path to check
*
* Returns true if the path is either between two different DAPM contexts or
* between two external pins of the same DAPM context. Otherwise returns
* false.
*/
static
bool
dapm_is_external_path
(
struct
snd_soc_card
*
card
,
struct
snd_soc_dapm_path
*
path
)
{
dev_dbg
(
card
->
dev
,
"... Path %s(id:%d dapm:%p) - %s(id:%d dapm:%p)
\n
"
,
path
->
source
->
name
,
path
->
source
->
id
,
path
->
source
->
dapm
,
path
->
sink
->
name
,
path
->
sink
->
id
,
path
->
sink
->
dapm
);
/* Connection between two different DAPM contexts */
if
(
path
->
source
->
dapm
!=
path
->
sink
->
dapm
)
return
true
;
/* Loopback connection from external pin to external pin */
if
(
path
->
sink
->
id
==
snd_soc_dapm_input
)
{
switch
(
path
->
source
->
id
)
{
case
snd_soc_dapm_output
:
case
snd_soc_dapm_micbias
:
return
true
;
default:
break
;
}
}
return
false
;
}
static
bool
snd_soc_dapm_widget_in_card_paths
(
struct
snd_soc_card
*
card
,
struct
snd_soc_dapm_widget
*
w
)
{
struct
snd_soc_dapm_path
*
p
;
list_for_each_entry
(
p
,
&
w
->
sources
,
list_sink
)
{
if
(
dapm_is_external_path
(
card
,
p
))
return
true
;
}
list_for_each_entry
(
p
,
&
w
->
sinks
,
list_source
)
{
if
(
dapm_is_external_path
(
card
,
p
))
return
true
;
}
return
false
;
}
/**
* snd_soc_dapm_auto_nc_pins - call snd_soc_dapm_nc_pin for unused pins
* @card: The card whose pins should be processed
*
* Automatically call snd_soc_dapm_nc_pin() for any external pins in the card
* which are unused. Pins are used if they are connected externally to a
* component, whether that be to some other device, or a loop-back connection to
* the component itself.
*/
void
snd_soc_dapm_auto_nc_pins
(
struct
snd_soc_card
*
card
)
{
struct
snd_soc_dapm_widget
*
w
;
dev_dbg
(
card
->
dev
,
"ASoC: Auto NC: DAPMs: card:%p
\n
"
,
&
card
->
dapm
);
list_for_each_entry
(
w
,
&
card
->
widgets
,
list
)
{
switch
(
w
->
id
)
{
case
snd_soc_dapm_input
:
case
snd_soc_dapm_output
:
case
snd_soc_dapm_micbias
:
dev_dbg
(
card
->
dev
,
"ASoC: Auto NC: Checking widget %s
\n
"
,
w
->
name
);
if
(
!
snd_soc_dapm_widget_in_card_paths
(
card
,
w
))
{
dev_dbg
(
card
->
dev
,
"... Not in map; disabling
\n
"
);
snd_soc_dapm_nc_pin
(
w
->
dapm
,
w
->
name
);
}
break
;
default:
break
;
}
}
}
/**
/**
* snd_soc_dapm_free - free dapm resources
* snd_soc_dapm_free - free dapm resources
* @dapm: DAPM context
* @dapm: DAPM context
...
...
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