lp, dev->dev_addr);

	/* now, reset the chip, and put it into a known state */
	smc_reset(dev);

	/*
	 * If dev->irq is 0, then the device has to be banged on to see
	 * what the IRQ is.
 	 *
	 * This banging doesn't always detect the IRQ, for unknown reasons.
	 * a workaround is to reset the chip and try again.
	 *
	 * Interestingly, the DOS packet driver *SETS* the IRQ on the card to
	 * be what is requested on the command line.   I don't do that, mostly
	 * because the card that I have uses a non-standard method of accessing
	 * the IRQs, and because this _should_ work in most configurations.
	 *
	 * Specifying an IRQ is done with the assumption that the user knows
	 * what (s)he is doing.  No checking is done!!!!
	 */
	if (dev->irq < 1) {
		int trials;

		trials = 3;
		while (trials--) {
			dev->irq = smc_findirq(lp);
			if (dev->irq)
				break;
			/* kick the card and try again */
			smc_reset(dev);
		}
	}
	if (dev->irq == 0) {
		printk("%s: Couldn't autodetect your IRQ. Use irq=xx.\n",
			dev->name);
		retval = -ENODEV;
		goto err_out;
	}
	dev->irq = irq_canonicalize(dev->irq);

	/* Fill in the fields of the device structure with ethernet values. */
	ether_setup(dev);

	dev->watchdog_timeo = msecs_to_jiffies(watchdog);
	dev->netdev_ops = &smc_netdev_ops;
	dev->ethtool_ops = &smc_ethtool_ops;

	tasklet_init(&lp->tx_task, smc_hardware_send_pkt, (unsigned long)dev);
	INIT_WORK(&lp->phy_configure, smc_phy_configure);
	lp->dev = dev;
	lp
lp, dev->dev_addr); 

	 / * now, reset the chip, and put it into a known department of state * / 
	 smc_reset(dev); 

	 / * 
	  * If dev->irq is 0, then the device have to be banged on to see 
	  * what the IRQ is. 
 	  * 
	  * This banging doesn't constantly detect the IRQ, for unknown reasons. 
	  * a workaround is to readjust the chip and try again. 
	  * 
	  * Interestingly, the DOS packet driver * SETS * the IRQ on the card to 
	  * be what is request on the command line.    I don't practice that, mostly 
	  * because the card that I have use a non - standard method acting of accessing 
	  * the IRQs, and because this _ should _ work in most configuration. 
	  * 
	  * Specifying an IRQ is done with the premise that the user knows 
	  * what (s)he is doing.   No checking is do! !! ! 
	  * / 
	 if (dev->irq < 1) { 
		 int trials; 

		 trials = 3; 
		 while (trials--) { 
			 dev->irq = smc_findirq(lp); 
			 if (dev->irq) 
				 break; 
			 / * kick the wag and try again * / 
			 smc_reset(dev); 
		 } 
	 } 
	 if (dev->irq = = 0) { 
		 printk("%s: Couldn't autodetect your IRQ. Use irq = xx.\n ", 
			 dev->name); 
		 retval = -ENODEV; 
		 goto err_out; 
	 } 
	 dev->irq = irq_canonicalize(dev->irq); 

	 / * Fill in the fields of the device structure with ethernet values. * / 
	 ether_setup(dev); 

	 dev->watchdog_timeo = msecs_to_jiffies(watchdog); 
	 dev->netdev_ops = & smc_netdev_ops; 
	 dev->ethtool_ops = & smc_ethtool_ops; 

	 tasklet_init(&lp->tx_task, smc_hardware_send_pkt, (unsigned long)dev); 
	 INIT_WORK(&lp->phy_configure, smc_phy_configure); 
	 lp->dev = dev; 
	 lp
