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
374a69e7
Commit
374a69e7
authored
Feb 13, 2012
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/hda' into topic/hda
Necessary for working on the jack-detection suppression feature.
parents
8bc039a1
a1e0c3cf
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
74 additions
and
43 deletions
+74
-43
sound/isa/sb/emu8000_patch.c
sound/isa/sb/emu8000_patch.c
+0
-1
sound/pci/hda/patch_ca0132.c
sound/pci/hda/patch_ca0132.c
+19
-14
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+2
-1
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+2
-2
sound/pci/oxygen/oxygen_mixer.c
sound/pci/oxygen/oxygen_mixer.c
+14
-11
sound/soc/codecs/cs42l73.c
sound/soc/codecs/cs42l73.c
+1
-1
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8962.c
+3
-3
sound/soc/codecs/wm8994.c
sound/soc/codecs/wm8994.c
+10
-6
sound/soc/codecs/wm_hubs.c
sound/soc/codecs/wm_hubs.c
+4
-4
sound/soc/soc-core.c
sound/soc/soc-core.c
+11
-0
sound/usb/quirks-table.h
sound/usb/quirks-table.h
+8
-0
No files found.
sound/isa/sb/emu8000_patch.c
View file @
374a69e7
...
...
@@ -22,7 +22,6 @@
#include "emu8000_local.h"
#include <asm/uaccess.h>
#include <linux/moduleparam.h>
#include <linux/moduleparam.h>
static
int
emu8000_reset_addr
;
module_param
(
emu8000_reset_addr
,
int
,
0444
);
...
...
sound/pci/hda/patch_ca0132.c
View file @
374a69e7
...
...
@@ -728,18 +728,19 @@ static int ca0132_hp_switch_put(struct snd_kcontrol *kcontrol,
err
=
chipio_read
(
codec
,
REG_CODEC_MUTE
,
&
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
/* *valp 0 is mute, 1 is unmute */
data
=
(
data
&
0x7f
)
|
(
*
valp
?
0
:
0x80
);
chipio_write
(
codec
,
REG_CODEC_MUTE
,
data
);
err
=
chipio_write
(
codec
,
REG_CODEC_MUTE
,
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
spec
->
curr_hp_switch
=
*
valp
;
exit:
snd_hda_power_down
(
codec
);
return
1
;
return
err
<
0
?
err
:
1
;
}
static
int
ca0132_speaker_switch_get
(
struct
snd_kcontrol
*
kcontrol
,
...
...
@@ -770,18 +771,19 @@ static int ca0132_speaker_switch_put(struct snd_kcontrol *kcontrol,
err
=
chipio_read
(
codec
,
REG_CODEC_MUTE
,
&
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
/* *valp 0 is mute, 1 is unmute */
data
=
(
data
&
0xef
)
|
(
*
valp
?
0
:
0x10
);
chipio_write
(
codec
,
REG_CODEC_MUTE
,
data
);
err
=
chipio_write
(
codec
,
REG_CODEC_MUTE
,
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
spec
->
curr_speaker_switch
=
*
valp
;
exit:
snd_hda_power_down
(
codec
);
return
1
;
return
err
<
0
?
err
:
1
;
}
static
int
ca0132_hp_volume_get
(
struct
snd_kcontrol
*
kcontrol
,
...
...
@@ -819,25 +821,26 @@ static int ca0132_hp_volume_put(struct snd_kcontrol *kcontrol,
err
=
chipio_read
(
codec
,
REG_CODEC_HP_VOL_L
,
&
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
val
=
31
-
left_vol
;
data
=
(
data
&
0xe0
)
|
val
;
chipio_write
(
codec
,
REG_CODEC_HP_VOL_L
,
data
);
err
=
chipio_write
(
codec
,
REG_CODEC_HP_VOL_L
,
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
val
=
31
-
right_vol
;
data
=
(
data
&
0xe0
)
|
val
;
chipio_write
(
codec
,
REG_CODEC_HP_VOL_R
,
data
);
err
=
chipio_write
(
codec
,
REG_CODEC_HP_VOL_R
,
data
);
if
(
err
<
0
)
return
err
;
goto
exit
;
spec
->
curr_hp_volume
[
0
]
=
left_vol
;
spec
->
curr_hp_volume
[
1
]
=
right_vol
;
exit:
snd_hda_power_down
(
codec
);
return
1
;
return
err
<
0
?
err
:
1
;
}
static
int
add_hp_switch
(
struct
hda_codec
*
codec
,
hda_nid_t
nid
)
...
...
@@ -936,6 +939,8 @@ static int ca0132_build_controls(struct hda_codec *codec)
if
(
err
<
0
)
return
err
;
err
=
add_in_volume
(
codec
,
spec
->
dig_in
,
"IEC958"
);
if
(
err
<
0
)
return
err
;
}
return
0
;
}
...
...
sound/pci/hda/patch_realtek.c
View file @
374a69e7
...
...
@@ -2298,7 +2298,7 @@ static int alc_build_pcms(struct hda_codec *codec)
"%s Analog"
,
codec
->
chip_name
);
info
->
name
=
spec
->
stream_name_analog
;
if
(
spec
->
multiout
.
dac_nid
s
>
0
)
{
if
(
spec
->
multiout
.
num_dac
s
>
0
)
{
p
=
spec
->
stream_analog_playback
;
if
(
!
p
)
p
=
&
alc_pcm_analog_playback
;
...
...
@@ -5603,6 +5603,7 @@ static const struct alc_fixup alc861_fixups[] = {
static
const
struct
snd_pci_quirk
alc861_fixup_tbl
[]
=
{
SND_PCI_QUIRK_VENDOR
(
0x1043
,
"ASUS laptop"
,
PINFIX_ASUS_A6RP
),
SND_PCI_QUIRK
(
0x1584
,
0x0000
,
"Uniwill ECS M31EI"
,
PINFIX_ASUS_A6RP
),
SND_PCI_QUIRK
(
0x1584
,
0x2b01
,
"Haier W18"
,
PINFIX_ASUS_A6RP
),
SND_PCI_QUIRK
(
0x1734
,
0x10c7
,
"FSC Amilo Pi1505"
,
PINFIX_FSC_AMILO_PI1505
),
{}
...
...
sound/pci/hda/patch_sigmatel.c
View file @
374a69e7
...
...
@@ -5063,9 +5063,9 @@ static int stac92xx_update_led_status(struct hda_codec *codec)
spec
->
gpio_dir
,
spec
->
gpio_data
);
}
else
{
notmtd_lvl
=
spec
->
gpio_led_polarity
?
AC_PINCTL_VREF_
HIZ
:
AC_PINCTL_VREF_GRD
;
AC_PINCTL_VREF_
50
:
AC_PINCTL_VREF_GRD
;
muted_lvl
=
spec
->
gpio_led_polarity
?
AC_PINCTL_VREF_GRD
:
AC_PINCTL_VREF_
HIZ
;
AC_PINCTL_VREF_GRD
:
AC_PINCTL_VREF_
50
;
spec
->
vref_led
=
muted
?
muted_lvl
:
notmtd_lvl
;
stac_vrefout_set
(
codec
,
spec
->
vref_mute_led_nid
,
spec
->
vref_led
);
...
...
sound/pci/oxygen/oxygen_mixer.c
View file @
374a69e7
...
...
@@ -618,9 +618,12 @@ static int ac97_volume_get(struct snd_kcontrol *ctl,
mutex_lock
(
&
chip
->
mutex
);
reg
=
oxygen_read_ac97
(
chip
,
codec
,
index
);
mutex_unlock
(
&
chip
->
mutex
);
value
->
value
.
integer
.
value
[
0
]
=
31
-
(
reg
&
0x1f
);
if
(
stereo
)
value
->
value
.
integer
.
value
[
1
]
=
31
-
((
reg
>>
8
)
&
0x1f
);
if
(
!
stereo
)
{
value
->
value
.
integer
.
value
[
0
]
=
31
-
(
reg
&
0x1f
);
}
else
{
value
->
value
.
integer
.
value
[
0
]
=
31
-
((
reg
>>
8
)
&
0x1f
);
value
->
value
.
integer
.
value
[
1
]
=
31
-
(
reg
&
0x1f
);
}
return
0
;
}
...
...
@@ -636,14 +639,14 @@ static int ac97_volume_put(struct snd_kcontrol *ctl,
mutex_lock
(
&
chip
->
mutex
);
oldreg
=
oxygen_read_ac97
(
chip
,
codec
,
index
);
newreg
=
oldreg
;
newreg
=
(
newreg
&
~
0x1f
)
|
(
31
-
(
value
->
value
.
integer
.
value
[
0
]
&
0x1f
)
);
if
(
stereo
)
newreg
=
(
newreg
&
~
0x1f00
)
|
((
31
-
(
value
->
value
.
integer
.
value
[
1
]
&
0x1f
))
<<
8
)
;
else
newreg
=
(
newreg
&
~
0x1f00
)
|
((
newreg
&
0x1f
)
<<
8
);
if
(
!
stereo
)
{
newreg
=
oldreg
&
~
0x1f
;
newreg
|=
31
-
(
value
->
value
.
integer
.
value
[
0
]
&
0x1f
);
}
else
{
newreg
=
oldreg
&
~
0x1f1f
;
newreg
|=
(
31
-
(
value
->
value
.
integer
.
value
[
0
]
&
0x1f
))
<<
8
;
newreg
|=
31
-
(
value
->
value
.
integer
.
value
[
1
]
&
0x1f
);
}
change
=
newreg
!=
oldreg
;
if
(
change
)
oxygen_write_ac97
(
chip
,
codec
,
index
,
newreg
);
...
...
sound/soc/codecs/cs42l73.c
View file @
374a69e7
...
...
@@ -1113,7 +1113,7 @@ static int cs42l73_pcm_hw_params(struct snd_pcm_substream *substream,
priv
->
config
[
id
].
mmcc
&=
0xC0
;
priv
->
config
[
id
].
mmcc
|=
cs42l73_mclk_coeffs
[
mclk_coeff
].
mmcc
;
priv
->
config
[
id
].
spc
&=
0xFC
;
priv
->
config
[
id
].
spc
&=
MCK_SCLK_64FS
;
priv
->
config
[
id
].
spc
|=
MCK_SCLK_MCLK
;
}
else
{
/* CS42L73 Slave */
priv
->
config
[
id
].
spc
&=
0xFC
;
...
...
sound/soc/codecs/wm8962.c
View file @
374a69e7
...
...
@@ -3159,13 +3159,13 @@ static int wm8962_hw_params(struct snd_pcm_substream *substream,
case
SNDRV_PCM_FORMAT_S16_LE
:
break
;
case
SNDRV_PCM_FORMAT_S20_3LE
:
aif0
|=
0x4
0
;
aif0
|=
0x4
;
break
;
case
SNDRV_PCM_FORMAT_S24_LE
:
aif0
|=
0x8
0
;
aif0
|=
0x8
;
break
;
case
SNDRV_PCM_FORMAT_S32_LE
:
aif0
|=
0xc
0
;
aif0
|=
0xc
;
break
;
default:
return
-
EINVAL
;
...
...
sound/soc/codecs/wm8994.c
View file @
374a69e7
...
...
@@ -770,6 +770,8 @@ static void vmid_reference(struct snd_soc_codec *codec)
{
struct
wm8994_priv
*
wm8994
=
snd_soc_codec_get_drvdata
(
codec
);
pm_runtime_get_sync
(
codec
->
dev
);
wm8994
->
vmid_refcount
++
;
dev_dbg
(
codec
->
dev
,
"Referencing VMID, refcount is now %d
\n
"
,
...
...
@@ -783,7 +785,12 @@ static void vmid_reference(struct snd_soc_codec *codec)
WM8994_VMID_RAMP_MASK
,
WM8994_STARTUP_BIAS_ENA
|
WM8994_VMID_BUF_ENA
|
(
0x11
<<
WM8994_VMID_RAMP_SHIFT
));
(
0x3
<<
WM8994_VMID_RAMP_SHIFT
));
/* Remove discharge for line out */
snd_soc_update_bits
(
codec
,
WM8994_ANTIPOP_1
,
WM8994_LINEOUT1_DISCH
|
WM8994_LINEOUT2_DISCH
,
0
);
/* Main bias enable, VMID=2x40k */
snd_soc_update_bits
(
codec
,
WM8994_POWER_MANAGEMENT_1
,
...
...
@@ -837,6 +844,8 @@ static void vmid_dereference(struct snd_soc_codec *codec)
WM8994_VMID_BUF_ENA
|
WM8994_VMID_RAMP_MASK
,
0
);
}
pm_runtime_put
(
codec
->
dev
);
}
static
int
vmid_event
(
struct
snd_soc_dapm_widget
*
w
,
...
...
@@ -2753,11 +2762,6 @@ static int wm8994_resume(struct snd_soc_codec *codec)
codec
->
cache_only
=
0
;
}
/* Restore the registers */
ret
=
snd_soc_cache_sync
(
codec
);
if
(
ret
!=
0
)
dev_err
(
codec
->
dev
,
"Failed to sync cache: %d
\n
"
,
ret
);
wm8994_set_bias_level
(
codec
,
SND_SOC_BIAS_STANDBY
);
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
wm8994
->
fll
);
i
++
)
{
...
...
sound/soc/codecs/wm_hubs.c
View file @
374a69e7
...
...
@@ -586,8 +586,8 @@ SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER1, 0, 1, 0),
};
static
const
struct
snd_kcontrol_new
line2_mix
[]
=
{
SOC_DAPM_SINGLE
(
"IN
2R
Switch"
,
WM8993_LINE_MIXER2
,
2
,
1
,
0
),
SOC_DAPM_SINGLE
(
"IN
2L
Switch"
,
WM8993_LINE_MIXER2
,
1
,
1
,
0
),
SOC_DAPM_SINGLE
(
"IN
1L
Switch"
,
WM8993_LINE_MIXER2
,
2
,
1
,
0
),
SOC_DAPM_SINGLE
(
"IN
1R
Switch"
,
WM8993_LINE_MIXER2
,
1
,
1
,
0
),
SOC_DAPM_SINGLE
(
"Output Switch"
,
WM8993_LINE_MIXER2
,
0
,
1
,
0
),
};
...
...
@@ -848,8 +848,8 @@ static const struct snd_soc_dapm_route lineout1_se_routes[] = {
};
static
const
struct
snd_soc_dapm_route
lineout2_diff_routes
[]
=
{
{
"LINEOUT2 Mixer"
,
"IN
2L Switch"
,
"IN2
L PGA"
},
{
"LINEOUT2 Mixer"
,
"IN
2R Switch"
,
"IN2
R PGA"
},
{
"LINEOUT2 Mixer"
,
"IN
1L Switch"
,
"IN1
L PGA"
},
{
"LINEOUT2 Mixer"
,
"IN
1R Switch"
,
"IN1
R PGA"
},
{
"LINEOUT2 Mixer"
,
"Output Switch"
,
"Right Output PGA"
},
{
"LINEOUT2N Driver"
,
NULL
,
"LINEOUT2 Mixer"
},
...
...
sound/soc/soc-core.c
View file @
374a69e7
...
...
@@ -567,6 +567,17 @@ int snd_soc_suspend(struct device *dev)
if
(
!
codec
->
suspended
&&
codec
->
driver
->
suspend
)
{
switch
(
codec
->
dapm
.
bias_level
)
{
case
SND_SOC_BIAS_STANDBY
:
/*
* If the CODEC is capable of idle
* bias off then being in STANDBY
* means it's doing something,
* otherwise fall through.
*/
if
(
codec
->
dapm
.
idle_bias_off
)
{
dev_dbg
(
codec
->
dev
,
"idle_bias_off CODEC on over suspend
\n
"
);
break
;
}
case
SND_SOC_BIAS_OFF
:
codec
->
driver
->
suspend
(
codec
);
codec
->
suspended
=
1
;
...
...
sound/usb/quirks-table.h
View file @
374a69e7
...
...
@@ -1617,6 +1617,14 @@ YAMAHA_DEVICE(0x7010, "UB99"),
}
}
},
{
/* Edirol UM-3G */
USB_DEVICE_VENDOR_SPEC
(
0x0582
,
0x0108
),
.
driver_info
=
(
unsigned
long
)
&
(
const
struct
snd_usb_audio_quirk
)
{
.
ifnum
=
0
,
.
type
=
QUIRK_MIDI_STANDARD_INTERFACE
}
},
{
/* Boss JS-8 Jam Station */
USB_DEVICE
(
0x0582
,
0x0109
),
...
...
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