src/dpdk/drivers/net/txgbe/base/txgbe_hw.c
void txgbe_release_swfw_sync(struct txgbe_hw *hw, u32 mask)
{
	u32 mngsem;
	u32 swmask = mask;

	DEBUGFUNC("txgbe_release_swfw_sync");

	txgbe_get_eeprom_semaphore(hw);

	mngsem = rd32(hw, TXGBE_MNGSEM);
	mngsem &= ~swmask;
	wr32(hw, TXGBE_MNGSEM, mngsem);

	txgbe_release_eeprom_semaphore(hw);
}
/**
 *  txgbe_release_swfw_sync - Release SWFW semaphore
 *  @hw: pointer to hardware structure
 *  @mask: Mask to specify which semaphore to release
 *
 *  Releases the SWFW semaphore through the MNGSEM register for the specified
 *  function (CSR, PHY0, PHY1, EEPROM, Flash)
 **/
Release SWFW semaphore
@hw: pointer to hardware structure
@mask: Mask to specify which semaphore to release

Releases the SWFW semaphore through the MNGSEM register for the specified
function (CSR, PHY0, PHY1, EEPROM, Flash)
Release SWFW semaphore @hw : pointer to hardware structure @mask : Mask to specify which semaphore to release Releases the SWFW semaphore through the MNGSEM register for the specified function ( CSR PHY0 PHY1 EEPROM Flash )
void txgbe_release_swfw_sync(struct txgbe_hw *hw, u32 mask)
{
	u32 mngsem;
	u32 swmask = mask;
	DEBUGFUNC("txgbe_release_swfw_sync");
	txgbe_get_eeprom_semaphore(hw);
	mngsem = rd32(hw, TXGBE_MNGSEM);
	mngsem &= ~swmask;
	wr32(hw, TXGBE_MNGSEM, mngsem);
	txgbe_release_eeprom_semaphore(hw);
}
void txgbe_release_swfw_sync ( struct txgbe_hw * hw , u32 mask ) { u32 mngsem ; u32 swmask = mask ; DEBUGFUNC ( " " ) ; txgbe_get_eeprom_semaphore ( hw ) ; mngsem = rd32 ( hw , TXGBE_MNGSEM ) ; mngsem &= ~ swmask ; wr32 ( hw , TXGBE_MNGSEM , mngsem ) ; txgbe_release_eeprom_semaphore ( hw ) ; }
txgbe_release_swfw_sync - Release SWFW semaphore
  @hw: pointer to hardware structure
  @mask: Mask to specify which semaphore to release
txgbe_release_swfw_sync - Release SWFW semaphore @hw : pointer to hardware structure @mask : Mask to specify which semaphore to release