mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-26 20:44:32 +08:00
[PATCH] PCI: MSI-K8T-Neo2-Fir: run only where needed
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 <cw@f00f.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
d71374dafb
commit
bd91fde952
@ -889,27 +889,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82375, quirk_e
|
|||||||
* when a PCI-Soundcard is added. The BIOS only gives Options
|
* when a PCI-Soundcard is added. The BIOS only gives Options
|
||||||
* "Disabled" and "AUTO". This Quirk Sets the corresponding
|
* "Disabled" and "AUTO". This Quirk Sets the corresponding
|
||||||
* Register-Value to enable the Soundcard.
|
* 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)
|
static void __init k8t_sound_hostbridge(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
unsigned char val;
|
unsigned char val;
|
||||||
|
|
||||||
printk(KERN_INFO "PCI: Quirk-MSI-K8T Soundcard On\n");
|
|
||||||
pci_read_config_byte(dev, 0x50, &val);
|
pci_read_config_byte(dev, 0x50, &val);
|
||||||
if (val == 0x88 || val == 0xc8) {
|
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));
|
pci_write_config_byte(dev, 0x50, val & (~0x40));
|
||||||
|
|
||||||
/* Verify the Change for Status output */
|
/* Verify the Change for Status output */
|
||||||
pci_read_config_byte(dev, 0x50, &val);
|
pci_read_config_byte(dev, 0x50, &val);
|
||||||
if (val & 0x40)
|
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
|
else
|
||||||
printk(KERN_INFO "PCI: MSI-K8T soundcard on\n");
|
printk(KERN_INFO "PCI: MSI-K8T-Neo2Fir, soundcard on\n");
|
||||||
} else {
|
|
||||||
printk(KERN_INFO "PCI: Unexpected Value in PCI-Register: "
|
|
||||||
"no Change!\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, k8t_sound_hostbridge);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, k8t_sound_hostbridge);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user