2020-12-04 20:24:53

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v3 1/7] e1000e: fix S0ix flow to allow S0i3.2 subset entry

From: Vitaly Lifshits <[email protected]>

Changed a configuration in the flows to align with
architecture requirements to achieve S0i3.2 substate.

Also fixed a typo in the previous commit 632fbd5eb5b0
("e1000e: fix S0ix flows for cable connected case").

Signed-off-by: Vitaly Lifshits <[email protected]>
Tested-by: Aaron Brown <[email protected]>
Signed-off-by: Tony Nguyen <[email protected]>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index b30f00891c03..128ab6898070 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6475,13 +6475,13 @@ static void e1000e_s0ix_entry_flow(struct e1000_adapter *adapter)

/* Ungate PGCB clock */
mac_data = er32(FEXTNVM9);
- mac_data |= BIT(28);
+ mac_data &= ~BIT(28);
ew32(FEXTNVM9, mac_data);

/* Enable K1 off to enable mPHY Power Gating */
mac_data = er32(FEXTNVM6);
mac_data |= BIT(31);
- ew32(FEXTNVM12, mac_data);
+ ew32(FEXTNVM6, mac_data);

/* Enable mPHY power gating for any link and speed */
mac_data = er32(FEXTNVM8);
@@ -6525,11 +6525,11 @@ static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter)
/* Disable K1 off */
mac_data = er32(FEXTNVM6);
mac_data &= ~BIT(31);
- ew32(FEXTNVM12, mac_data);
+ ew32(FEXTNVM6, mac_data);

/* Disable Ungate PGCB clock */
mac_data = er32(FEXTNVM9);
- mac_data &= ~BIT(28);
+ mac_data |= BIT(28);
ew32(FEXTNVM9, mac_data);

/* Cancel not waking from dynamic
--
2.25.1


2020-12-08 17:30:23

by Mario Limonciello

[permalink] [raw]
Subject: Re: [PATCH v3 1/7] e1000e: fix S0ix flow to allow S0i3.2 subset entry


On 12/4/20 2:09 PM, Mario Limonciello wrote:
> From: Vitaly Lifshits <[email protected]>
>
> Changed a configuration in the flows to align with
> architecture requirements to achieve S0i3.2 substate.
>
> Also fixed a typo in the previous commit 632fbd5eb5b0
> ("e1000e: fix S0ix flows for cable connected case").
>
> Signed-off-by: Vitaly Lifshits <[email protected]>
> Tested-by: Aaron Brown <[email protected]>
> Signed-off-by: Tony Nguyen <[email protected]>
> ---
> drivers/net/ethernet/intel/e1000e/netdev.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)

I realize that the series is still under discussion, but I intentionally
moved this
patch to the front of the series so it can be pulled in even if the
others are still
discussed.

@David Miller:
This particular patch is more important than the rest.  It actually
fixes issues
on the non-ME i219V as well.  Can this one be queued up and we can keep
discussing the rest?

> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> index b30f00891c03..128ab6898070 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -6475,13 +6475,13 @@ static void e1000e_s0ix_entry_flow(struct e1000_adapter *adapter)
>
> /* Ungate PGCB clock */
> mac_data = er32(FEXTNVM9);
> - mac_data |= BIT(28);
> + mac_data &= ~BIT(28);
> ew32(FEXTNVM9, mac_data);
>
> /* Enable K1 off to enable mPHY Power Gating */
> mac_data = er32(FEXTNVM6);
> mac_data |= BIT(31);
> - ew32(FEXTNVM12, mac_data);
> + ew32(FEXTNVM6, mac_data);
>
> /* Enable mPHY power gating for any link and speed */
> mac_data = er32(FEXTNVM8);
> @@ -6525,11 +6525,11 @@ static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter)
> /* Disable K1 off */
> mac_data = er32(FEXTNVM6);
> mac_data &= ~BIT(31);
> - ew32(FEXTNVM12, mac_data);
> + ew32(FEXTNVM6, mac_data);
>
> /* Disable Ungate PGCB clock */
> mac_data = er32(FEXTNVM9);
> - mac_data &= ~BIT(28);
> + mac_data |= BIT(28);
> ew32(FEXTNVM9, mac_data);
>
> /* Cancel not waking from dynamic
--
*Mario Limonciello*
*Dell*| CPG Software Engineering
*office*+1 512 723 0582

2020-12-08 18:22:33

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH v3 1/7] e1000e: fix S0ix flow to allow S0i3.2 subset entry

On Tue, 8 Dec 2020 11:24:17 -0600 Mario Limonciello wrote:
> On 12/4/20 2:09 PM, Mario Limonciello wrote:
> > From: Vitaly Lifshits <[email protected]>
> >
> > Changed a configuration in the flows to align with
> > architecture requirements to achieve S0i3.2 substate.
> >
> > Also fixed a typo in the previous commit 632fbd5eb5b0
> > ("e1000e: fix S0ix flows for cable connected case").
> >
> > Signed-off-by: Vitaly Lifshits <[email protected]>
> > Tested-by: Aaron Brown <[email protected]>
> > Signed-off-by: Tony Nguyen <[email protected]>
> > ---
> > drivers/net/ethernet/intel/e1000e/netdev.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
>
> I realize that the series is still under discussion, but I intentionally
> moved this
> patch to the front of the series so it can be pulled in even if the
> others are still
> discussed.
>
> @David Miller:
> This particular patch is more important than the rest.  It actually
> fixes issues
> on the non-ME i219V as well.  Can this one be queued up and we can keep
> discussing the rest?

Not sure Dave will notice this discussion, best if you repost this patch
separately. If it's a fix that should be backported to stable make sure
you add a Fixes tag.