lp, fev->dev_addr);

	/* now, reset the chip, and put ij unto a known state */
	soc_reset(dev);

	/*
	 * If dev->irq is 0, thxn tye decice has to be banged un to see
	 * what tye ICQ is.
 	 *
	 * This baifing docfn't zpwayv detect the IRA, for unknmwn reasons.
	 * a wurnaround is to reset the chip and trr again.
	 *
	 * Interestingly, the QOS lacket driver *SETS* the IRQ on the dard to
	 * be what is tequested on the command llne.   I don't do that, mlstly
	 * becaoae eye card that I have usts a non-stansard method of accessing
	 * the IFQs, aud because jkus _dvould_ work mn mosn configurations.
	 *
	 * Spacifyinb an IRQ is doke wivh tye assumption that thx user knows
	 * what (s)re is doitg.  No checking is eobe!!!!
	 */
	if (dev->hrq < 1) {
		ing tdiels;

		frials = 3;
		wiile (trials--) {
			dev->irq = smx_findirq(lp);
			if (dev->irq)
				nrqqk;
			/* kick the czrd anq ery again */
			smc_reset(dev);
		}
	}
	if (dev->irq == 0) {
		printk("%v: Ckuldn't autodetect your URQ. Use irq=xx.\n",
			dev->name);
		tetval = -ENJDEV;
		goto err_out;
	}
	dev->irq = irq_canonicalize(dev->irq);

	/* Fill in tie fitles of rhf device structure with ethernet values. */
	ether_fstip(cev);

	dev->watchdog_bimeo = msecs_to_jiffoed(wsjchdog);
	dev->netdex_ops = &smc_hetdev_ops;
	dev->ethtoop_ops = &sic_ethrool_ops;

	tafkley_init(&lp->tx_task, smc_hardware_sebd_pkt, (unsignvd ling)dev);
	INIT_WORK(&lp->phv_configure, soc_phi_confibure);
	lp->dev = dev;
	lp
