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
0552f297
Commit
0552f297
authored
Oct 29, 2008
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'topic/fix/hda' and 'topic/fix/misc' into for-linus
parents
0a9b8638
0cbf0098
366840d7
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
39 additions
and
4 deletions
+39
-4
sound/core/control.c
sound/core/control.c
+6
-1
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.c
+1
-0
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+29
-0
sound/pci/hda/patch_analog.c
sound/pci/hda/patch_analog.c
+1
-0
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_sigmatel.c
+1
-3
sound/pci/intel8x0.c
sound/pci/intel8x0.c
+1
-0
No files found.
sound/core/control.c
View file @
0552f297
...
@@ -225,8 +225,13 @@ struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new *ncontrol,
...
@@ -225,8 +225,13 @@ struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new *ncontrol,
kctl
.
id
.
iface
=
ncontrol
->
iface
;
kctl
.
id
.
iface
=
ncontrol
->
iface
;
kctl
.
id
.
device
=
ncontrol
->
device
;
kctl
.
id
.
device
=
ncontrol
->
device
;
kctl
.
id
.
subdevice
=
ncontrol
->
subdevice
;
kctl
.
id
.
subdevice
=
ncontrol
->
subdevice
;
if
(
ncontrol
->
name
)
if
(
ncontrol
->
name
)
{
strlcpy
(
kctl
.
id
.
name
,
ncontrol
->
name
,
sizeof
(
kctl
.
id
.
name
));
strlcpy
(
kctl
.
id
.
name
,
ncontrol
->
name
,
sizeof
(
kctl
.
id
.
name
));
if
(
strcmp
(
ncontrol
->
name
,
kctl
.
id
.
name
)
!=
0
)
snd_printk
(
KERN_WARNING
"Control name '%s' truncated to '%s'
\n
"
,
ncontrol
->
name
,
kctl
.
id
.
name
);
}
kctl
.
id
.
index
=
ncontrol
->
index
;
kctl
.
id
.
index
=
ncontrol
->
index
;
kctl
.
count
=
ncontrol
->
count
?
ncontrol
->
count
:
1
;
kctl
.
count
=
ncontrol
->
count
?
ncontrol
->
count
:
1
;
access
=
ncontrol
->
access
==
0
?
SNDRV_CTL_ELEM_ACCESS_READWRITE
:
access
=
ncontrol
->
access
==
0
?
SNDRV_CTL_ELEM_ACCESS_READWRITE
:
...
...
sound/pci/hda/hda_codec.c
View file @
0552f297
...
@@ -64,6 +64,7 @@ static struct hda_vendor_id hda_vendor_ids[] = {
...
@@ -64,6 +64,7 @@ static struct hda_vendor_id hda_vendor_ids[] = {
{
0x14f1
,
"Conexant"
},
{
0x14f1
,
"Conexant"
},
{
0x17e8
,
"Chrontel"
},
{
0x17e8
,
"Chrontel"
},
{
0x1854
,
"LG"
},
{
0x1854
,
"LG"
},
{
0x1aec
,
"Wolfson Microelectronics"
},
{
0x434d
,
"C-Media"
},
{
0x434d
,
"C-Media"
},
{
0x8384
,
"SigmaTel"
},
{
0x8384
,
"SigmaTel"
},
{}
/* terminator */
{}
/* terminator */
...
...
sound/pci/hda/hda_intel.c
View file @
0552f297
...
@@ -45,6 +45,7 @@
...
@@ -45,6 +45,7 @@
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/mutex.h>
#include <linux/mutex.h>
#include <linux/reboot.h>
#include <sound/core.h>
#include <sound/core.h>
#include <sound/initval.h>
#include <sound/initval.h>
#include "hda_codec.h"
#include "hda_codec.h"
...
@@ -397,6 +398,9 @@ struct azx {
...
@@ -397,6 +398,9 @@ struct azx {
/* for pending irqs */
/* for pending irqs */
struct
work_struct
irq_pending_work
;
struct
work_struct
irq_pending_work
;
/* reboot notifier (for mysterious hangup problem at power-down) */
struct
notifier_block
reboot_notifier
;
};
};
/* driver types */
/* driver types */
...
@@ -1978,6 +1982,28 @@ static int azx_resume(struct pci_dev *pci)
...
@@ -1978,6 +1982,28 @@ static int azx_resume(struct pci_dev *pci)
#endif
/* CONFIG_PM */
#endif
/* CONFIG_PM */
/*
* reboot notifier for hang-up problem at power-down
*/
static
int
azx_halt
(
struct
notifier_block
*
nb
,
unsigned
long
event
,
void
*
buf
)
{
struct
azx
*
chip
=
container_of
(
nb
,
struct
azx
,
reboot_notifier
);
azx_stop_chip
(
chip
);
return
NOTIFY_OK
;
}
static
void
azx_notifier_register
(
struct
azx
*
chip
)
{
chip
->
reboot_notifier
.
notifier_call
=
azx_halt
;
register_reboot_notifier
(
&
chip
->
reboot_notifier
);
}
static
void
azx_notifier_unregister
(
struct
azx
*
chip
)
{
if
(
chip
->
reboot_notifier
.
notifier_call
)
unregister_reboot_notifier
(
&
chip
->
reboot_notifier
);
}
/*
/*
* destructor
* destructor
*/
*/
...
@@ -1985,6 +2011,8 @@ static int azx_free(struct azx *chip)
...
@@ -1985,6 +2011,8 @@ static int azx_free(struct azx *chip)
{
{
int
i
;
int
i
;
azx_notifier_unregister
(
chip
);
if
(
chip
->
initialized
)
{
if
(
chip
->
initialized
)
{
azx_clear_irq_pending
(
chip
);
azx_clear_irq_pending
(
chip
);
for
(
i
=
0
;
i
<
chip
->
num_streams
;
i
++
)
for
(
i
=
0
;
i
<
chip
->
num_streams
;
i
++
)
...
@@ -2348,6 +2376,7 @@ static int __devinit azx_probe(struct pci_dev *pci,
...
@@ -2348,6 +2376,7 @@ static int __devinit azx_probe(struct pci_dev *pci,
pci_set_drvdata
(
pci
,
card
);
pci_set_drvdata
(
pci
,
card
);
chip
->
running
=
1
;
chip
->
running
=
1
;
power_down_all_codecs
(
chip
);
power_down_all_codecs
(
chip
);
azx_notifier_register
(
chip
);
dev
++
;
dev
++
;
return
err
;
return
err
;
...
...
sound/pci/hda/patch_analog.c
View file @
0552f297
...
@@ -3860,6 +3860,7 @@ static const char *ad1884a_models[AD1884A_MODELS] = {
...
@@ -3860,6 +3860,7 @@ static const char *ad1884a_models[AD1884A_MODELS] = {
static
struct
snd_pci_quirk
ad1884a_cfg_tbl
[]
=
{
static
struct
snd_pci_quirk
ad1884a_cfg_tbl
[]
=
{
SND_PCI_QUIRK
(
0x103c
,
0x3030
,
"HP"
,
AD1884A_MOBILE
),
SND_PCI_QUIRK
(
0x103c
,
0x3030
,
"HP"
,
AD1884A_MOBILE
),
SND_PCI_QUIRK
(
0x103c
,
0x3056
,
"HP"
,
AD1884A_MOBILE
),
SND_PCI_QUIRK
(
0x17aa
,
0x20ac
,
"Thinkpad X300"
,
AD1884A_THINKPAD
),
SND_PCI_QUIRK
(
0x17aa
,
0x20ac
,
"Thinkpad X300"
,
AD1884A_THINKPAD
),
{}
{}
};
};
...
...
sound/pci/hda/patch_sigmatel.c
View file @
0552f297
...
@@ -566,10 +566,8 @@ static int stac92xx_smux_enum_put(struct snd_kcontrol *kcontrol,
...
@@ -566,10 +566,8 @@ static int stac92xx_smux_enum_put(struct snd_kcontrol *kcontrol,
nid
=
codec
->
slave_dig_outs
[
smux_idx
-
1
];
nid
=
codec
->
slave_dig_outs
[
smux_idx
-
1
];
if
(
spec
->
cur_smux
[
smux_idx
]
==
smux
->
num_items
-
1
)
if
(
spec
->
cur_smux
[
smux_idx
]
==
smux
->
num_items
-
1
)
val
=
AMP_OUT_MUTE
;
val
=
AMP_OUT_MUTE
;
if
(
smux_idx
==
0
)
nid
=
spec
->
multiout
.
dig_out_nid
;
else
else
nid
=
codec
->
slave_dig_outs
[
smux_idx
-
1
]
;
val
=
AMP_OUT_UNMUTE
;
/* un/mute SPDIF out */
/* un/mute SPDIF out */
snd_hda_codec_write_cache
(
codec
,
nid
,
0
,
snd_hda_codec_write_cache
(
codec
,
nid
,
0
,
AC_VERB_SET_AMP_GAIN_MUTE
,
val
);
AC_VERB_SET_AMP_GAIN_MUTE
,
val
);
...
...
sound/pci/intel8x0.c
View file @
0552f297
...
@@ -2702,6 +2702,7 @@ static struct snd_pci_quirk intel8x0_clock_list[] __devinitdata = {
...
@@ -2702,6 +2702,7 @@ static struct snd_pci_quirk intel8x0_clock_list[] __devinitdata = {
SND_PCI_QUIRK
(
0x0e11
,
0x008a
,
"AD1885"
,
41000
),
SND_PCI_QUIRK
(
0x0e11
,
0x008a
,
"AD1885"
,
41000
),
SND_PCI_QUIRK
(
0x1028
,
0x00be
,
"AD1885"
,
44100
),
SND_PCI_QUIRK
(
0x1028
,
0x00be
,
"AD1885"
,
44100
),
SND_PCI_QUIRK
(
0x1028
,
0x0177
,
"AD1980"
,
48000
),
SND_PCI_QUIRK
(
0x1028
,
0x0177
,
"AD1980"
,
48000
),
SND_PCI_QUIRK
(
0x1028
,
0x01ad
,
"AD1981B"
,
48000
),
SND_PCI_QUIRK
(
0x1043
,
0x80f3
,
"AD1985"
,
48000
),
SND_PCI_QUIRK
(
0x1043
,
0x80f3
,
"AD1985"
,
48000
),
{
}
/* terminator */
{
}
/* terminator */
};
};
...
...
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