rpms/kernel/devel linux-2.6-alsa-ac97-whitelist-AD1981B.patch, NONE, 1.1 linux-2.6-alsa-ac97-whitelist.patch, NONE, 1.1 TODO, 1.42, 1.43 kernel.spec, 1.1119, 1.1120
Dave Jones
davej at fedoraproject.org
Thu Nov 6 20:42:17 UTC 2008
- Previous message (by thread): rpms/fedora-release/F-10 .cvsignore, 1.36, 1.37 fedora-release.spec, 1.70, 1.71 sources, 1.58, 1.59
- Next message (by thread): rpms/sip-redirect/EL-4 sip-redirect.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: davej
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24518
Modified Files:
TODO kernel.spec
Added Files:
linux-2.6-alsa-ac97-whitelist-AD1981B.patch
linux-2.6-alsa-ac97-whitelist.patch
Log Message:
alsa: implement ac97_clock whitelist (#441087)
linux-2.6-alsa-ac97-whitelist-AD1981B.patch:
--- NEW FILE linux-2.6-alsa-ac97-whitelist-AD1981B.patch ---
>From a12f5e52a654541613b7e4c34eea666662c507e4 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess at hadess.net>
Date: Wed, 29 Oct 2008 12:59:05 +0000
Subject: [PATCH] Add whitelist for AD1981B for AC97 clock detection
alsa-info.sh output at:
https://bugzilla.redhat.com/show_bug.cgi?id=441087#c49
Machine is a Dell Optiplex GX620
---
sound/pci/intel8x0.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index c88d1ea..19d3391 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -2702,6 +2702,7 @@ static struct snd_pci_quirk intel8x0_clock_list[] __devinitdata = {
SND_PCI_QUIRK(0x0e11, 0x008a, "AD1885", 41000),
SND_PCI_QUIRK(0x1028, 0x00be, "AD1885", 44100),
SND_PCI_QUIRK(0x1028, 0x0177, "AD1980", 48000),
+ SND_PCI_QUIRK(0x1028, 0x01ad, "AD1981B", 48000),
SND_PCI_QUIRK(0x1043, 0x80f3, "AD1985", 48000),
{ } /* terminator */
};
--
1.6.0.3
linux-2.6-alsa-ac97-whitelist.patch:
--- NEW FILE linux-2.6-alsa-ac97-whitelist.patch ---
commit 2b3b5485aa96d18b0025dfb2bc92c824dc81a780
Author: Jaroslav Kysela <perex at perex.cz>
Date: Fri Aug 29 11:29:39 2008 +0200
ALSA: intel8x0: implement ac97_clock whitelist
The AC97 clock detection is not accurate in some cases. This patch adds
an initial whitelist for audio devices gathered from RedHat's bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=441087
As a side effect, white-listing might speedup kernel booting (AC97 clock
measuring code is not activated).
Signed-off-by: Jaroslav Kysela <perex at perex.cz>
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 73ad589..c8f5148 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -83,7 +83,7 @@ MODULE_PARM_DESC(index, "Index value for Intel i8x0 soundcard.");
module_param(id, charp, 0444);
MODULE_PARM_DESC(id, "ID string for Intel i8x0 soundcard.");
module_param(ac97_clock, int, 0444);
-MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (0 = auto-detect).");
+MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (0 = whitelist + auto-detect, 1 = force autodetect).");
module_param(ac97_quirk, charp, 0444);
MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
module_param(buggy_semaphore, bool, 0444);
@@ -2692,6 +2692,38 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
snd_ac97_update_power(chip->ac97[0], AC97_PCM_FRONT_DAC_RATE, 0);
}
+struct intel8x0_clock_list {
+ unsigned short subvendor;
+ unsigned short subdevice;
+ unsigned int rate;
+};
+
+static struct intel8x0_clock_list intel8x0_clock_list[] __devinitdata = {
+ { 0x0e11, 0x008a, 41000 }, /* Analog Devices AD1885 */
+ { 0x1028, 0x00be, 44100 }, /* Analog Devices AD1885 */
+ { 0x1028, 0x0177, 48000 }, /* Analog Devices AD1980 */
+ { 0x1043, 0x80f3, 48000 }, /* Analog Devices AD1985 */
+ { 0x0000, 0x0000, 00000 } /* terminator */
+};
+
+static int __devinit intel8x0_in_clock_list(struct intel8x0 *chip)
+{
+ struct pci_dev *pci = chip->pci;
+ struct intel8x0_clock_list *wl;
+
+ for (wl = intel8x0_clock_list; wl->subvendor; wl++) {
+ if (wl->subvendor == pci->subsystem_vendor &&
+ wl->subdevice == pci->subsystem_device) {
+ printk(KERN_INFO "intel8x0: white list rate for %04x:%04x is %i\n",
+ pci->subsystem_vendor,
+ pci->subsystem_device, wl->rate);
+ chip->ac97_bus->clock = wl->rate;
+ return 1;
+ }
+ }
+ return 0;
+}
+
#ifdef CONFIG_PROC_FS
static void snd_intel8x0_proc_read(struct snd_info_entry * entry,
struct snd_info_buffer *buffer)
@@ -3087,8 +3119,14 @@ static int __devinit snd_intel8x0_probe(struct pci_dev *pci,
"%s with %s at irq %i", card->shortname,
snd_ac97_get_short_name(chip->ac97[0]), chip->irq);
- if (! ac97_clock)
- intel8x0_measure_ac97_clock(chip);
+ if (ac97_clock == 0 || ac97_clock == 1) {
+ if (ac97_clock == 0) {
+ if (intel8x0_in_clock_list(chip) == 0)
+ intel8x0_measure_ac97_clock(chip);
+ } else {
+ intel8x0_measure_ac97_clock(chip);
+ }
+ }
if ((err = snd_card_register(card)) < 0) {
snd_card_free(card);
commit d695e4ea860fc1cbe1e4b101af4e0450219f2db9
Author: Takashi Iwai <tiwai at suse.de>
Date: Mon Sep 1 14:25:08 2008 +0200
ALSA: intel8x0 - use snd_pci_quirk for clock list
Signed-off-by: Takashi Iwai <tiwai at suse.de>
Signed-off-by: Jaroslav Kysela <perex at perex.cz>
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index c8f5148..f7b4d0c 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -2692,36 +2692,26 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
snd_ac97_update_power(chip->ac97[0], AC97_PCM_FRONT_DAC_RATE, 0);
}
-struct intel8x0_clock_list {
- unsigned short subvendor;
- unsigned short subdevice;
- unsigned int rate;
-};
-
-static struct intel8x0_clock_list intel8x0_clock_list[] __devinitdata = {
- { 0x0e11, 0x008a, 41000 }, /* Analog Devices AD1885 */
- { 0x1028, 0x00be, 44100 }, /* Analog Devices AD1885 */
- { 0x1028, 0x0177, 48000 }, /* Analog Devices AD1980 */
- { 0x1043, 0x80f3, 48000 }, /* Analog Devices AD1985 */
- { 0x0000, 0x0000, 00000 } /* terminator */
+static struct snd_pci_quirk intel8x0_clock_list[] __devinitdata = {
+ SND_PCI_QUIRK(0x0e11, 0x008a, "AD1885", 41000),
+ SND_PCI_QUIRK(0x1028, 0x00be, "AD1885", 44100),
+ SND_PCI_QUIRK(0x1028, 0x0177, "AD1980", 48000),
+ SND_PCI_QUIRK(0x1043, 0x80f3, "AD1985", 48000),
+ { } /* terminator */
};
static int __devinit intel8x0_in_clock_list(struct intel8x0 *chip)
{
struct pci_dev *pci = chip->pci;
- struct intel8x0_clock_list *wl;
-
- for (wl = intel8x0_clock_list; wl->subvendor; wl++) {
- if (wl->subvendor == pci->subsystem_vendor &&
- wl->subdevice == pci->subsystem_device) {
- printk(KERN_INFO "intel8x0: white list rate for %04x:%04x is %i\n",
- pci->subsystem_vendor,
- pci->subsystem_device, wl->rate);
- chip->ac97_bus->clock = wl->rate;
- return 1;
- }
- }
- return 0;
+ const struct snd_pci_quirk *wl;
+
+ wl = snd_pci_quirk_lookup(pci, intel8x0_clock_list);
+ if (!wl)
+ return 0;
+ printk(KERN_INFO "intel8x0: white list rate for %04x:%04x is %i\n",
+ pci->subsystem_vendor, pci->subsystem_device, wl->value);
+ chip->ac97_bus->clock = wl->value;
+ return 1;
}
#ifdef CONFIG_PROC_FS
Index: TODO
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/TODO,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- TODO 5 Nov 2008 19:23:09 -0000 1.42
+++ TODO 6 Nov 2008 20:41:46 -0000 1.43
@@ -211,3 +211,12 @@
linux-2.6-selinux-empty-tty-files.patch
Sent upstream. In linus 37dd0bd04a3240d2922786d501e2f12cec858fbf
+
+linux-2.6-alsa-ac97-whitelist.patch
+ 2b3b5485aa96d18b0025dfb2bc92c824dc81a780 from 2.6.28
+ d695e4ea860fc1cbe1e4b101af4e0450219f2db9 from 2.6.28
+
+linux-2.6-alsa-ac97-whitelist-AD1981B.patch
+ https://bugzilla.redhat.com/show_bug.cgi?id=441087
+ should be pushed upstream
+
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1119
retrieving revision 1.1120
diff -u -r1.1119 -r1.1120
--- kernel.spec 6 Nov 2008 20:00:37 -0000 1.1119
+++ kernel.spec 6 Nov 2008 20:41:46 -0000 1.1120
@@ -646,6 +646,9 @@
Patch700: linux-2.6-nfs-client-mounts-hang.patch
+Patch800: linux-2.6-alsa-ac97-whitelist.patch
+Patch801: linux-2.6-alsa-ac97-whitelist-AD1981B.patch
+
Patch1101: linux-2.6-default-mmf_dump_elf_headers.patch
Patch1515: linux-2.6.27-lirc.patch
Patch1520: linux-2.6-hdpvr.patch
@@ -1270,6 +1273,10 @@
# NFS Client mounts hang when exported directory do not exist
ApplyPatch linux-2.6-nfs-client-mounts-hang.patch
+# implement whitelist for ac97
+ApplyPatch linux-2.6-alsa-ac97-whitelist.patch
+ApplyPatch linux-2.6-alsa-ac97-whitelist-AD1981B.patch
+
# build id related enhancements
ApplyPatch linux-2.6-default-mmf_dump_elf_headers.patch
@@ -1924,6 +1931,9 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Thu Nov 06 2008 Dave Jones <davej at redhat.com>
+- alsa: implement ac97_clock whitelist (#441087)
+
* Wed Nov 05 2008 John W. Linville <linville at redhat.com> 2.6.27.4-83
- Re-modularize mac80211 component (#470143)
- Previous message (by thread): rpms/fedora-release/F-10 .cvsignore, 1.36, 1.37 fedora-release.spec, 1.70, 1.71 sources, 1.58, 1.59
- Next message (by thread): rpms/sip-redirect/EL-4 sip-redirect.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list