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
70c673a4
Commit
70c673a4
authored
Jan 10, 2011
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/hda' into topic/hda
parents
10528020
e03fa055
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
91 additions
and
57 deletions
+91
-57
sound/core/pcm_lib.c
sound/core/pcm_lib.c
+7
-3
sound/oss/soundcard.c
sound/oss/soundcard.c
+2
-2
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.c
+34
-23
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+1
-0
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+35
-22
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+2
-3
sound/soc/codecs/wm8580.c
sound/soc/codecs/wm8580.c
+1
-1
sound/soc/codecs/wm8904.c
sound/soc/codecs/wm8904.c
+2
-1
sound/soc/codecs/wm8955.c
sound/soc/codecs/wm8955.c
+2
-1
sound/soc/codecs/wm8960.c
sound/soc/codecs/wm8960.c
+2
-1
sound/soc/soc-dapm.c
sound/soc/soc-dapm.c
+3
-0
No files found.
sound/core/pcm_lib.c
View file @
70c673a4
...
@@ -1070,8 +1070,10 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
...
@@ -1070,8 +1070,10 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
struct
snd_pcm_hw_rule
*
new
;
struct
snd_pcm_hw_rule
*
new
;
unsigned
int
new_rules
=
constrs
->
rules_all
+
16
;
unsigned
int
new_rules
=
constrs
->
rules_all
+
16
;
new
=
kcalloc
(
new_rules
,
sizeof
(
*
c
),
GFP_KERNEL
);
new
=
kcalloc
(
new_rules
,
sizeof
(
*
c
),
GFP_KERNEL
);
if
(
!
new
)
if
(
!
new
)
{
va_end
(
args
);
return
-
ENOMEM
;
return
-
ENOMEM
;
}
if
(
constrs
->
rules
)
{
if
(
constrs
->
rules
)
{
memcpy
(
new
,
constrs
->
rules
,
memcpy
(
new
,
constrs
->
rules
,
constrs
->
rules_num
*
sizeof
(
*
c
));
constrs
->
rules_num
*
sizeof
(
*
c
));
...
@@ -1087,8 +1089,10 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
...
@@ -1087,8 +1089,10 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
c
->
private
=
private
;
c
->
private
=
private
;
k
=
0
;
k
=
0
;
while
(
1
)
{
while
(
1
)
{
if
(
snd_BUG_ON
(
k
>=
ARRAY_SIZE
(
c
->
deps
)))
if
(
snd_BUG_ON
(
k
>=
ARRAY_SIZE
(
c
->
deps
)))
{
va_end
(
args
);
return
-
EINVAL
;
return
-
EINVAL
;
}
c
->
deps
[
k
++
]
=
dep
;
c
->
deps
[
k
++
]
=
dep
;
if
(
dep
<
0
)
if
(
dep
<
0
)
break
;
break
;
...
...
sound/oss/soundcard.c
View file @
70c673a4
...
@@ -87,7 +87,7 @@ int *load_mixer_volumes(char *name, int *levels, int present)
...
@@ -87,7 +87,7 @@ int *load_mixer_volumes(char *name, int *levels, int present)
int
i
,
n
;
int
i
,
n
;
for
(
i
=
0
;
i
<
num_mixer_volumes
;
i
++
)
{
for
(
i
=
0
;
i
<
num_mixer_volumes
;
i
++
)
{
if
(
str
cmp
(
name
,
mixer_vols
[
i
].
name
)
==
0
)
{
if
(
str
ncmp
(
name
,
mixer_vols
[
i
].
name
,
32
)
==
0
)
{
if
(
present
)
if
(
present
)
mixer_vols
[
i
].
num
=
i
;
mixer_vols
[
i
].
num
=
i
;
return
mixer_vols
[
i
].
levels
;
return
mixer_vols
[
i
].
levels
;
...
@@ -99,7 +99,7 @@ int *load_mixer_volumes(char *name, int *levels, int present)
...
@@ -99,7 +99,7 @@ int *load_mixer_volumes(char *name, int *levels, int present)
}
}
n
=
num_mixer_volumes
++
;
n
=
num_mixer_volumes
++
;
str
cpy
(
mixer_vols
[
n
].
name
,
name
);
str
ncpy
(
mixer_vols
[
n
].
name
,
name
,
32
);
if
(
present
)
if
(
present
)
mixer_vols
[
n
].
num
=
n
;
mixer_vols
[
n
].
num
=
n
;
...
...
sound/pci/hda/hda_codec.c
View file @
70c673a4
...
@@ -1919,6 +1919,16 @@ struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec,
...
@@ -1919,6 +1919,16 @@ struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec,
}
}
EXPORT_SYMBOL_HDA
(
snd_hda_find_mixer_ctl
);
EXPORT_SYMBOL_HDA
(
snd_hda_find_mixer_ctl
);
static
int
find_empty_mixer_ctl_idx
(
struct
hda_codec
*
codec
,
const
char
*
name
)
{
int
idx
;
for
(
idx
=
0
;
idx
<
16
;
idx
++
)
{
/* 16 ctlrs should be large enough */
if
(
!
_snd_hda_find_mixer_ctl
(
codec
,
name
,
idx
))
return
idx
;
}
return
-
EBUSY
;
}
/**
/**
* snd_hda_ctl_add - Add a control element and assign to the codec
* snd_hda_ctl_add - Add a control element and assign to the codec
* @codec: HD-audio codec
* @codec: HD-audio codec
...
@@ -2654,8 +2664,6 @@ static struct snd_kcontrol_new dig_mixes[] = {
...
@@ -2654,8 +2664,6 @@ static struct snd_kcontrol_new dig_mixes[] = {
{
}
/* end */
{
}
/* end */
};
};
#define SPDIF_MAX_IDX 4
/* 4 instances should be enough to probe */
/**
/**
* snd_hda_create_spdif_out_ctls - create Output SPDIF-related controls
* snd_hda_create_spdif_out_ctls - create Output SPDIF-related controls
* @codec: the HDA codec
* @codec: the HDA codec
...
@@ -2673,12 +2681,8 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid)
...
@@ -2673,12 +2681,8 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid)
struct
snd_kcontrol_new
*
dig_mix
;
struct
snd_kcontrol_new
*
dig_mix
;
int
idx
;
int
idx
;
for
(
idx
=
0
;
idx
<
SPDIF_MAX_IDX
;
idx
++
)
{
idx
=
find_empty_mixer_ctl_idx
(
codec
,
"IEC958 Playback Switch"
);
if
(
!
_snd_hda_find_mixer_ctl
(
codec
,
"IEC958 Playback Switch"
,
if
(
idx
<
0
)
{
idx
))
break
;
}
if
(
idx
>=
SPDIF_MAX_IDX
)
{
printk
(
KERN_ERR
"hda_codec: too many IEC958 outputs
\n
"
);
printk
(
KERN_ERR
"hda_codec: too many IEC958 outputs
\n
"
);
return
-
EBUSY
;
return
-
EBUSY
;
}
}
...
@@ -2829,12 +2833,8 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid)
...
@@ -2829,12 +2833,8 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid)
struct
snd_kcontrol_new
*
dig_mix
;
struct
snd_kcontrol_new
*
dig_mix
;
int
idx
;
int
idx
;
for
(
idx
=
0
;
idx
<
SPDIF_MAX_IDX
;
idx
++
)
{
idx
=
find_empty_mixer_ctl_idx
(
codec
,
"IEC958 Capture Switch"
);
if
(
!
_snd_hda_find_mixer_ctl
(
codec
,
"IEC958 Capture Switch"
,
if
(
idx
<
0
)
{
idx
))
break
;
}
if
(
idx
>=
SPDIF_MAX_IDX
)
{
printk
(
KERN_ERR
"hda_codec: too many IEC958 inputs
\n
"
);
printk
(
KERN_ERR
"hda_codec: too many IEC958 inputs
\n
"
);
return
-
EBUSY
;
return
-
EBUSY
;
}
}
...
@@ -3808,21 +3808,32 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew)
...
@@ -3808,21 +3808,32 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew)
for
(;
knew
->
name
;
knew
++
)
{
for
(;
knew
->
name
;
knew
++
)
{
struct
snd_kcontrol
*
kctl
;
struct
snd_kcontrol
*
kctl
;
int
addr
=
0
,
idx
=
0
;
if
(
knew
->
iface
==
-
1
)
/* skip this codec private value */
if
(
knew
->
iface
==
-
1
)
/* skip this codec private value */
continue
;
continue
;
for
(;;)
{
kctl
=
snd_ctl_new1
(
knew
,
codec
);
kctl
=
snd_ctl_new1
(
knew
,
codec
);
if
(
!
kctl
)
if
(
!
kctl
)
return
-
ENOMEM
;
return
-
ENOMEM
;
if
(
addr
>
0
)
kctl
->
id
.
device
=
addr
;
if
(
idx
>
0
)
kctl
->
id
.
index
=
idx
;
err
=
snd_hda_ctl_add
(
codec
,
0
,
kctl
);
err
=
snd_hda_ctl_add
(
codec
,
0
,
kctl
);
if
(
err
<
0
)
{
if
(
!
err
)
if
(
!
codec
->
addr
)
break
;
/* try first with another device index corresponding to
* the codec addr; if it still fails (or it's the
* primary codec), then try another control index
*/
if
(
!
addr
&&
codec
->
addr
)
addr
=
codec
->
addr
;
else
if
(
!
idx
&&
!
knew
->
index
)
{
idx
=
find_empty_mixer_ctl_idx
(
codec
,
knew
->
name
);
if
(
idx
<=
0
)
return
err
;
return
err
;
kctl
=
snd_ctl_new1
(
knew
,
codec
);
}
else
if
(
!
kctl
)
return
-
ENOMEM
;
kctl
->
id
.
device
=
codec
->
addr
;
err
=
snd_hda_ctl_add
(
codec
,
0
,
kctl
);
if
(
err
<
0
)
return
err
;
return
err
;
}
}
}
}
...
...
sound/pci/hda/hda_intel.c
View file @
70c673a4
...
@@ -2300,6 +2300,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
...
@@ -2300,6 +2300,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
SND_PCI_QUIRK
(
0x1028
,
0x01cc
,
"Dell D820"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01cc
,
"Dell D820"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01de
,
"Dell Precision 390"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01de
,
"Dell Precision 390"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01f6
,
"Dell Latitude 131L"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x01f6
,
"Dell Latitude 131L"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1028
,
0x0470
,
"Dell Inspiron 1120"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x103c
,
0x306d
,
"HP dv3"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x103c
,
0x306d
,
"HP dv3"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1043
,
0x813d
,
"ASUS P5AD2"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1043
,
0x813d
,
"ASUS P5AD2"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1043
,
0x81b3
,
"ASUS"
,
POS_FIX_LPIB
),
SND_PCI_QUIRK
(
0x1043
,
0x81b3
,
"ASUS"
,
POS_FIX_LPIB
),
...
...
sound/pci/hda/patch_realtek.c
View file @
70c673a4
...
@@ -14795,6 +14795,7 @@ static int alc269_resume(struct hda_codec *codec)
...
@@ -14795,6 +14795,7 @@ static int alc269_resume(struct hda_codec *codec)
enum
{
enum
{
ALC269_FIXUP_SONY_VAIO
,
ALC269_FIXUP_SONY_VAIO
,
ALC275_FIX_SONY_VAIO_GPIO2
,
ALC269_FIXUP_DELL_M101Z
,
ALC269_FIXUP_DELL_M101Z
,
ALC269_FIXUP_SKU_IGNORE
,
ALC269_FIXUP_SKU_IGNORE
,
ALC269_FIXUP_ASUS_G73JW
,
ALC269_FIXUP_ASUS_G73JW
,
...
@@ -14807,6 +14808,14 @@ static const struct alc_fixup alc269_fixups[] = {
...
@@ -14807,6 +14808,14 @@ static const struct alc_fixup alc269_fixups[] = {
{}
{}
}
}
},
},
[
ALC275_FIX_SONY_VAIO_GPIO2
]
=
{
.
verbs
=
(
const
struct
hda_verb
[])
{
{
0x01
,
AC_VERB_SET_GPIO_MASK
,
0x04
},
{
0x01
,
AC_VERB_SET_GPIO_DIRECTION
,
0x04
},
{
0x01
,
AC_VERB_SET_GPIO_DATA
,
0x00
},
{
}
}
},
[
ALC269_FIXUP_DELL_M101Z
]
=
{
[
ALC269_FIXUP_DELL_M101Z
]
=
{
.
verbs
=
(
const
struct
hda_verb
[])
{
.
verbs
=
(
const
struct
hda_verb
[])
{
/* Enables internal speaker */
/* Enables internal speaker */
...
@@ -14827,6 +14836,9 @@ static const struct alc_fixup alc269_fixups[] = {
...
@@ -14827,6 +14836,9 @@ static const struct alc_fixup alc269_fixups[] = {
};
};
static
struct
snd_pci_quirk
alc269_fixup_tbl
[]
=
{
static
struct
snd_pci_quirk
alc269_fixup_tbl
[]
=
{
SND_PCI_QUIRK
(
0x104d
,
0x9073
,
"Sony VAIO"
,
ALC275_FIX_SONY_VAIO_GPIO2
),
SND_PCI_QUIRK
(
0x104d
,
0x907b
,
"Sony VAIO"
,
ALC275_FIX_SONY_VAIO_GPIO2
),
SND_PCI_QUIRK
(
0x104d
,
0x9084
,
"Sony VAIO"
,
ALC275_FIX_SONY_VAIO_GPIO2
),
SND_PCI_QUIRK_VENDOR
(
0x104d
,
"Sony VAIO"
,
ALC269_FIXUP_SONY_VAIO
),
SND_PCI_QUIRK_VENDOR
(
0x104d
,
"Sony VAIO"
,
ALC269_FIXUP_SONY_VAIO
),
SND_PCI_QUIRK
(
0x1028
,
0x0470
,
"Dell M101z"
,
ALC269_FIXUP_DELL_M101Z
),
SND_PCI_QUIRK
(
0x1028
,
0x0470
,
"Dell M101z"
,
ALC269_FIXUP_DELL_M101Z
),
SND_PCI_QUIRK
(
0x17aa
,
0x21b8
,
"Thinkpad Edge 14"
,
ALC269_FIXUP_SKU_IGNORE
),
SND_PCI_QUIRK
(
0x17aa
,
0x21b8
,
"Thinkpad Edge 14"
,
ALC269_FIXUP_SKU_IGNORE
),
...
@@ -15081,6 +15093,7 @@ static int patch_alc269(struct hda_codec *codec)
...
@@ -15081,6 +15093,7 @@ static int patch_alc269(struct hda_codec *codec)
alc_auto_parse_customize_define
(
codec
);
alc_auto_parse_customize_define
(
codec
);
if
(
codec
->
vendor_id
==
0x10ec0269
)
{
coef
=
alc_read_coef_idx
(
codec
,
0
);
coef
=
alc_read_coef_idx
(
codec
,
0
);
if
((
coef
&
0x00f0
)
==
0x0010
)
{
if
((
coef
&
0x00f0
)
==
0x0010
)
{
if
(
codec
->
bus
->
pci
->
subsystem_vendor
==
0x1025
&&
if
(
codec
->
bus
->
pci
->
subsystem_vendor
==
0x1025
&&
...
@@ -15101,8 +15114,8 @@ static int patch_alc269(struct hda_codec *codec)
...
@@ -15101,8 +15114,8 @@ static int patch_alc269(struct hda_codec *codec)
}
}
}
else
}
else
alc_fix_pll_init
(
codec
,
0x20
,
0x04
,
15
);
alc_fix_pll_init
(
codec
,
0x20
,
0x04
,
15
);
alc269_fill_coef
(
codec
);
alc269_fill_coef
(
codec
);
}
board_config
=
snd_hda_check_board_config
(
codec
,
ALC269_MODEL_LAST
,
board_config
=
snd_hda_check_board_config
(
codec
,
ALC269_MODEL_LAST
,
alc269_models
,
alc269_models
,
...
...
sound/pci/hda/patch_sigmatel.c
View file @
70c673a4
...
@@ -3481,6 +3481,8 @@ static int stac92xx_auto_create_dmic_input_ctls(struct hda_codec *codec,
...
@@ -3481,6 +3481,8 @@ static int stac92xx_auto_create_dmic_input_ctls(struct hda_codec *codec,
label
=
hda_get_input_pin_label
(
codec
,
nid
,
1
);
label
=
hda_get_input_pin_label
(
codec
,
nid
,
1
);
snd_hda_add_imux_item
(
dimux
,
label
,
index
,
&
type_idx
);
snd_hda_add_imux_item
(
dimux
,
label
,
index
,
&
type_idx
);
if
(
snd_hda_get_bool_hint
(
codec
,
"separate_dmux"
)
!=
1
)
snd_hda_add_imux_item
(
imux
,
label
,
index
,
&
type_idx
);
err
=
create_elem_capture_vol
(
codec
,
nid
,
label
,
type_idx
,
err
=
create_elem_capture_vol
(
codec
,
nid
,
label
,
type_idx
,
HDA_INPUT
);
HDA_INPUT
);
...
@@ -3492,9 +3494,6 @@ static int stac92xx_auto_create_dmic_input_ctls(struct hda_codec *codec,
...
@@ -3492,9 +3494,6 @@ static int stac92xx_auto_create_dmic_input_ctls(struct hda_codec *codec,
if
(
err
<
0
)
if
(
err
<
0
)
return
err
;
return
err
;
}
}
if
(
snd_hda_get_bool_hint
(
codec
,
"separate_dmux"
)
!=
1
)
snd_hda_add_imux_item
(
imux
,
label
,
index
,
NULL
);
}
}
return
0
;
return
0
;
...
...
sound/soc/codecs/wm8580.c
View file @
70c673a4
...
@@ -161,7 +161,7 @@
...
@@ -161,7 +161,7 @@
static
const
u16
wm8580_reg
[]
=
{
static
const
u16
wm8580_reg
[]
=
{
0x0121
,
0x017e
,
0x007d
,
0x0014
,
/*R3*/
0x0121
,
0x017e
,
0x007d
,
0x0014
,
/*R3*/
0x0121
,
0x017e
,
0x007d
,
0x0194
,
/*R7*/
0x0121
,
0x017e
,
0x007d
,
0x0194
,
/*R7*/
0x001
c
,
0x0002
,
0x0002
,
0x00c2
,
/*R11*/
0x001
0
,
0x0002
,
0x0002
,
0x00c2
,
/*R11*/
0x0182
,
0x0082
,
0x000a
,
0x0024
,
/*R15*/
0x0182
,
0x0082
,
0x000a
,
0x0024
,
/*R15*/
0x0009
,
0x0000
,
0x00ff
,
0x0000
,
/*R19*/
0x0009
,
0x0000
,
0x00ff
,
0x0000
,
/*R19*/
0x00ff
,
0x00ff
,
0x00ff
,
0x00ff
,
/*R23*/
0x00ff
,
0x00ff
,
0x00ff
,
0x00ff
,
/*R23*/
...
...
sound/soc/codecs/wm8904.c
View file @
70c673a4
...
@@ -818,7 +818,8 @@ static int wm8904_get_deemph(struct snd_kcontrol *kcontrol,
...
@@ -818,7 +818,8 @@ static int wm8904_get_deemph(struct snd_kcontrol *kcontrol,
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
wm8904_priv
*
wm8904
=
snd_soc_codec_get_drvdata
(
codec
);
struct
wm8904_priv
*
wm8904
=
snd_soc_codec_get_drvdata
(
codec
);
return
wm8904
->
deemph
;
ucontrol
->
value
.
enumerated
.
item
[
0
]
=
wm8904
->
deemph
;
return
0
;
}
}
static
int
wm8904_put_deemph
(
struct
snd_kcontrol
*
kcontrol
,
static
int
wm8904_put_deemph
(
struct
snd_kcontrol
*
kcontrol
,
...
...
sound/soc/codecs/wm8955.c
View file @
70c673a4
...
@@ -380,7 +380,8 @@ static int wm8955_get_deemph(struct snd_kcontrol *kcontrol,
...
@@ -380,7 +380,8 @@ static int wm8955_get_deemph(struct snd_kcontrol *kcontrol,
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
wm8955_priv
*
wm8955
=
snd_soc_codec_get_drvdata
(
codec
);
struct
wm8955_priv
*
wm8955
=
snd_soc_codec_get_drvdata
(
codec
);
return
wm8955
->
deemph
;
ucontrol
->
value
.
enumerated
.
item
[
0
]
=
wm8955
->
deemph
;
return
0
;
}
}
static
int
wm8955_put_deemph
(
struct
snd_kcontrol
*
kcontrol
,
static
int
wm8955_put_deemph
(
struct
snd_kcontrol
*
kcontrol
,
...
...
sound/soc/codecs/wm8960.c
View file @
70c673a4
...
@@ -138,7 +138,8 @@ static int wm8960_get_deemph(struct snd_kcontrol *kcontrol,
...
@@ -138,7 +138,8 @@ static int wm8960_get_deemph(struct snd_kcontrol *kcontrol,
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
snd_soc_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
wm8960_priv
*
wm8960
=
snd_soc_codec_get_drvdata
(
codec
);
struct
wm8960_priv
*
wm8960
=
snd_soc_codec_get_drvdata
(
codec
);
return
wm8960
->
deemph
;
ucontrol
->
value
.
enumerated
.
item
[
0
]
=
wm8960
->
deemph
;
return
0
;
}
}
static
int
wm8960_put_deemph
(
struct
snd_kcontrol
*
kcontrol
,
static
int
wm8960_put_deemph
(
struct
snd_kcontrol
*
kcontrol
,
...
...
sound/soc/soc-dapm.c
View file @
70c673a4
...
@@ -944,6 +944,9 @@ static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
...
@@ -944,6 +944,9 @@ static int dapm_power_widgets(struct snd_soc_codec *codec, int event)
case
SND_SOC_DAPM_STREAM_RESUME
:
case
SND_SOC_DAPM_STREAM_RESUME
:
sys_power
=
1
;
sys_power
=
1
;
break
;
break
;
case
SND_SOC_DAPM_STREAM_STOP
:
sys_power
=
!!
codec
->
active
;
break
;
case
SND_SOC_DAPM_STREAM_SUSPEND
:
case
SND_SOC_DAPM_STREAM_SUSPEND
:
sys_power
=
0
;
sys_power
=
0
;
break
;
break
;
...
...
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