Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
77623f62
Commit
77623f62
authored
Dec 20, 2009
by
Jaroslav Kysela
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/hda' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
into fixes
parents
f7489027
2fef62c8
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
338 additions
and
31 deletions
+338
-31
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+3
-0
sound/pci/hda/patch_analog.c
sound/pci/hda/patch_analog.c
+8
-0
sound/pci/hda/patch_conexant.c
sound/pci/hda/patch_conexant.c
+37
-6
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+290
-25
No files found.
sound/pci/hda/hda_intel.c
View file @
77623f62
...
@@ -2713,6 +2713,9 @@ static struct pci_device_id azx_ids[] = {
...
@@ -2713,6 +2713,9 @@ static struct pci_device_id azx_ids[] = {
{
PCI_DEVICE
(
0x10de
,
0x0ac1
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0ac1
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0ac2
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0ac2
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0ac3
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0ac3
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0be2
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0be3
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0be4
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0d94
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0d94
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0d95
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0d95
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0d96
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
{
PCI_DEVICE
(
0x10de
,
0x0d96
),
.
driver_data
=
AZX_DRIVER_NVIDIA
},
...
...
sound/pci/hda/patch_analog.c
View file @
77623f62
...
@@ -1789,6 +1789,14 @@ static int patch_ad1981(struct hda_codec *codec)
...
@@ -1789,6 +1789,14 @@ static int patch_ad1981(struct hda_codec *codec)
codec
->
patch_ops
.
init
=
ad1981_hp_init
;
codec
->
patch_ops
.
init
=
ad1981_hp_init
;
codec
->
patch_ops
.
unsol_event
=
ad1981_hp_unsol_event
;
codec
->
patch_ops
.
unsol_event
=
ad1981_hp_unsol_event
;
/* set the upper-limit for mixer amp to 0dB for avoiding the
* possible damage by overloading
*/
snd_hda_override_amp_caps
(
codec
,
0x11
,
HDA_INPUT
,
(
0x17
<<
AC_AMPCAP_OFFSET_SHIFT
)
|
(
0x17
<<
AC_AMPCAP_NUM_STEPS_SHIFT
)
|
(
0x05
<<
AC_AMPCAP_STEP_SIZE_SHIFT
)
|
(
1
<<
AC_AMPCAP_MUTE_SHIFT
));
break
;
break
;
case
AD1981_THINKPAD
:
case
AD1981_THINKPAD
:
spec
->
mixers
[
0
]
=
ad1981_thinkpad_mixers
;
spec
->
mixers
[
0
]
=
ad1981_thinkpad_mixers
;
...
...
sound/pci/hda/patch_conexant.c
View file @
77623f62
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#include "hda_codec.h"
#include "hda_codec.h"
#include "hda_local.h"
#include "hda_local.h"
#include "hda_beep.h"
#define CXT_PIN_DIR_IN 0x00
#define CXT_PIN_DIR_IN 0x00
#define CXT_PIN_DIR_OUT 0x01
#define CXT_PIN_DIR_OUT 0x01
...
@@ -111,6 +112,7 @@ struct conexant_spec {
...
@@ -111,6 +112,7 @@ struct conexant_spec {
unsigned
int
dell_automute
;
unsigned
int
dell_automute
;
unsigned
int
port_d_mode
;
unsigned
int
port_d_mode
;
unsigned
char
ext_mic_bias
;
unsigned
char
ext_mic_bias
;
unsigned
int
dell_vostro
;
};
};
static
int
conexant_playback_pcm_open
(
struct
hda_pcm_stream
*
hinfo
,
static
int
conexant_playback_pcm_open
(
struct
hda_pcm_stream
*
hinfo
,
...
@@ -476,6 +478,7 @@ static void conexant_free(struct hda_codec *codec)
...
@@ -476,6 +478,7 @@ static void conexant_free(struct hda_codec *codec)
snd_array_free
(
&
spec
->
jacks
);
snd_array_free
(
&
spec
->
jacks
);
}
}
#endif
#endif
snd_hda_detach_beep_device
(
codec
);
kfree
(
codec
->
spec
);
kfree
(
codec
->
spec
);
}
}
...
@@ -2109,9 +2112,12 @@ static int cxt5066_mic_boost_mux_enum_get(struct snd_kcontrol *kcontrol,
...
@@ -2109,9 +2112,12 @@ static int cxt5066_mic_boost_mux_enum_get(struct snd_kcontrol *kcontrol,
{
{
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
int
val
;
int
val
;
hda_nid_t
nid
=
kcontrol
->
private_value
&
0xff
;
int
inout
=
(
kcontrol
->
private_value
&
0x100
)
?
AC_AMP_GET_INPUT
:
AC_AMP_GET_OUTPUT
;
val
=
snd_hda_codec_read
(
codec
,
0x17
,
0
,
val
=
snd_hda_codec_read
(
codec
,
nid
,
0
,
AC_VERB_GET_AMP_GAIN_MUTE
,
AC_AMP_GET_OUTPUT
);
AC_VERB_GET_AMP_GAIN_MUTE
,
inout
);
ucontrol
->
value
.
enumerated
.
item
[
0
]
=
val
&
AC_AMP_GAIN
;
ucontrol
->
value
.
enumerated
.
item
[
0
]
=
val
&
AC_AMP_GAIN
;
return
0
;
return
0
;
...
@@ -2123,6 +2129,9 @@ static int cxt5066_mic_boost_mux_enum_put(struct snd_kcontrol *kcontrol,
...
@@ -2123,6 +2129,9 @@ static int cxt5066_mic_boost_mux_enum_put(struct snd_kcontrol *kcontrol,
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
struct
hda_codec
*
codec
=
snd_kcontrol_chip
(
kcontrol
);
const
struct
hda_input_mux
*
imux
=
&
cxt5066_analog_mic_boost
;
const
struct
hda_input_mux
*
imux
=
&
cxt5066_analog_mic_boost
;
unsigned
int
idx
;
unsigned
int
idx
;
hda_nid_t
nid
=
kcontrol
->
private_value
&
0xff
;
int
inout
=
(
kcontrol
->
private_value
&
0x100
)
?
AC_AMP_SET_INPUT
:
AC_AMP_SET_OUTPUT
;
if
(
!
imux
->
num_items
)
if
(
!
imux
->
num_items
)
return
0
;
return
0
;
...
@@ -2130,9 +2139,9 @@ static int cxt5066_mic_boost_mux_enum_put(struct snd_kcontrol *kcontrol,
...
@@ -2130,9 +2139,9 @@ static int cxt5066_mic_boost_mux_enum_put(struct snd_kcontrol *kcontrol,
if
(
idx
>=
imux
->
num_items
)
if
(
idx
>=
imux
->
num_items
)
idx
=
imux
->
num_items
-
1
;
idx
=
imux
->
num_items
-
1
;
snd_hda_codec_write_cache
(
codec
,
0x17
,
0
,
snd_hda_codec_write_cache
(
codec
,
nid
,
0
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AC_VERB_SET_AMP_GAIN_MUTE
,
AC_AMP_SET_RIGHT
|
AC_AMP_SET_LEFT
|
AC_AMP_SET_OUTPUT
|
AC_AMP_SET_RIGHT
|
AC_AMP_SET_LEFT
|
inout
|
imux
->
items
[
idx
].
index
);
imux
->
items
[
idx
].
index
);
return
1
;
return
1
;
...
@@ -2201,10 +2210,11 @@ static struct snd_kcontrol_new cxt5066_mixers[] = {
...
@@ -2201,10 +2210,11 @@ static struct snd_kcontrol_new cxt5066_mixers[] = {
{
{
.
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
,
.
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
,
.
name
=
"
Analog
Mic Boost Capture Enum"
,
.
name
=
"
Ext
Mic Boost Capture Enum"
,
.
info
=
cxt5066_mic_boost_mux_enum_info
,
.
info
=
cxt5066_mic_boost_mux_enum_info
,
.
get
=
cxt5066_mic_boost_mux_enum_get
,
.
get
=
cxt5066_mic_boost_mux_enum_get
,
.
put
=
cxt5066_mic_boost_mux_enum_put
,
.
put
=
cxt5066_mic_boost_mux_enum_put
,
.
private_value
=
0x17
,
},
},
HDA_BIND_VOL
(
"Capture Volume"
,
&
cxt5066_bind_capture_vol_others
),
HDA_BIND_VOL
(
"Capture Volume"
,
&
cxt5066_bind_capture_vol_others
),
...
@@ -2212,6 +2222,19 @@ static struct snd_kcontrol_new cxt5066_mixers[] = {
...
@@ -2212,6 +2222,19 @@ static struct snd_kcontrol_new cxt5066_mixers[] = {
{}
{}
};
};
static
struct
snd_kcontrol_new
cxt5066_vostro_mixers
[]
=
{
{
.
iface
=
SNDRV_CTL_ELEM_IFACE_MIXER
,
.
name
=
"Int Mic Boost Capture Enum"
,
.
info
=
cxt5066_mic_boost_mux_enum_info
,
.
get
=
cxt5066_mic_boost_mux_enum_get
,
.
put
=
cxt5066_mic_boost_mux_enum_put
,
.
private_value
=
0x23
|
0x100
,
},
HDA_CODEC_VOLUME_MONO
(
"Beep Playback Volume"
,
0x13
,
1
,
0x0
,
HDA_OUTPUT
),
{}
};
static
struct
hda_verb
cxt5066_init_verbs
[]
=
{
static
struct
hda_verb
cxt5066_init_verbs
[]
=
{
{
0x1a
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_VREF80
},
/* Port B */
{
0x1a
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_VREF80
},
/* Port B */
{
0x1b
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_VREF80
},
/* Port C */
{
0x1b
,
AC_VERB_SET_PIN_WIDGET_CONTROL
,
PIN_VREF80
},
/* Port C */
...
@@ -2397,10 +2420,15 @@ static struct hda_verb cxt5066_init_verbs_portd_lo[] = {
...
@@ -2397,10 +2420,15 @@ static struct hda_verb cxt5066_init_verbs_portd_lo[] = {
/* initialize jack-sensing, too */
/* initialize jack-sensing, too */
static
int
cxt5066_init
(
struct
hda_codec
*
codec
)
static
int
cxt5066_init
(
struct
hda_codec
*
codec
)
{
{
struct
conexant_spec
*
spec
=
codec
->
spec
;
snd_printdd
(
"CXT5066: init
\n
"
);
snd_printdd
(
"CXT5066: init
\n
"
);
conexant_init
(
codec
);
conexant_init
(
codec
);
if
(
codec
->
patch_ops
.
unsol_event
)
{
if
(
codec
->
patch_ops
.
unsol_event
)
{
cxt5066_hp_automute
(
codec
);
cxt5066_hp_automute
(
codec
);
if
(
spec
->
dell_vostro
)
cxt5066_vostro_automic
(
codec
);
else
cxt5066_automic
(
codec
);
cxt5066_automic
(
codec
);
}
}
return
0
;
return
0
;
...
@@ -2500,7 +2528,10 @@ static int patch_cxt5066(struct hda_codec *codec)
...
@@ -2500,7 +2528,10 @@ static int patch_cxt5066(struct hda_codec *codec)
spec
->
init_verbs
[
0
]
=
cxt5066_init_verbs_vostro
;
spec
->
init_verbs
[
0
]
=
cxt5066_init_verbs_vostro
;
spec
->
mixers
[
spec
->
num_mixers
++
]
=
cxt5066_mixer_master_olpc
;
spec
->
mixers
[
spec
->
num_mixers
++
]
=
cxt5066_mixer_master_olpc
;
spec
->
mixers
[
spec
->
num_mixers
++
]
=
cxt5066_mixers
;
spec
->
mixers
[
spec
->
num_mixers
++
]
=
cxt5066_mixers
;
spec
->
mixers
[
spec
->
num_mixers
++
]
=
cxt5066_vostro_mixers
;
spec
->
port_d_mode
=
0
;
spec
->
port_d_mode
=
0
;
spec
->
dell_vostro
=
1
;
snd_hda_attach_beep_device
(
codec
,
0x13
);
/* no S/PDIF out */
/* no S/PDIF out */
spec
->
multiout
.
dig_out_nid
=
0
;
spec
->
multiout
.
dig_out_nid
=
0
;
...
...
sound/pci/hda/patch_realtek.c
View file @
77623f62
This diff is collapsed.
Click to expand it.
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