mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
net: stmmac: Add callbacks for DWC xpcs Energy Efficient Ethernet
Link xpcs callback functions for MAC to configure the xpcs EEE feature. The clk_eee frequency is used to calculate the MULT_FACT_100NS. This is to adjust the clock tic closer to 100ns. Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7617af3d1a
commit
e80fe71b3f
4 changed files with 20 additions and 0 deletions
|
@ -429,6 +429,17 @@ static int intel_mgbe_common_data(struct pci_dev *pdev,
|
|||
plat->force_sf_dma_mode = 0;
|
||||
plat->tso_en = 1;
|
||||
|
||||
/* Multiplying factor to the clk_eee_i clock time
|
||||
* period to make it closer to 100 ns. This value
|
||||
* should be programmed such that the clk_eee_time_period *
|
||||
* (MULT_FACT_100NS + 1) should be within 80 ns to 120 ns
|
||||
* clk_eee frequency is 19.2Mhz
|
||||
* clk_eee_time_period is 52ns
|
||||
* 52ns * (1 + 1) = 104ns
|
||||
* MULT_FACT_100NS = 1
|
||||
*/
|
||||
plat->mult_fact_100ns = 1;
|
||||
|
||||
plat->rx_sched_algorithm = MTL_RX_ALGORITHM_SP;
|
||||
|
||||
for (i = 0; i < plat->rx_queues_to_use; i++) {
|
||||
|
|
|
@ -623,6 +623,8 @@ struct stmmac_mmc_ops {
|
|||
stmmac_do_callback(__priv, xpcs, link_up, __args)
|
||||
#define stmmac_xpcs_probe(__priv, __args...) \
|
||||
stmmac_do_callback(__priv, xpcs, probe, __args)
|
||||
#define stmmac_xpcs_config_eee(__priv, __args...) \
|
||||
stmmac_do_callback(__priv, xpcs, config_eee, __args)
|
||||
|
||||
struct stmmac_regs_off {
|
||||
u32 ptp_off;
|
||||
|
|
|
@ -720,6 +720,12 @@ static int stmmac_ethtool_op_set_eee(struct net_device *dev,
|
|||
netdev_warn(priv->dev,
|
||||
"Setting EEE tx-lpi is not supported\n");
|
||||
|
||||
ret = stmmac_xpcs_config_eee(priv, &priv->hw->xpcs_args,
|
||||
priv->plat->mult_fact_100ns,
|
||||
edata->eee_enabled);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!edata->eee_enabled)
|
||||
stmmac_disable_eee_mode(priv);
|
||||
|
||||
|
|
|
@ -223,6 +223,7 @@ struct plat_stmmacenet_data {
|
|||
struct clk *clk_ptp_ref;
|
||||
unsigned int clk_ptp_rate;
|
||||
unsigned int clk_ref_rate;
|
||||
unsigned int mult_fact_100ns;
|
||||
s32 ptp_max_adj;
|
||||
struct reset_control *stmmac_rst;
|
||||
struct stmmac_axi *axi;
|
||||
|
|
Loading…
Reference in a new issue