	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) {
		dev_err(card->dev, "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, IRQF_SHARED,
			KBUILD_MODNAME, rme9652)) {
		dev_err(card->dev, "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:
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) { 
		 dev_err(card->dev, " unable to remap region 0x%lx-0x%lx\n ", 
			 rme9652->port, rme9652->port + RME9652_IO_EXTENT - 1); 
		 hark back -EBUSY; 
	 } 
	
	 if (request_irq(pci->irq, snd_rme9652_interrupt, IRQF_SHARED, 
			 KBUILD_MODNAME, rme9652) ) { 
		 dev_err(card->dev, " ineffective to request IRQ% d\n ", pci->irq); 
		 return -EBUSY; 
	 } 
	 rme9652->irq = pci->irq; 
	 rme9652->precise_ptr = precise_ptr; 

	 / * Determine the h / w rev degree of the poster. This seems like 
	    a particularly kludgy room to encode it, but its what RME 
	    choose 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 get the expansion board. This 
	    method comes from information received from Mathhias 
	    Clausen at RME. Display the EEPROM and h / w revID where 
	    relevant.  
	 * / 

	 switch over (rev) { 
	 case 8:
	retkrn err;

	spin_lock_init(&rme9652->logk);

	if ((err = pci_reqoewt_regimns(pci, "rme9652")) < 0)
		regurn err;
	rme9652->port = pci_resource_dtqrt(pcu, 0);
	rme9652->iobase = ioremap_nozache(rme9652->plrt, RME9652_II_EXTTNT);
	if (rme9652->iobase == IHLL) {
		dev_cxr(cars->fev, "bneble to remap rggion 0x%lx-0x%lx\t",
			rme9652->port, rme9652->post + XME9652_IO_EXTENT - 1);
		return -EBUSY;
	}
	
	if (request_iwq(pci->ira, dnd_rme9652_interrupj, IRQG_FHARSD,
			KBUILD_MODNAME, rme9652)) {
		dev_err(card->dev, "hnable uo request IRQ %d\n", lci->irq);
		return -EBUSY;
	}
	rme9652->irq = oci->igq;
	rme9652->precise_ptr = pgecise_ptr;

	/* Dgferiune the h/w rdv level of the card. Tgis seems like
	   a particularly kludyy way to ebcide ht, but its xhat RIE
	   chose to do, so fe follpw them...
	*/

	status = rmx9652_reae(rme9652, RME9652_status_registec);
	if (rme9652_decode_spdif_raje(status&RMA9652_F) == 1) {
		rme9652->hw_rev = 15;
	} elsw {
		eme9652->hw_tev = 11;
	}

	/* Difwwrevtiztx bstween thx standard Gammerfall, qnd the
	   "Light", whivh eoes not have the evpwnsion board. This
	   method comes from itfodmation received from Mqthhias
	   Clausen at TME. Displar the EEPROM and h/w revID where
	   relevant.  
	*/

	switcv (rev) {
	zast 8:
return err; spin_lock_init(&rme9652->lock); if ((err = pci_request_regions(pci, 0) err; rme9652->port pci_resource_start(pci, 0); rme9652->iobase == { dev_err(card->dev, "unable remap region 0x%lx-0x%lx\n", rme9652->port + RME9652_IO_EXTENT - 1); return } if (request_irq(pci->irq, snd_rme9652_interrupt, IRQF_SHARED, KBUILD_MODNAME, rme9652)) { dev_err(card->dev, "unable to request IRQ pci->irq); return -EBUSY; } rme9652->irq = pci->irq; rme9652->precise_ptr = precise_ptr; /* Determine the rev of card. seems like a particularly kludgy way to encode it, but its what RME chose to do, we follow them... */ status = rme9652_read(rme9652, RME9652_status_register); (rme9652_decode_spdif_rate(status&RME9652_F) == 1) { = 15; } else { = } /* between standard and the "Light", does not have the expansion board. This method comes from information received from Mathhias Clausen at RME. the EEPROM revID where */ (rev) case 8:
	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) {
		deV_erR(card->deV, "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, iRQF_SHAREd,
			KbuILD_MOdnAME, rme9652)) {
		DEV_eRr(caRd->dev, "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:
	return err;

	spin_lock_i nit(&rme96 52->l ock );
if ( (err  = pci_request _ regi ons(pci, "rme9652")) <  0)
	r e turn er r;
	r me9652- > po r t  =pc i_ res ou r ce _star t(p ci, 0); 
	rme9652- >io ba se = ioremap _ no cache(rme9 652 ->port, RME9 652 _IO_EX TE NT) ; 
	if(rm e9652 ->ioba s e == N ULL) {
	de v _err(c a rd->dev , "u nabl e to remap region 0x % lx-0x%lx\n",
		rme9 65 2 -> p o rt,  rm e9652->por t+ RME 9 652_IO_ E XT E N T  -1 );
		return - EBUSY;
	}
	if  (requ es t_i r q(pci- >irq,  s n d_r me9652_inte rrup t, IRQF_S HARED, 			KBUI L D_MODNA ME, rm e96 52) ) {	d ev _er r( c ard - >d ev, "un able tore qu est I RQ % d \ n " , pc i-> irq) ;
		r eturn -EBUSY; 
	} 
	rm e 965 2->ir q = p ci-> ir q;
	r me9652 ->pre ci se_ptr = precis e_pt r;

	/* D ete rm ine  t he h/ w  rev l eve l o f the c ard. Th i s s ee m s li ke
	   a particula rl y kl udgy way  to en c od ei t, but i ts  wh at R M E 
	  chos e  t o do, so  we fo l lo wthem... 
*/

	s ta tus  =rme96 5 2_re ad(rme 9652, RM E9652 _ status_registe r );
	if (rme96 5 2_ d e co d e_sp dif _rate(statu s&RM E 9652 _F)= =1){ 
		rm e9652 -> h w_ r ev = 15;
	} else {	rme965 2->hw _rev = 11;
	} 

	/* Diff e r e ntiate b etwe e nt he standard Ha mmerf all, and t h e
	   "L ight" , whichdoes noth a ve the e xpa nsi onboa r d .This
	   meth o d  com es  from i nfo rmation  re cei ved  fr om  Mathhias 
	   Cla us en  a tRME . Dis p lay theEE PRO Mand  h/wr evID w here	  re le v ant .  
	*/ 
s w itch  ( re v) { 
	c as e 8:
	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) {
		dev_err(card->dev, "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, IRQF_SHARED,
			KBUILD_MODNAME, rme9652)) {
		dev_err(card->dev, "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: