/* returns SUCCESS if it successfully copied message into the buffer and received an ack to that message within delay * timeout period  */
static s32 igb_write_posted_mbx(struct e1000_hw *hw, u32 *msg, u16 size, u16 mbx_id)
/* returns SUCCESS if it successfully copied message into the buffer and received an ack to that message within delay * timeout period  */
static s32 igb_write_posted_mbx(struct e1000_hw *hw, u32 *msg, u16 size, u16 mbx_id)
{
	struct e1000_mbx_info *mbx = &hw->mbx;
	s32 ret_val = -E1000_ERR_MBX;
	if (!mbx->ops.write || !mbx->timeout)
		goto out;
	ret_val = mbx->ops.write(hw, msg, size, mbx_id);
	if (!ret_val)
		ret_val = igb_poll_for_ack(hw, mbx_id);
out:
	return ret_val;
}