snd_printk("invalid device id 0x%x\n", pci->device); 
snd_printk(KERN_ERR "invalid device id 0x%x\n", pci->device); 
static int __devinit snd_nm256_probe(struct pci_dev *pci,				     const struct pci_device_id *pci_id){	snd_card_t *card;	nm256_t *chip;	int err;	unsigned int xbuffer_top;	struct nm256_quirk *q;	u16 subsystem_vendor, subsystem_device;	pci_read_config_word(pci, PCI_SUBSYSTEM_VENDOR_ID, &subsystem_vendor);	pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &subsystem_device);	for (q = nm256_quirks; q->vendor; q++) {		if (q->vendor == subsystem_vendor && q->device == subsystem_device) {			switch (q->type) {			case NM_BLACKLISTED:				printk(KERN_INFO "nm256: The device is blacklisted.  Loading stopped\n");				return -ENODEV;			case NM_RESET_WORKAROUND_2:				reset_workaround_2 = 1;				/* Fall-through */			case NM_RESET_WORKAROUND:				reset_workaround = 1;				break;			}		}	}	card = snd_card_new(index, id, THIS_MODULE, 0);	if (card == NULL)		return -ENOMEM;	switch (pci->device) {	case PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO:		strcpy(card->driver, "NM256AV");		break;	case PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO:		strcpy(card->driver, "NM256ZX");		break;	case PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO:		strcpy(card->driver, "NM256XL+");		break;	default:		snd_printk("invalid device id 0x%x\n", pci->device);		snd_card_free(card);		return -EINVAL;	}	if (vaio_hack)		xbuffer_top = 0x25a800;	/* this avoids conflicts with XFree86 server */	else		xbuffer_top = buffer_top;	if (playback_bufsize < 4)		playback_bufsize = 4;	if (playback_bufsize > 128)		playback_bufsize = 128;	if (capture_bufsize < 4)		capture_bufsize = 4;	if (capture_bufsize > 128)		capture_bufsize = 128;	if ((err = snd_nm256_create(card, pci,				    playback_bufsize * 1024, /* in bytes */				    capture_bufsize * 1024,  /* in bytes */				    force_ac97,				    xbuffer_top,				    use_cache,				    &chip)) < 0) {		snd_card_free(card);		return err;	}	if (reset_workaround) {		snd_printdd(KERN_INFO "nm256: reset_workaround activated\n");		chip->reset_workaround = 1;	}	if (reset_workaround_2) {		snd_printdd(KERN_INFO "nm256: reset_workaround_2 activated\n");		chip->reset_workaround_2 = 1;	}	if ((err = snd_nm256_pcm(chip, 0)) < 0 ||	    (err = snd_nm256_mixer(chip)) < 0) {		snd_card_free(card);		return err;	}	sprintf(card->shortname, "NeoMagic %s", card->driver);	sprintf(card->longname, "%s at 0x%lx & 0x%lx, irq %d",		card->shortname,		chip->buffer_addr, chip->cport_addr, chip->irq);	if ((err = snd_card_register(card)) < 0) {		snd_card_free(card);		return err;	}	pci_set_drvdata(pci, card);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/99b359ba10a582148c6725f428a33ba5356dd993/nm256.c/clean/sound/pci/nm256/nm256.c