diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-03-14 16:00:43 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-03-14 16:00:43 -0800 |
| commit | 2c4dcfb744a584c7ffec013e6fe51899763f8e65 (patch) | |
| tree | e031050af9abad3cd7823708c1da5580ef50b685 | |
| parent | 90ebbda4316a3fa437f2f868d8fa990200bc6143 (diff) | |
| parent | 909ab438585f6e94f2eb8f09c2c2e89dedf36ab6 (diff) | |
Merge http://linux-sound.bkbits.net/linux-sound
into ppc970.osdl.org:/home/torvalds/v2.5/linux
| -rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 4 | ||||
| -rw-r--r-- | include/sound/ac97_codec.h | 4 | ||||
| -rw-r--r-- | sound/drivers/mpu401/mpu401.c | 216 | ||||
| -rw-r--r-- | sound/pci/ac97/ac97_codec.c | 1 | ||||
| -rw-r--r-- | sound/pci/ac97/ac97_patch.c | 15 | ||||
| -rw-r--r-- | sound/pci/ac97/ac97_patch.h | 1 | ||||
| -rw-r--r-- | sound/pci/au88x0/au88x0.c | 4 | ||||
| -rw-r--r-- | sound/pci/au88x0/au88x0_a3d.c | 2 | ||||
| -rw-r--r-- | sound/pci/au88x0/au88x0_core.c | 4 | ||||
| -rw-r--r-- | sound/pci/au88x0/au88x0_game.c | 9 | ||||
| -rw-r--r-- | sound/pci/intel8x0.c | 17 |
11 files changed, 246 insertions, 31 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index 02a464e4e05e..7ace9d04cb3c 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt @@ -755,8 +755,10 @@ Module parameters port - port number or -1 (disable) irq - IRQ number or -1 (disable) + acpipnp - ACPI PnP detection - 0 = disable, 1 = enable (default) - Module supports multiple devices (max 8). + Module supports multiple devices (max 8) and ACPI PnP. If PnP is not + used (or ACPI not enabled), port and irq must be specified. Module snd-mtpav ---------------- diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 0f27586b8fd0..0113fbebcf92 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -226,10 +226,14 @@ #define AC97_GPIO_LINE2_HL1R 0x8000 /* Opt./ Handset to Line2 relay control (out) */ /* specific - SigmaTel */ +#define AC97_SIGMATEL_OUTSEL 0x64 /* Output Select, STAC9758 */ +#define AC97_SIGMATEL_INSEL 0x66 /* Input Select, STAC9758 */ +#define AC97_SIGMATEL_IOMISC 0x68 /* STAC9758 */ #define AC97_SIGMATEL_ANALOG 0x6c /* Analog Special */ #define AC97_SIGMATEL_DAC2INVERT 0x6e #define AC97_SIGMATEL_BIAS1 0x70 #define AC97_SIGMATEL_BIAS2 0x72 +#define AC97_SIGMATEL_VARIOUS 0x72 /* STAC9758 */ #define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */ #define AC97_SIGMATEL_CIC1 0x76 #define AC97_SIGMATEL_CIC2 0x78 diff --git a/sound/drivers/mpu401/mpu401.c b/sound/drivers/mpu401/mpu401.c index a2c6b0c5b495..7cee8d190a56 100644 --- a/sound/drivers/mpu401/mpu401.c +++ b/sound/drivers/mpu401/mpu401.c @@ -2,6 +2,12 @@ * Driver for generic MPU-401 boards (UART mode only) * Copyright (c) by Jaroslav Kysela <perex@suse.cz> * + * ACPI PnP Copyright (c) 2004 by Clemens Ladisch <clemens@ladisch.de> + * based on 8250_acpi.c + * Copyright (c) 2002-2003 Matthew Wilcox for Hewlett-Packard + * Copyright (C) 2004 Hewlett-Packard Co + * Bjorn Helgaas <bjorn.helgaas@hp.com> + * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,14 +27,17 @@ #include <sound/driver.h> #include <linux/init.h> -#include <linux/wait.h> -#include <linux/sched.h> -#include <linux/slab.h> +#ifdef CONFIG_ACPI_BUS +#include <acpi/acpi_bus.h> +#endif #include <sound/core.h> #include <sound/mpu401.h> #define SNDRV_GET_ID #include <sound/initval.h> -#include <linux/delay.h> + +#ifdef CONFIG_ACPI_BUS +#define USE_ACPI_PNP +#endif MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>"); MODULE_DESCRIPTION("MPU-401 UART"); @@ -38,6 +47,9 @@ MODULE_CLASSES("{sound}"); static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ +#ifdef USE_ACPI_PNP +static int acpipnp[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = 1 }; +#endif static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* MPU-401 port number */ static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* MPU-401 IRQ */ #ifdef CONFIG_X86_PC9800 @@ -53,6 +65,11 @@ MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM_DESC(enable, "Enable MPU-401 device."); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC); +#ifdef USE_ACPI_PNP +MODULE_PARM(acpipnp, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); +MODULE_PARM_DESC(acpipnp, "ACPI PnP detection for MPU-401 device."); +MODULE_PARM_SYNTAX(acpipnp, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC); +#endif MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM_DESC(port, "Port # for MPU-401 device."); MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC); @@ -65,25 +82,107 @@ MODULE_PARM_DESC(pc98ii, "Roland MPU-PC98II support."); MODULE_PARM_SYNTAX(pc98ii, SNDRV_BOOLEAN_FALSE_DESC); #endif -static snd_card_t *snd_mpu401_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR; +#ifndef CONFIG_ACPI_BUS +struct acpi_device; +#endif + +static snd_card_t *snd_mpu401_legacy_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR; + +#ifdef USE_ACPI_PNP + +struct mpu401_resources { + unsigned long port; + int irq; +}; -static int __init snd_card_mpu401_probe(int dev) +static acpi_status __devinit snd_mpu401_acpi_resource(struct acpi_resource *res, + void *data) +{ + struct mpu401_resources *resources = (struct mpu401_resources *)data; + + if (res->id == ACPI_RSTYPE_IRQ) { + if (res->data.irq.number_of_interrupts > 0) { +#ifdef CONFIG_IA64 + resources->irq = acpi_register_irq(res->data.irq.interrupts[0], + res->data.irq.active_high_low, + res->data.irq.edge_level); +#else + resources->irq = res->data.irq.interrupts[0]; +#endif + } + } else if (res->id == ACPI_RSTYPE_IO) { + if (res->data.io.range_length >= 2) { + resources->port = res->data.io.min_base_address; + } + } + return AE_OK; +} + +static int __devinit snd_mpu401_acpi_pnp(int dev, struct acpi_device *device) +{ + struct mpu401_resources res; + acpi_status status; + + res.port = SNDRV_AUTO_PORT; + res.irq = SNDRV_AUTO_IRQ; + status = acpi_walk_resources(device->handle, METHOD_NAME__CRS, + snd_mpu401_acpi_resource, &res); + if (ACPI_FAILURE(status)) + return -ENODEV; + if (res.port == SNDRV_AUTO_PORT || res.irq == SNDRV_AUTO_IRQ) { + snd_printk(KERN_ERR "no port or irq in %s _CRS\n", + acpi_device_bid(device)); + return -ENODEV; + } + port[dev] = res.port; + irq[dev] = res.irq; + return 0; +} + +#endif /* USE_ACPI_PNP */ + +static int __devinit snd_card_mpu401_probe(int dev, struct acpi_device *device) { snd_card_t *card; int err; - if (port[dev] == SNDRV_AUTO_PORT) { - snd_printk("specify port\n"); - return -EINVAL; - } - if (irq[dev] == SNDRV_AUTO_IRQ) { - snd_printk("specify or disable IRQ port\n"); - return -EINVAL; +#ifdef USE_ACPI_PNP + if (!device) { +#endif + if (port[dev] == SNDRV_AUTO_PORT) { + snd_printk(KERN_ERR "specify port\n"); + return -EINVAL; + } + if (irq[dev] == SNDRV_AUTO_IRQ) { + snd_printk(KERN_ERR "specify or disable IRQ port\n"); + return -EINVAL; + } +#ifdef USE_ACPI_PNP } +#endif + +#ifdef USE_ACPI_PNP + if (device && (err = snd_mpu401_acpi_pnp(dev, device)) < 0) + return err; +#endif card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); if (card == NULL) return -ENOMEM; + strcpy(card->driver, "MPU-401 UART"); + strcpy(card->shortname, card->driver); + sprintf(card->longname, "%s at 0x%lx, ", card->shortname, port[dev]); + if (irq[dev] >= 0) { + sprintf(card->longname + strlen(card->longname), "IRQ %d", irq[dev]); + } else { + strcat(card->longname, "polled"); + } +#ifdef USE_ACPI_PNP + if (device) { + strcat(card->longname, ", bus id "); + strlcat(card->longname, acpi_device_bid(device), sizeof(card->longname)); + } +#endif if (snd_mpu401_uart_new(card, 0, #ifdef CONFIG_X86_PC9800 pc98ii[dev] ? MPU401_HW_PC98II : @@ -95,22 +194,67 @@ static int __init snd_card_mpu401_probe(int dev) snd_card_free(card); return -ENODEV; } - strcpy(card->driver, "MPU-401 UART"); - strcpy(card->shortname, card->driver); - sprintf(card->longname, "%s at 0x%lx, ", card->shortname, port[dev]); - if (irq[dev] >= 0) { - sprintf(card->longname + strlen(card->longname), "IRQ %d", irq[dev]); - } else { - strcat(card->longname, "polled"); - } if ((err = snd_card_register(card)) < 0) { snd_card_free(card); return err; } - snd_mpu401_cards[dev] = card; +#ifdef USE_ACPI_PNP + if (device) + acpi_driver_data(device) = card; + else +#endif + snd_mpu401_legacy_cards[dev] = card; return 0; } +#ifdef USE_ACPI_PNP + +static int __devinit snd_mpu401_acpi_add(struct acpi_device *device) +{ + static int dev; + int err; + + for ( ; dev < SNDRV_CARDS; ++dev) { + if (!enable[dev] || !acpipnp[dev]) + continue; + err = snd_card_mpu401_probe(dev, device); + if (err < 0) + return err; + ++dev; + return 0; + } + return -ENODEV; +} + +static int __devexit snd_mpu401_acpi_remove(struct acpi_device *device, + int type) +{ + snd_card_t *card; + + if (!device) + return -EINVAL; + card = (snd_card_t *)acpi_driver_data(device); + if (!card) + return -EINVAL; + + snd_card_disconnect(card); + snd_card_free_in_thread(card); + acpi_driver_data(device) = NULL; + return 0; +} + +static struct acpi_driver snd_mpu401_acpi_driver = { + .name = "MPU-401 Driver", + .class = "mpu401", + .ids = "PNPB006", + .ops = { + .add = snd_mpu401_acpi_add, + .remove = __devexit_p(snd_mpu401_acpi_remove), + }, +}; + +#endif /* USE_ACPI_PNP */ + static int __init alsa_card_mpu401_init(void) { int dev, cards = 0; @@ -118,13 +262,25 @@ static int __init alsa_card_mpu401_init(void) for (dev = 0; dev < SNDRV_CARDS; dev++) { if (!enable[dev]) continue; - if (snd_card_mpu401_probe(dev) >= 0) +#ifdef USE_ACPI_PNP + if (acpipnp[dev] && !acpi_disabled) + continue; +#endif + if (snd_card_mpu401_probe(dev, NULL) >= 0) cards++; } +#ifdef USE_ACPI_PNP + if (!acpi_disabled) + cards += acpi_bus_register_driver(&snd_mpu401_acpi_driver); +#endif if (!cards) { #ifdef MODULE printk(KERN_ERR "MPU-401 device not found or device busy\n"); #endif +#ifdef USE_ACPI_PNP + if (!acpi_disabled) + acpi_bus_unregister_driver(&snd_mpu401_acpi_driver); +#endif return -ENODEV; } return 0; @@ -134,8 +290,12 @@ static void __exit alsa_card_mpu401_exit(void) { int idx; +#ifdef USE_ACPI_PNP + if (!acpi_disabled) + acpi_bus_unregister_driver(&snd_mpu401_acpi_driver); +#endif for (idx = 0; idx < SNDRV_CARDS; idx++) - snd_card_free(snd_mpu401_cards[idx]); + snd_card_free(snd_mpu401_legacy_cards[idx]); } module_init(alsa_card_mpu401_init) @@ -143,22 +303,28 @@ module_exit(alsa_card_mpu401_exit) #ifndef MODULE -/* format is: snd-mpu401=enable,index,id,port,irq */ +/* format is: snd-mpu401=enable,index,id,acpipnp[,pc98ii],port,irq */ static int __init alsa_card_mpu401_setup(char *str) { static unsigned __initdata nr_dev = 0; + int __attribute__ ((__unused__)) pnp = INT_MAX; if (nr_dev >= SNDRV_CARDS) return 0; (void)(get_option(&str,&enable[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 && + get_option(&str,&pnp) == 2 && #ifdef CONFIG_X86_PC9800 get_option(&str,&pc98ii[nr_dev]) == 2 && #endif get_option_long(&str,&port[nr_dev]) == 2 && get_option(&str,&irq[nr_dev]) == 2); +#ifdef USE_ACPI_PNP + if (pnp != INT_MAX) + acpipnp[nr_dev] = pnp; +#endif nr_dev++; return 1; } diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 8cd709fac269..6f94c782458c 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -171,6 +171,7 @@ static const ac97_codec_id_t snd_ac97_codec_ids[] = { { 0x83847650, 0xffffffff, "STAC9750/51", NULL, NULL }, // patch? { 0x83847652, 0xffffffff, "STAC9752/53", NULL, NULL }, // patch? { 0x83847656, 0xffffffff, "STAC9756/57", patch_sigmatel_stac9756, NULL }, +{ 0x83847658, 0xffffffff, "STAC9758/59", patch_sigmatel_stac9758, NULL }, { 0x83847666, 0xffffffff, "STAC9766/67", NULL, NULL }, // patch? { 0, 0, NULL, NULL, NULL } }; diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index fbf889c1db0e..414bc3729451 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c @@ -447,6 +447,21 @@ int patch_sigmatel_stac9756(ac97_t * ac97) return 0; } +int patch_sigmatel_stac9758(ac97_t * ac97) +{ + // patch for SigmaTel + ac97->build_ops = &patch_sigmatel_stac9700_ops; + // turn on stereo speaker, headphone and line-out + snd_ac97_write_cache(ac97, AC97_SIGMATEL_OUTSEL, 0x9040); + // headphone select and boost + snd_ac97_write_cache(ac97, AC97_SIGMATEL_IOMISC, 0x2102); + // enable mic + snd_ac97_write_cache(ac97, AC97_SIGMATEL_INSEL, 0x0203); + // enable stereo mic + snd_ac97_write_cache(ac97, AC97_SIGMATEL_VARIOUS, 0x0001); + return 0; +} + /* * Cirrus Logic CS42xx codecs */ diff --git a/sound/pci/ac97/ac97_patch.h b/sound/pci/ac97/ac97_patch.h index 2cc081a47304..3e78799c593a 100644 --- a/sound/pci/ac97/ac97_patch.h +++ b/sound/pci/ac97/ac97_patch.h @@ -34,6 +34,7 @@ int patch_sigmatel_stac9708(ac97_t * ac97); int patch_sigmatel_stac9721(ac97_t * ac97); int patch_sigmatel_stac9744(ac97_t * ac97); int patch_sigmatel_stac9756(ac97_t * ac97); +int patch_sigmatel_stac9758(ac97_t * ac97); int patch_cirrus_cs4299(ac97_t * ac97); int patch_cirrus_spdif(ac97_t * ac97); int patch_conexant(ac97_t * ac97); diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c index c70c076ad36c..6c917f693019 100644 --- a/sound/pci/au88x0/au88x0.c +++ b/sound/pci/au88x0/au88x0.c @@ -71,6 +71,8 @@ MODULE_DEVICE_TABLE(pci, snd_vortex_ids); static void __devinit snd_vortex_workaround(struct pci_dev *vortex, int fix) { struct pci_dev *via = NULL; + int rc; + /* autodetect if workarounds are required */ while ((via = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8365_1, via))) { @@ -86,8 +88,6 @@ static void __devinit snd_vortex_workaround(struct pci_dev *vortex, int fix) if (fix == 255) return; - int rc; - /* fix vortex latency */ if (fix & 0x01) { if (!(rc = pci_write_config_byte(vortex, 0x40, 0xff))) { diff --git a/sound/pci/au88x0/au88x0_a3d.c b/sound/pci/au88x0/au88x0_a3d.c index f3399b30dd91..2ca305110252 100644 --- a/sound/pci/au88x0/au88x0_a3d.c +++ b/sound/pci/au88x0/au88x0_a3d.c @@ -562,7 +562,7 @@ static void vortex_A3dSourceHw_Initialize(vortex_t * v, int source, int slice) a3dsrc_SetA3DSampleRate(a3dsrc, 0x11); } -int Vort3DRend_Initialize(vortex_t * v, unsigned short mode) +static int Vort3DRend_Initialize(vortex_t * v, unsigned short mode) { v->xt_mode = mode; /* this_14 */ diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c index d91e91acc25f..7ff29b2ccaa7 100644 --- a/sound/pci/au88x0/au88x0_core.c +++ b/sound/pci/au88x0/au88x0_core.c @@ -82,8 +82,8 @@ /* MIXER (CAsp4Mix.s and CAsp4Mixer.s) */ // FIXME: get rid of this. -int mchannels[NR_MIXIN]; -int rampchs[NR_MIXIN]; +static int mchannels[NR_MIXIN]; +static int rampchs[NR_MIXIN]; static void vortex_mixer_en_sr(vortex_t * vortex, int channel) { diff --git a/sound/pci/au88x0/au88x0_game.c b/sound/pci/au88x0/au88x0_game.c index 5c00a46768de..7e7443d3b2b5 100644 --- a/sound/pci/au88x0/au88x0_game.c +++ b/sound/pci/au88x0/au88x0_game.c @@ -37,6 +37,8 @@ #include "au88x0.h" #include <linux/gameport.h> +#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE)) + #define VORTEX_GAME_DWAIT 20 /* 20 ms */ static struct gameport gameport; @@ -119,3 +121,10 @@ static int vortex_gameport_unregister(vortex_t * vortex) gameport_unregister_port(vortex->gameport); return 0; } + +#else + +static inline int vortex_gameport_register(vortex_t * vortex) { return 0; } +static inline int vortex_gameport_unregister(vortex_t * vortex) { return 0; } + +#endif diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index a27d8ebdb63c..a4476c5cfecd 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -55,6 +55,8 @@ MODULE_DEVICES("{{Intel,82801AA-ICH}," "{Intel,82801CA-ICH3}," "{Intel,82801DB-ICH4}," "{Intel,ICH5}," + "{Intel,ICH6}," + "{Intel,6300ESB}," "{Intel,MX440}," "{SiS,SI7012}," "{NVidia,nForce Audio}," @@ -131,6 +133,12 @@ MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED ",allows:{{0},{0x330},{0x300}},dialog #ifndef PCI_DEVICE_ID_INTEL_ICH5 #define PCI_DEVICE_ID_INTEL_ICH5 0x24d5 #endif +#ifndef PCI_DEVICE_ID_INTEL_ESB_5 +#define PCI_DEVICE_ID_INTEL_ESB_5 0x25a6 +#endif +#ifndef PCI_DEVICE_ID_INTEL_ICH6_3 +#define PCI_DEVICE_ID_INTEL_ICH6_3 0x266e +#endif #ifndef PCI_DEVICE_ID_SI_7012 #define PCI_DEVICE_ID_SI_7012 0x7012 #endif @@ -198,6 +206,11 @@ DEFINE_REGSET(SP, 0x60); /* SPDIF out */ /* global block */ #define ICH_REG_GLOB_CNT 0x2c /* dword - global control */ +#define ICH_PCM_SPDIF_MASK 0xc0000000 /* s/pdif pcm slot mask (ICH4) */ +#define ICH_PCM_SPDIF_NONE 0x00000000 /* reserved - undefined */ +#define ICH_PCM_SPDIF_78 0x40000000 /* s/pdif pcm on slots 7&8 */ +#define ICH_PCM_SPDIF_69 0x80000000 /* s/pdif pcm on slots 6&9 */ +#define ICH_PCM_SPDIF_1011 0xc0000000 /* s/pdif pcm on slots 10&11 */ #define ICH_PCM_20BIT 0x00400000 /* 20-bit samples (ICH4) */ #define ICH_PCM_246_MASK 0x00300000 /* 6 channels (not all chips) */ #define ICH_PCM_6 0x00200000 /* 6 channels (not all chips) */ @@ -442,6 +455,8 @@ static struct pci_device_id snd_intel8x0_ids[] = { { 0x8086, 0x2485, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* ICH3 */ { 0x8086, 0x24c5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL_ICH4 }, /* ICH4 */ { 0x8086, 0x24d5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL_ICH4 }, /* ICH5 */ + { 0x8086, 0x25a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL_ICH4 }, /* ESB */ + { 0x8086, 0x266e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL_ICH4 }, /* ICH6 */ { 0x8086, 0x7195, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 440MX */ { 0x1039, 0x7012, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_SIS }, /* SI7012 */ { 0x10de, 0x01b1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE }, /* NFORCE */ @@ -2590,6 +2605,8 @@ static struct shortname_table { { PCI_DEVICE_ID_INTEL_ICH3, "Intel 82801CA-ICH3" }, { PCI_DEVICE_ID_INTEL_ICH4, "Intel 82801DB-ICH4" }, { PCI_DEVICE_ID_INTEL_ICH5, "Intel ICH5" }, + { PCI_DEVICE_ID_INTEL_ESB_5, "Intel 6300ESB" }, + { PCI_DEVICE_ID_INTEL_ICH6_3, "Intel ICH6" }, { PCI_DEVICE_ID_SI_7012, "SiS SI7012" }, { PCI_DEVICE_ID_NVIDIA_MCP_AUDIO, "NVidia nForce" }, { PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO, "NVidia nForce2" }, |
