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
fb66ebd8
Commit
fb66ebd8
authored
Oct 13, 2009
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/hda' into for-linus
parents
29a4f2d3
491dc043
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
8 deletions
+55
-8
Documentation/sound/alsa/HD-Audio-Models.txt
Documentation/sound/alsa/HD-Audio-Models.txt
+1
-0
sound/pci/hda/patch_nvhdmi.c
sound/pci/hda/patch_nvhdmi.c
+25
-6
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_realtek.c
+1
-1
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+28
-1
No files found.
Documentation/sound/alsa/HD-Audio-Models.txt
View file @
fb66ebd8
...
@@ -359,6 +359,7 @@ STAC9227/9228/9229/927x
...
@@ -359,6 +359,7 @@ STAC9227/9228/9229/927x
5stack-no-fp D965 5stack without front panel
5stack-no-fp D965 5stack without front panel
dell-3stack Dell Dimension E520
dell-3stack Dell Dimension E520
dell-bios Fixes with Dell BIOS setup
dell-bios Fixes with Dell BIOS setup
volknob Fixes with volume-knob widget 0x24
auto BIOS setup (default)
auto BIOS setup (default)
STAC92HD71B*
STAC92HD71B*
...
...
sound/pci/hda/patch_nvhdmi.c
View file @
fb66ebd8
...
@@ -29,6 +29,9 @@
...
@@ -29,6 +29,9 @@
#include "hda_codec.h"
#include "hda_codec.h"
#include "hda_local.h"
#include "hda_local.h"
/* define below to restrict the supported rates and formats */
/* #define LIMITED_RATE_FMT_SUPPORT */
struct
nvhdmi_spec
{
struct
nvhdmi_spec
{
struct
hda_multi_out
multiout
;
struct
hda_multi_out
multiout
;
...
@@ -60,6 +63,22 @@ static struct hda_verb nvhdmi_basic_init[] = {
...
@@ -60,6 +63,22 @@ static struct hda_verb nvhdmi_basic_init[] = {
{}
/* terminator */
{}
/* terminator */
};
};
#ifdef LIMITED_RATE_FMT_SUPPORT
/* support only the safe format and rate */
#define SUPPORTED_RATES SNDRV_PCM_RATE_48000
#define SUPPORTED_MAXBPS 16
#define SUPPORTED_FORMATS SNDRV_PCM_FMTBIT_S16_LE
#else
/* support all rates and formats */
#define SUPPORTED_RATES \
(SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |\
SNDRV_PCM_RATE_192000)
#define SUPPORTED_MAXBPS 24
#define SUPPORTED_FORMATS \
(SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE)
#endif
/*
/*
* Controls
* Controls
*/
*/
...
@@ -258,9 +277,9 @@ static struct hda_pcm_stream nvhdmi_pcm_digital_playback_8ch = {
...
@@ -258,9 +277,9 @@ static struct hda_pcm_stream nvhdmi_pcm_digital_playback_8ch = {
.
channels_min
=
2
,
.
channels_min
=
2
,
.
channels_max
=
8
,
.
channels_max
=
8
,
.
nid
=
Nv_Master_Convert_nid
,
.
nid
=
Nv_Master_Convert_nid
,
.
rates
=
S
NDRV_PCM_RATE_48000
,
.
rates
=
S
UPPORTED_RATES
,
.
maxbps
=
16
,
.
maxbps
=
SUPPORTED_MAXBPS
,
.
formats
=
S
NDRV_PCM_FMTBIT_S16_LE
,
.
formats
=
S
UPPORTED_FORMATS
,
.
ops
=
{
.
ops
=
{
.
open
=
nvhdmi_dig_playback_pcm_open
,
.
open
=
nvhdmi_dig_playback_pcm_open
,
.
close
=
nvhdmi_dig_playback_pcm_close_8ch
,
.
close
=
nvhdmi_dig_playback_pcm_close_8ch
,
...
@@ -273,9 +292,9 @@ static struct hda_pcm_stream nvhdmi_pcm_digital_playback_2ch = {
...
@@ -273,9 +292,9 @@ static struct hda_pcm_stream nvhdmi_pcm_digital_playback_2ch = {
.
channels_min
=
2
,
.
channels_min
=
2
,
.
channels_max
=
2
,
.
channels_max
=
2
,
.
nid
=
Nv_Master_Convert_nid
,
.
nid
=
Nv_Master_Convert_nid
,
.
rates
=
S
NDRV_PCM_RATE_48000
,
.
rates
=
S
UPPORTED_RATES
,
.
maxbps
=
16
,
.
maxbps
=
SUPPORTED_MAXBPS
,
.
formats
=
S
NDRV_PCM_FMTBIT_S16_LE
,
.
formats
=
S
UPPORTED_FORMATS
,
.
ops
=
{
.
ops
=
{
.
open
=
nvhdmi_dig_playback_pcm_open
,
.
open
=
nvhdmi_dig_playback_pcm_open
,
.
close
=
nvhdmi_dig_playback_pcm_close_2ch
,
.
close
=
nvhdmi_dig_playback_pcm_close_2ch
,
...
...
sound/pci/hda/patch_realtek.c
View file @
fb66ebd8
...
@@ -275,7 +275,7 @@ struct alc_spec {
...
@@ -275,7 +275,7 @@ struct alc_spec {
struct
snd_kcontrol_new
*
cap_mixer
;
/* capture mixer */
struct
snd_kcontrol_new
*
cap_mixer
;
/* capture mixer */
unsigned
int
beep_amp
;
/* beep amp value, set via set_beep_amp() */
unsigned
int
beep_amp
;
/* beep amp value, set via set_beep_amp() */
const
struct
hda_verb
*
init_verbs
[
5
];
/* initialization verbs
const
struct
hda_verb
*
init_verbs
[
10
];
/* initialization verbs
* don't forget NULL
* don't forget NULL
* termination!
* termination!
*/
*/
...
...
sound/pci/hda/patch_sigmatel.c
View file @
fb66ebd8
...
@@ -158,6 +158,7 @@ enum {
...
@@ -158,6 +158,7 @@ enum {
STAC_D965_5ST_NO_FP
,
STAC_D965_5ST_NO_FP
,
STAC_DELL_3ST
,
STAC_DELL_3ST
,
STAC_DELL_BIOS
,
STAC_DELL_BIOS
,
STAC_927X_VOLKNOB
,
STAC_927X_MODELS
STAC_927X_MODELS
};
};
...
@@ -907,6 +908,16 @@ static struct hda_verb d965_core_init[] = {
...
@@ -907,6 +908,16 @@ static struct hda_verb d965_core_init[] = {
{}
{}
};
};
static
struct
hda_verb
dell_3st_core_init
[]
=
{
/* don't set delta bit */
{
0x24
,
AC_VERB_SET_VOLUME_KNOB_CONTROL
,
0x7f
},
/* unmute node 0x1b */
{
0x1b
,
AC_VERB_SET_AMP_GAIN_MUTE
,
0xb000
},
/* select node 0x03 as DAC */
{
0x0b
,
AC_VERB_SET_CONNECT_SEL
,
0x01
},
{}
};
static
struct
hda_verb
stac927x_core_init
[]
=
{
static
struct
hda_verb
stac927x_core_init
[]
=
{
/* set master volume and direct control */
/* set master volume and direct control */
{
0x24
,
AC_VERB_SET_VOLUME_KNOB_CONTROL
,
0xff
},
{
0x24
,
AC_VERB_SET_VOLUME_KNOB_CONTROL
,
0xff
},
...
@@ -915,6 +926,14 @@ static struct hda_verb stac927x_core_init[] = {
...
@@ -915,6 +926,14 @@ static struct hda_verb stac927x_core_init[] = {
{}
{}
};
};
static
struct
hda_verb
stac927x_volknob_core_init
[]
=
{
/* don't set delta bit */
{
0x24
,
AC_VERB_SET_VOLUME_KNOB_CONTROL
,
0x7f
},
/* enable analog pc beep path */
{
0x01
,
AC_VERB_SET_DIGI_CONVERT_2
,
1
<<
5
},
{}
};
static
struct
hda_verb
stac9205_core_init
[]
=
{
static
struct
hda_verb
stac9205_core_init
[]
=
{
/* set master volume and direct control */
/* set master volume and direct control */
{
0x24
,
AC_VERB_SET_VOLUME_KNOB_CONTROL
,
0xff
},
{
0x24
,
AC_VERB_SET_VOLUME_KNOB_CONTROL
,
0xff
},
...
@@ -1999,6 +2018,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
...
@@ -1999,6 +2018,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
[
STAC_D965_5ST_NO_FP
]
=
d965_5st_no_fp_pin_configs
,
[
STAC_D965_5ST_NO_FP
]
=
d965_5st_no_fp_pin_configs
,
[
STAC_DELL_3ST
]
=
dell_3st_pin_configs
,
[
STAC_DELL_3ST
]
=
dell_3st_pin_configs
,
[
STAC_DELL_BIOS
]
=
NULL
,
[
STAC_DELL_BIOS
]
=
NULL
,
[
STAC_927X_VOLKNOB
]
=
NULL
,
};
};
static
const
char
*
stac927x_models
[
STAC_927X_MODELS
]
=
{
static
const
char
*
stac927x_models
[
STAC_927X_MODELS
]
=
{
...
@@ -2010,6 +2030,7 @@ static const char *stac927x_models[STAC_927X_MODELS] = {
...
@@ -2010,6 +2030,7 @@ static const char *stac927x_models[STAC_927X_MODELS] = {
[
STAC_D965_5ST_NO_FP
]
=
"5stack-no-fp"
,
[
STAC_D965_5ST_NO_FP
]
=
"5stack-no-fp"
,
[
STAC_DELL_3ST
]
=
"dell-3stack"
,
[
STAC_DELL_3ST
]
=
"dell-3stack"
,
[
STAC_DELL_BIOS
]
=
"dell-bios"
,
[
STAC_DELL_BIOS
]
=
"dell-bios"
,
[
STAC_927X_VOLKNOB
]
=
"volknob"
,
};
};
static
struct
snd_pci_quirk
stac927x_cfg_tbl
[]
=
{
static
struct
snd_pci_quirk
stac927x_cfg_tbl
[]
=
{
...
@@ -2045,6 +2066,8 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = {
...
@@ -2045,6 +2066,8 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = {
"Intel D965"
,
STAC_D965_5ST
),
"Intel D965"
,
STAC_D965_5ST
),
SND_PCI_QUIRK_MASK
(
PCI_VENDOR_ID_INTEL
,
0xff00
,
0x2500
,
SND_PCI_QUIRK_MASK
(
PCI_VENDOR_ID_INTEL
,
0xff00
,
0x2500
,
"Intel D965"
,
STAC_D965_5ST
),
"Intel D965"
,
STAC_D965_5ST
),
/* volume-knob fixes */
SND_PCI_QUIRK_VENDOR
(
0x10cf
,
"FSC"
,
STAC_927X_VOLKNOB
),
{}
/* terminator */
{}
/* terminator */
};
};
...
@@ -5612,10 +5635,14 @@ static int patch_stac927x(struct hda_codec *codec)
...
@@ -5612,10 +5635,14 @@ static int patch_stac927x(struct hda_codec *codec)
spec
->
dmic_nids
=
stac927x_dmic_nids
;
spec
->
dmic_nids
=
stac927x_dmic_nids
;
spec
->
num_dmics
=
STAC927X_NUM_DMICS
;
spec
->
num_dmics
=
STAC927X_NUM_DMICS
;
spec
->
init
=
d
965
_core_init
;
spec
->
init
=
d
ell_3st
_core_init
;
spec
->
dmux_nids
=
stac927x_dmux_nids
;
spec
->
dmux_nids
=
stac927x_dmux_nids
;
spec
->
num_dmuxes
=
ARRAY_SIZE
(
stac927x_dmux_nids
);
spec
->
num_dmuxes
=
ARRAY_SIZE
(
stac927x_dmux_nids
);
break
;
break
;
case
STAC_927X_VOLKNOB
:
spec
->
num_dmics
=
0
;
spec
->
init
=
stac927x_volknob_core_init
;
break
;
default:
default:
spec
->
num_dmics
=
0
;
spec
->
num_dmics
=
0
;
spec
->
init
=
stac927x_core_init
;
spec
->
init
=
stac927x_core_init
;
...
...
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