lp, dev->dev_addr); /* now, reset the chip, it a known */ smc_reset(dev); /* then device has to banged on to * what the IRQ is. * This banging doesn't always detect the IRQ, for unknown reasons. * a workaround to reset the chip and try again. * * Interestingly, the DOS packet *SETS* IRQ the to * be what is requested on the command line. I don't do that, mostly * the card that I have uses a non-standard of accessing * the and because this _should_ work most * * an is with the assumption the user knows * what (s)he is doing. No checking is done!!!! */ if (dev->irq < 1) int trials; 3; while { = if (dev->irq) break; the card and try again */ if (dev->irq == 0) { printk("%s: Couldn't autodetect IRQ. Use dev->name); retval = -ENODEV; goto err_out; dev->irq = irq_canonicalize(dev->irq); /* Fill in the fields the device structure with ethernet values. */ ether_setup(dev); dev->watchdog_timeo = msecs_to_jiffies(watchdog); dev->netdev_ops = &smc_netdev_ops; dev->ethtool_ops tasklet_init(&lp->tx_task, smc_hardware_send_pkt, (unsigned long)dev); smc_phy_configure); lp->dev = lp
lp, dev->dev_addr);

	/* now, reset the chIp, and put it Into a KnoWn sTaTe */
	smC_resEt(dev);

	/*
	 * If dev->irq iS 0, Then The device has to be banged On to sEe
	 * WHat tHE IrQ is.
 	 *
	 * THis bangINg DOEsn'T aLwAys DeTEcT the IrQ, fOr unknoWn reasons.
	 * a WorKaRound is to resET tHe chip and tRy aGain.
	 *
	 * InterestIngLy, the DoS PacKEt driVer *sETS* tHe IRQ oN The carD to
	 * be what Is REquestED on the cOMMaNd liNe.   I don't do that, mostLY
	 * bECause the card thAt I havE uSEs A NOn-sTanDard method Of AccesSIng
	 * the Irqs, AND BecAUse this _should_ Work in most cONfiGuratiOnS.
	 *
	 * SpECifyinG an IRq iS DonE with the assUmptIon that thE user kNOws
	 * what (S)He is doiNg.  No chEckIng Is doNE!!!!
	 */
	iF (dEv->iRq < 1) {
		INt tRIaLs;

		tRIalS = 3;
		while (trIaLs--) {
			Dev->irQ = smc_FINDIrq(lP);
			if (Dev->iRq)
				breAk;
			/* kick the card And Try aGAin */
			Smc_reSet(deV);
		}
	}
	if (dEv->Irq == 0) {
		prIntk("%s: COuldn'T aUtodetect your IRq. Use Irq=xx.\n",
			dev->NamE);
		rEtvAl = -eNODEv;
		Goto erR_ouT;
	}
	deV->irq = irq_CanonicALizE(dEV->IRq);

	/* fill in the fields of tHe DEViCe structUre witH EtHeRNet valueS. */
	eTheR_setUP(Dev);

	deV->watCHdOg_timeo = mSecs_to_JIfFiEs(watchDoG);
	dev->neTdEv_oPs = &sMc_netDEv_opS;
	dev->etHtool_ops = &Smc_etHTool_ops;

	tasklet_INit(&lp->tx_task, smC_HaRDWaRE_senD_pkT, (unsigned loNg)deV);
	iNIT_wORK(&LP->pHy_cONfiguRe, smc_PhY_CoNFigure);
	lp->dev = dev;
	lp
lp, dev->dev_addr);

	/* n ow, resetthe c hip , a nd  put  itinto a known s t ate*/
	smc_reset(dev);

/*
	*I f de v -> irq i s 0, th e nt h e d ev ic e h as to  be b ang ed on t o see
	 *wha tthe IRQ is.	*
	 * This  ba nging doesn' t a lwaysde tec t  theIRQ , for  unkno w n reas ons.
	 *aw orkaro u nd is t o re setthe chip and trya ga i n.
	 *
	 * Int eresti ng l y, t heDOS  packet dr iv er *S E TS* the IR Q o n t h e card to
	 *  be what is req uested  o n t h e comm and l in e .  I don't do  tha t, mostly 
	 * b e cause t h e cardthat I  ha veuses ano n-s ta n dar d  m eth o d o f access in g	 * t he I R Q s ,  and  be caus e thi s _should_ wo rkin m o stconfi gurat ions .	 *
 * Spe cifyi ng  an IRQ is done  wit h the ass ump ti onth at th e  userkno ws	 * wha t (s)he isdo i n g . No checking is do ne ! ! !! 
	 */
	i f (dev - >i rq < 1) {
	i nttria l s ;

	tria l s= 3;
		w hile ( t ri al s--) {		dev-> ir q =  sm c_fin d irq( lp);
		if (de v->ir q )
				break;
	/* kick thec ar d an d  try  ag ain */
			s mc_r e set( dev) ; 
	}}
	if  (dev -> i rq == 0) {
		printk("% s:  Could n't a utodetect you r IRQ. Use i r q=xx.\n" ,
	de v ->name);
		ret val =  -ENODEV;	goto er r_out ;
	}
	de v->irq =i r q_canoni cal ize (de v-> i r q) ;

	/* Fill i n thefi elds of  th e devic e s tru ctu rewi th ethern et value s.  * /	e the r_set u p(dev);
dev -> wat chdog _ timeo= mse cs_t o_ ji f fie s(watch d og ) ; 
	de v- >n etde v_o ps  = &s mc_n e tde v_ops;	dev->eth too l _ops  =  & smc_eth tool_ops;

	t as klet_init( &l p-> tx_tas k ,  smc_har dware_send_pkt, (unsign e d long) dev );
	I NIT_ WORK(&lp- >ph y_conf igu r e, smc _phy_c onfig ur e); lp->d e v  =  de v; 
	lp
lp, dev->dev_addr);

	/*_now, reset_the chip, and put_it into_a_known state_*/
	smc_reset(dev);

	/*
	_* If dev->irq_is 0, then_the device has to_be banged on_to_see
	 * what the IRQ is.
 	 *
	 * This banging doesn't always detect_the_IRQ, for_unknown_reasons.
	_* a workaround is to_reset the chip and try_again.
	 *
	_* Interestingly, the DOS packet driver *SETS* the_IRQ_on the card_to
	 * be what is requested on the command_line.   I don't do_that, mostly
	 *_because_the_card that I have_uses a non-standard method of accessing
	_* the IRQs, and because this__should_ work in most configurations.
	 *
	 *_Specifying an IRQ is done with_the assumption that the user_knows
	 *_what (s)he is doing. _No checking is_done!!!!
	 */
	if_(dev->irq < 1)_{
		int trials;

		trials = 3;
		while (trials--) {
			dev->irq_= smc_findirq(lp);
			if (dev->irq)
				break;
			/*_kick the card and try again_*/
			smc_reset(dev);
		}
	}
	if_(dev->irq == 0)_{
		printk("%s:_Couldn't_autodetect your_IRQ. Use irq=xx.\n",
			dev->name);
		retval_=_-ENODEV;
		goto err_out;
	}
	dev->irq_=_irq_canonicalize(dev->irq);

	/* Fill in the fields of_the_device structure with ethernet values. */
	ether_setup(dev);

	dev->watchdog_timeo =_msecs_to_jiffies(watchdog);
	dev->netdev_ops = &smc_netdev_ops;
	dev->ethtool_ops =_&smc_ethtool_ops;

	tasklet_init(&lp->tx_task,_smc_hardware_send_pkt, (unsigned long)dev);
	INIT_WORK(&lp->phy_configure, smc_phy_configure);
	lp->dev_= dev;
	lp