diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index 8de68bf5..73492a3e 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -6821,7 +6821,7 @@ static int ether_resume(struct ether_priv_data *pdata) #ifdef MACSEC_SUPPORT if ((osi_core->mac == OSI_MAC_HW_EQOS && osi_core->mac_ver == OSI_EQOS_MAC_5_30) || (osi_core->mac == OSI_MAC_HW_MGBE && osi_core->mac_ver == OSI_MGBE_MAC_3_10)) { - if (pdata->macsec_pdata->enabled_before_suspend != OSI_DISABLE) { + if (pdata->macsec_pdata->next_supp_idx != OSI_DISABLE) { ret = macsec_resume(pdata->macsec_pdata); if (ret < 0) dev_err(pdata->dev, "Failed to resume MACSEC "); @@ -6869,9 +6869,7 @@ static int ether_suspend_noirq(struct device *dev) #ifdef MACSEC_SUPPORT if ((osi_core->mac == OSI_MAC_HW_EQOS && osi_core->mac_ver == OSI_EQOS_MAC_5_30) || (osi_core->mac == OSI_MAC_HW_MGBE && osi_core->mac_ver == OSI_MGBE_MAC_3_10)) { - pdata->macsec_pdata->enabled_before_suspend = - pdata->macsec_pdata->enabled; - if (pdata->macsec_pdata->enabled != OSI_DISABLE) { + if (pdata->macsec_pdata->next_supp_idx != OSI_DISABLE) { ret = macsec_suspend(pdata->macsec_pdata); if (ret < 0) dev_err(pdata->dev, "Failed to suspend macsec"); diff --git a/drivers/net/ethernet/nvidia/nvethernet/macsec.c b/drivers/net/ethernet/nvidia/nvethernet/macsec.c index c1c42786..89c61756 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/macsec.c +++ b/drivers/net/ethernet/nvidia/nvethernet/macsec.c @@ -330,7 +330,6 @@ int macsec_suspend(struct macsec_priv_data *macsec_pdata) dev_err(dev, "Failed to close macsec\n"); return ret; } - macsec_disable_car(macsec_pdata); return ret; } @@ -345,11 +344,14 @@ int macsec_resume(struct macsec_priv_data *macsec_pdata) struct device *dev = pdata->dev; int ret = 0; - ret = macsec_enable_car(macsec_pdata); - if (ret < 0) { - dev_err(dev, "Unable to enable macsec clks & reset\n"); - return ret; + if (macsec_pdata->ns_rst) { + ret = reset_control_reset(macsec_pdata->ns_rst); + if (ret < 0) { + dev_err(dev, "failed to reset macsec\n"); + return ret; + } } + return macsec_open(macsec_pdata, OSI_NULL); } diff --git a/drivers/net/ethernet/nvidia/nvethernet/macsec.h b/drivers/net/ethernet/nvidia/nvethernet/macsec.h index 734f1588..4b9670e1 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/macsec.h +++ b/drivers/net/ethernet/nvidia/nvethernet/macsec.h @@ -205,8 +205,6 @@ struct macsec_priv_data { unsigned int protect_frames; /** MACsec enabled flags for Tx/Rx controller status */ unsigned int enabled; - /** MACsec enabled flags for Tx/Rx controller status before Suspend */ - unsigned int enabled_before_suspend; /** MACsec Rx PN Window */ unsigned int pn_window; /** MACsec controller init reference count */