On Thu, Apr 20, 2006 at 04:00:58PM +0000, the git-commits list sent
me:
> Subject: Re: [PATCH] MSI-K8T-Neo2-Fir OnboardSound and additional Soundcard
> commit 7daa0c4f51897d5d956a62a2bac438e3b58d85dc
> [PATCH] MSI-K8T-Neo2-Fir OnboardSound and additional Soundcard
> On the MSI-K8T-NEO2 FIR ( Athlon-64, Socket 939 with VIA-K8T800- Chipset
> and onboard Sound,... ) the BIOS lets you choose "DISABLED" or "AUTO" for
> the On-Board Sound Device.
[...]
> But how to ensure that the code is executed ONLY on excactly this kind of
> boards (not any other with similar Chipset)?
The patch doesn't as-is, which means it runs on a lot of hardware
where it shoudln't.
I'm a confused lost as to why this was acked/merged when:
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, k8t_sound_hostbridge);
clearly it will run for a wide-variety of hardware. I think the quirk
should probably also check DMI tables or similar to detect the
board/BIOS version that it's intended for. Certainly that would make
this safer.
I don't have access to this hardware so how about something like this
for now?
---
Be more selective when running the MSI-K8T-Neo2Fir soundcard PCI quirk
so as not to run this on hardware where it's probably not needed.
Signed-off-by: Chris Wedgwood <[email protected]>
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index d378478..daa17fa 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -878,27 +878,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
* when a PCI-Soundcard is added. The BIOS only gives Options
* "Disabled" and "AUTO". This Quirk Sets the corresponding
* Register-Value to enable the Soundcard.
+ *
+ * FIXME: Presently this quirk will run on anything that has an 8237
+ * which isn't correct, we need to check DMI tables or something in
+ * order to make sure it only runs on the MSI-K8T-Neo2Fir. Because it
+ * runs everywhere at present we suppress the printk output in most
+ * irrelevant cases.
*/
static void __init k8t_sound_hostbridge(struct pci_dev *dev)
{
unsigned char val;
- printk(KERN_INFO "PCI: Quirk-MSI-K8T Soundcard On\n");
pci_read_config_byte(dev, 0x50, &val);
if (val == 0x88 || val == 0xc8) {
+ /* Assume it's probably a MSI-K8T-Neo2Fir */
+ printk(KERN_INFO "PCI: MSI-K8T-Neo2Fir, attempting to turn soundcard ON\n");
pci_write_config_byte(dev, 0x50, val & (~0x40));
/* Verify the Change for Status output */
pci_read_config_byte(dev, 0x50, &val);
if (val & 0x40)
- printk(KERN_INFO "PCI: MSI-K8T soundcard still off\n");
+ printk(KERN_INFO "PCI: MSI-K8T-Neo2Fir, soundcard still off\n");
else
- printk(KERN_INFO "PCI: MSI-K8T soundcard on\n");
- } else {
- printk(KERN_INFO "PCI: Unexpected Value in PCI-Register: "
- "no Change!\n");
+ printk(KERN_INFO "PCI: MSI-K8T-Neo2Fir, soundcard on\n");
}
-
}
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, k8t_sound_hostbridge);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]