From 437567533ae7f89726379d7baa0ae90f191cfef0 Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Tue, 7 Feb 2006 18:19:09 -0800 Subject: [PATCH] Add x86_64 lapic fix for broken BIOS, and emu10k1 driver mixer fixes both fwd from Daniel Drake. --- ...fix-the-confliction-of-front-control.patch | 33 ++++++++++++ queue/series | 2 + ...c-ids-when-they-are-disabled-in-madt.patch | 51 +++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 queue/emu10k1-fix-the-confliction-of-front-control.patch create mode 100644 queue/x86_64-dont-record-local-apic-ids-when-they-are-disabled-in-madt.patch diff --git a/queue/emu10k1-fix-the-confliction-of-front-control.patch b/queue/emu10k1-fix-the-confliction-of-front-control.patch new file mode 100644 index 00000000000..961767ee464 --- /dev/null +++ b/queue/emu10k1-fix-the-confliction-of-front-control.patch @@ -0,0 +1,33 @@ +From stable-bounces@linux.kernel.org Tue Feb 7 03:38:03 2006 +Date: Tue, 07 Feb 2006 11:33:51 +0000 +From: Daniel Drake +To: stable@kernel.org +Cc: tiwai@suse.de +Subject: [ALSA] emu10k1 - Fix the confliction of 'Front' control + +From: Takashi Iwai + +Modules: EMU10K1/EMU10K2 driver + +Fix the confliction of 'Front' controls on models with STAC9758 codec. + +Signed-off-by: Takashi Iwai +Signed-off-by: Chris Wright +--- + + sound/pci/emu10k1/emumixer.c | 2 ++ + 1 files changed, 2 insertions(+) + +Index: linux-2.6.15.3/sound/pci/emu10k1/emumixer.c +=================================================================== +--- linux-2.6.15.3.orig/sound/pci/emu10k1/emumixer.c ++++ linux-2.6.15.3/sound/pci/emu10k1/emumixer.c +@@ -750,6 +750,8 @@ int __devinit snd_emu10k1_mixer(emu10k1_ + "Master Mono Playback Volume", + "PCM Out Path & Mute", + "Mono Output Select", ++ "Front Playback Switch", ++ "Front Playback Volume", + "Surround Playback Switch", + "Surround Playback Volume", + "Center Playback Switch", diff --git a/queue/series b/queue/series index 48c634c5b90..970854b3b6f 100644 --- a/queue/series +++ b/queue/series @@ -17,3 +17,5 @@ fixed-hardware-rx-checksum-handling.patch x86_64-let-impossible-cpus-point-to-reference-per-cpu-data.patch x86_64-clear-more-state-when-ignoring-empty-node-in-srat-parsing.patch bridge-netfilter-races-on-device-removal.patch +emu10k1-fix-the-confliction-of-front-control.patch +x86_64-dont-record-local-apic-ids-when-they-are-disabled-in-madt.patch diff --git a/queue/x86_64-dont-record-local-apic-ids-when-they-are-disabled-in-madt.patch b/queue/x86_64-dont-record-local-apic-ids-when-they-are-disabled-in-madt.patch new file mode 100644 index 00000000000..f6724e157fe --- /dev/null +++ b/queue/x86_64-dont-record-local-apic-ids-when-they-are-disabled-in-madt.patch @@ -0,0 +1,51 @@ +From stable-bounces@linux.kernel.org Tue Feb 7 03:41:10 2006 +Date: Tue, 07 Feb 2006 11:37:09 +0000 +From: Daniel Drake +To: stable@kernel.org +Cc: ashok.raj@intel.com +Subject: [PATCH] x86_64: Dont record local apic ids when they are disabled in MADT + +From: Ashok Raj + +Some broken BIOS's had processors disabled, but +same apic id as a valid processor. This causes +acpi_processor_start() to think this disabled +cpu is ok, and croak. So we dont record bad +apicid's anymore. + +http://bugzilla.kernel.org/show_bug.cgi?id=5930 + +Signed-off-by: Ashok Raj +Signed-off-by: Andi Kleen +Signed-off-by: Linus Torvalds +Signed-off-by: Chris Wright +--- + + arch/i386/kernel/acpi/boot.c | 13 ++++++++++--- + 1 files changed, 10 insertions(+), 3 deletions(-) + +Index: linux-2.6.15.3/arch/i386/kernel/acpi/boot.c +=================================================================== +--- linux-2.6.15.3.orig/arch/i386/kernel/acpi/boot.c ++++ linux-2.6.15.3/arch/i386/kernel/acpi/boot.c +@@ -248,10 +248,17 @@ acpi_parse_lapic(acpi_table_entry_header + + acpi_table_print_madt_entry(header); + +- /* Register even disabled CPUs for cpu hotplug */ +- +- x86_acpiid_to_apicid[processor->acpi_id] = processor->id; ++ /* Record local apic id only when enabled */ ++ if (processor->flags.enabled) ++ x86_acpiid_to_apicid[processor->acpi_id] = processor->id; + ++ /* ++ * We need to register disabled CPU as well to permit ++ * counting disabled CPUs. This allows us to size ++ * cpus_possible_map more accurately, to permit ++ * to not preallocating memory for all NR_CPUS ++ * when we use CPU hotplug. ++ */ + mp_register_lapic(processor->id, /* APIC ID */ + processor->flags.enabled); /* Enabled? */ + -- 2.47.3