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