snd_printk("unable to request IRQ %d\n", pci->irq); 
snd_printk(KERN_ERR "unable to request IRQ %d\n", pci->irq); 
static int __devinit snd_rme9652_create(snd_card_t *card,				     rme9652_t *rme9652,				     int precise_ptr){	struct pci_dev *pci = rme9652->pci;	int err;	int status;	unsigned short rev;	rme9652->irq = -1;	rme9652->card = card;	pci_read_config_word(rme9652->pci, PCI_CLASS_REVISION, &rev);	switch (rev & 0xff) {	case 3:	case 4:	case 8:	case 9:		break;	default:		/* who knows? */		return -ENODEV;	}	if ((err = pci_enable_device(pci)) < 0)		return err;	spin_lock_init(&rme9652->lock);	if ((err = pci_request_regions(pci, "rme9652")) < 0)		return err;	rme9652->port = pci_resource_start(pci, 0);	rme9652->iobase = ioremap_nocache(rme9652->port, RME9652_IO_EXTENT);	if (rme9652->iobase == NULL) {		snd_printk("unable to remap region 0x%lx-0x%lx\n", rme9652->port, rme9652->port + RME9652_IO_EXTENT - 1);		return -EBUSY;	}		if (request_irq(pci->irq, snd_rme9652_interrupt, SA_INTERRUPT|SA_SHIRQ, "rme9652", (void *)rme9652)) {		snd_printk("unable to request IRQ %d\n", pci->irq);		return -EBUSY;	}	rme9652->irq = pci->irq;	rme9652->precise_ptr = precise_ptr;	/* Determine the h/w rev level of the card. This seems like	   a particularly kludgy way to encode it, but its what RME	   chose to do, so we follow them ...	*/	status = rme9652_read(rme9652, RME9652_status_register);	if (rme9652_decode_spdif_rate(status&RME9652_F) == 1) {		rme9652->hw_rev = 15;	} else {		rme9652->hw_rev = 11;	}	/* Differentiate between the standard Hammerfall, and the	   "Light", which does not have the expansion board. This	   method comes from information received from Mathhias	   Clausen at RME. Display the EEPROM and h/w revID where	   relevant.  	*/	switch (rev) {	case 8: /* original eprom */		strcpy(card->driver, "RME9636");		if (rme9652->hw_rev == 15) {			rme9652->card_name = "RME Digi9636 (Rev 1.5)";		} else {			rme9652->card_name = "RME Digi9636";		}		rme9652->ss_channels = RME9636_NCHANNELS;		break;	case 9: /* W36_G EPROM */		strcpy(card->driver, "RME9636");		rme9652->card_name = "RME Digi9636 (Rev G)";		rme9652->ss_channels = RME9636_NCHANNELS;		break;	case 4: /* W52_G EPROM */		strcpy(card->driver, "RME9652");		rme9652->card_name = "RME Digi9652 (Rev G)";		rme9652->ss_channels = RME9652_NCHANNELS;		break;	case 3: /* original eprom */		strcpy(card->driver, "RME9652");		if (rme9652->hw_rev == 15) {			rme9652->card_name = "RME Digi9652 (Rev 1.5)";		} else {			rme9652->card_name = "RME Digi9652";		}		rme9652->ss_channels = RME9652_NCHANNELS;		break;	}	rme9652->ds_channels = (rme9652->ss_channels - 2) / 2 + 2;	pci_set_master(rme9652->pci);	if ((err = snd_rme9652_initialize_memory(rme9652)) < 0) {		return err;	}	if ((err = snd_rme9652_create_pcm(card, rme9652)) < 0) {		return err;	}	if ((err = snd_rme9652_create_controls(card, rme9652)) < 0) {		return err;	}	snd_rme9652_proc_init(rme9652);	rme9652->last_spdif_sample_rate = -1;	rme9652->last_adat_sample_rate = -1;	rme9652->playback_pid = -1;	rme9652->capture_pid = -1;	rme9652->capture_substream = NULL;	rme9652->playback_substream = NULL;	snd_rme9652_set_defaults(rme9652);	if (rme9652->hw_rev == 15) {		rme9652_initialize_spdif_receiver (rme9652);	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/99b359ba10a582148c6725f428a33ba5356dd993/rme9652.c/clean/sound/pci/rme9652/rme9652.c