/* Performs basic configuration of the adapter. hw - Struct containing variables accessed by shared code Assumes that the controller has previously been reset and is in a post-reset uninitialized state. Initializes multicast table, and Calls routines to setup link Leaves the transmit and receive units disabled and uninitialized.  */
static s32 atl1_init_hw(struct atl1_hw *hw)
/* Performs basic configuration of the adapter. hw - Struct containing variables accessed by shared code Assumes that the controller has previously been reset and is in a post-reset uninitialized state. Initializes multicast table, and Calls routines to setup link Leaves the transmit and receive units disabled and uninitialized.  */
static s32 atl1_init_hw(struct atl1_hw *hw)
{
	u32 ret_val = 0;
	iowrite32(0, hw->hw_addr + REG_RX_HASH_TABLE);
	iowrite32(0, (hw->hw_addr + REG_RX_HASH_TABLE) + (1 << 2));
	atl1_init_flash_opcode(hw);
	if (!hw->phy_configured) {
		ret_val = atl1_write_phy_reg(hw, 18, 0xC00);
		if (ret_val)
			return ret_val;
		ret_val = atl1_phy_leave_power_saving(hw);
		if (ret_val)
			return ret_val;
		ret_val = atl1_setup_link(hw);
	}
	return ret_val;
}