net: pch_gbe: Remove init_hw HAL abstraction
For some reason the pch_gbe driver contains a struct pch_gbe_functions with pointers used by a HAL abstraction layer, even though there is only one implementation of each function. This patch removes the init_hw abstraction in favor of inlining its single implementation (pch_gbe_plat_init_hw) into its single caller (pch_gbe_reset). Signed-off-by: Paul Burton <paul.burton@mips.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c96a0f7431
commit
3ef594b0e4
@ -331,11 +331,9 @@ struct pch_gbe_hw;
|
||||
/**
|
||||
* struct pch_gbe_functions - HAL APi function pointer
|
||||
* @get_bus_info: for pch_gbe_hal_get_bus_info
|
||||
* @init_hw: for pch_gbe_hal_init_hw
|
||||
*/
|
||||
struct pch_gbe_functions {
|
||||
void (*get_bus_info) (struct pch_gbe_hw *);
|
||||
s32 (*init_hw) (struct pch_gbe_hw *);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -57,35 +57,8 @@ static void pch_gbe_plat_get_bus_info(struct pch_gbe_hw *hw)
|
||||
hw->bus.width = pch_gbe_bus_width_pcie_x1;
|
||||
}
|
||||
|
||||
/**
|
||||
* pch_gbe_plat_init_hw - Initialize hardware
|
||||
* @hw: Pointer to the HW structure
|
||||
* Returns:
|
||||
* 0: Successfully
|
||||
* Negative value: Failed-EBUSY
|
||||
*/
|
||||
static s32 pch_gbe_plat_init_hw(struct pch_gbe_hw *hw)
|
||||
{
|
||||
s32 ret_val;
|
||||
|
||||
ret_val = pch_gbe_phy_get_id(hw);
|
||||
if (ret_val) {
|
||||
struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw);
|
||||
|
||||
netdev_err(adapter->netdev, "pch_gbe_phy_get_id error\n");
|
||||
return ret_val;
|
||||
}
|
||||
pch_gbe_phy_init_setting(hw);
|
||||
/* Setup Mac interface option RGMII */
|
||||
#ifdef PCH_GBE_MAC_IFOP_RGMII
|
||||
pch_gbe_phy_set_rgmii(hw);
|
||||
#endif
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
static const struct pch_gbe_functions pch_gbe_ops = {
|
||||
.get_bus_info = pch_gbe_plat_get_bus_info,
|
||||
.init_hw = pch_gbe_plat_init_hw,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -133,21 +106,3 @@ void pch_gbe_hal_get_bus_info(struct pch_gbe_hw *hw)
|
||||
}
|
||||
hw->func->get_bus_info(hw);
|
||||
}
|
||||
|
||||
/**
|
||||
* pch_gbe_hal_init_hw - Initialize hardware
|
||||
* @hw: Pointer to the HW structure
|
||||
* Returns:
|
||||
* 0: Successfully
|
||||
* ENOSYS: Function is not registered
|
||||
*/
|
||||
s32 pch_gbe_hal_init_hw(struct pch_gbe_hw *hw)
|
||||
{
|
||||
if (!hw->func->init_hw) {
|
||||
struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw);
|
||||
|
||||
netdev_err(adapter->netdev, "ERROR: configuration\n");
|
||||
return -ENOSYS;
|
||||
}
|
||||
return hw->func->init_hw(hw);
|
||||
}
|
||||
|
@ -23,6 +23,5 @@
|
||||
|
||||
s32 pch_gbe_hal_setup_init_funcs(struct pch_gbe_hw *hw);
|
||||
void pch_gbe_hal_get_bus_info(struct pch_gbe_hw *hw);
|
||||
s32 pch_gbe_hal_init_hw(struct pch_gbe_hw *hw);
|
||||
|
||||
#endif
|
||||
|
@ -760,14 +760,25 @@ void pch_gbe_reinit_locked(struct pch_gbe_adapter *adapter)
|
||||
void pch_gbe_reset(struct pch_gbe_adapter *adapter)
|
||||
{
|
||||
struct net_device *netdev = adapter->netdev;
|
||||
struct pch_gbe_hw *hw = &adapter->hw;
|
||||
s32 ret_val;
|
||||
|
||||
pch_gbe_mac_reset_hw(&adapter->hw);
|
||||
pch_gbe_mac_reset_hw(hw);
|
||||
/* reprogram multicast address register after reset */
|
||||
pch_gbe_set_multi(netdev);
|
||||
/* Setup the receive address. */
|
||||
pch_gbe_mac_init_rx_addrs(&adapter->hw, PCH_GBE_MAR_ENTRIES);
|
||||
if (pch_gbe_hal_init_hw(&adapter->hw))
|
||||
netdev_err(netdev, "Hardware Error\n");
|
||||
pch_gbe_mac_init_rx_addrs(hw, PCH_GBE_MAR_ENTRIES);
|
||||
|
||||
ret_val = pch_gbe_phy_get_id(hw);
|
||||
if (ret_val) {
|
||||
netdev_err(adapter->netdev, "pch_gbe_phy_get_id error\n");
|
||||
return;
|
||||
}
|
||||
pch_gbe_phy_init_setting(hw);
|
||||
/* Setup Mac interface option RGMII */
|
||||
#ifdef PCH_GBE_MAC_IFOP_RGMII
|
||||
pch_gbe_phy_set_rgmii(hw);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user