devices/e100-2.6.26-ethercat.c
changeset 1311 bf7c62bc533f
parent 1300 428bf6d7c905
child 1316 d01d9cce8b59
equal deleted inserted replaced
1310:bd4631c70392 1311:bf7c62bc533f
  1663 		}
  1663 		}
  1664 	}
  1664 	}
  1665 
  1665 
  1666 	mii_check_link(&nic->mii);
  1666 	mii_check_link(&nic->mii);
  1667 
  1667 
  1668 	/* Software generated interrupt to recover from (rare) Rx
  1668 	if (!nic->ecdev) {
  1669 	 * allocation failure.
  1669 		/* Software generated interrupt to recover from (rare) Rx
  1670 	 * Unfortunately have to use a spinlock to not re-enable interrupts
  1670 		 * allocation failure.
  1671 	 * accidentally, due to hardware that shares a register between the
  1671 		 * Unfortunately have to use a spinlock to not re-enable interrupts
  1672 	 * interrupt mask bit and the SW Interrupt generation bit */
  1672 		 * accidentally, due to hardware that shares a register between the
  1673 	if (!nic->ecdev)
  1673 		 * interrupt mask bit and the SW Interrupt generation bit */
  1674 		spin_lock_irq(&nic->cmd_lock);
  1674 		spin_lock_irq(&nic->cmd_lock);
  1675 	iowrite8(ioread8(&nic->csr->scb.cmd_hi) | irq_sw_gen,&nic->csr->scb.cmd_hi);
  1675 		iowrite8(ioread8(&nic->csr->scb.cmd_hi) | irq_sw_gen,&nic->csr->scb.cmd_hi);
  1676 	e100_write_flush(nic);
  1676 		e100_write_flush(nic);
  1677 	if (!nic->ecdev)
       
  1678 		spin_unlock_irq(&nic->cmd_lock);
  1677 		spin_unlock_irq(&nic->cmd_lock);
       
  1678 	}
  1679 
  1679 
  1680 	e100_update_stats(nic);
  1680 	e100_update_stats(nic);
  1681 	e100_adjust_adaptive_ifs(nic, cmd.speed, cmd.duplex);
  1681 	e100_adjust_adaptive_ifs(nic, cmd.speed, cmd.duplex);
  1682 
  1682 
  1683 	if(nic->mac <= mac_82557_D100_C)
  1683 	if(nic->mac <= mac_82557_D100_C)