 e1000_put_hw_eeprom_semaphore(hw); 
e1000_release_eeprom(struct e1000_hw *hw){    uint32_t eecd;    DEBUGFUNC("e1000_release_eeprom");    eecd = E1000_READ_REG(hw, EECD);    if (hw->eeprom.type == e1000_eeprom_spi) {        eecd |= E1000_EECD_CS;  /* Pull CS high */        eecd &= ~E1000_EECD_SK; /* Lower SCK */        E1000_WRITE_REG(hw, EECD, eecd);        udelay(hw->eeprom.delay_usec);    } else if(hw->eeprom.type == e1000_eeprom_microwire) {        /* cleanup eeprom */        /* CS on Microwire is active-high */        eecd &= ~(E1000_EECD_CS | E1000_EECD_DI);        E1000_WRITE_REG(hw, EECD, eecd);        /* Rising edge of clock */        eecd |= E1000_EECD_SK;        E1000_WRITE_REG(hw, EECD, eecd);        E1000_WRITE_FLUSH(hw);        udelay(hw->eeprom.delay_usec);        /* Falling edge of clock */        eecd &= ~E1000_EECD_SK;        E1000_WRITE_REG(hw, EECD, eecd);        E1000_WRITE_FLUSH(hw);        udelay(hw->eeprom.delay_usec);    }    /* Stop requesting EEPROM access */    if(hw->mac_type > e1000_82544) {        eecd &= ~E1000_EECD_REQ;        E1000_WRITE_REG(hw, EECD, eecd);    }}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2d7edb923a823660b081bd4c660300ee19adca8d/e1000_hw.c/clean/drivers/net/e1000/e1000_hw.c