linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
To: <srinivas.kandagatla@st.com>
Cc: <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH RFC 0/9]net: stmmac PM related fixes.
Date: Tue, 19 Nov 2013 06:24:39 +0100	[thread overview]
Message-ID: <528AF617.70802@st.com> (raw)
In-Reply-To: <1384774256-10039-1-git-send-email-srinivas.kandagatla@st.com>

On 11/18/2013 12:30 PM, srinivas.kandagatla@st.com wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
>
> Hi Peppe,
>
> During PM_SUSPEND_FREEZE testing, I have noticed that PM support in STMMAC is
> partly broken. I had to re-arrange the code to do PM correctly. There were lot
> of things I did not like personally and some bits did not work in the first
> place. I thought this is the nice opportunity to clean the mess up.
>
> Here is what I did:
>
> 1> Test PM suspend freeeze via pm_test
> It did not work for following reasons.
>   - If the power to gmac is removed when it enters in low power state.
> stmmac_resume could not cope up with such behaviour, it was expecting the ip
> register contents to be still same as before entering low power, This
> assumption is wrong. So I started to add some code to do Hardware
> initialization, thats when I started to re-arrange the code. stmmac_open
> contains both resource and memory allocations and hardware initialization. I
> had to separate these two things in two different functions.
>
> These two patches do that
>    net: stmmac: move dma allocation to new function
>    net: stmmac: move hardware setup for stmmac_open to new function
>
> And rest of the other patches are fixing the loose ends, things like mdio
> reset, which might be necessary in cases likes hibernation(I did not test).
>
> In hibernation cases the driver was just unregistering with subsystems and
> releasing resources which I did not like and its not necessary to do this as
> part of PM. So using the same stmmac_suspend/resume made more sense for
> hibernation cases than using stmmac_open/release.
> Also fixed a NULL pointer dereference bug too.
>
> 2> Test WOL via PM_SUSPEND_FREEZE
> Did get an wakeup interrupt, but could not wakeup a freeze system.
> So I had to add pm_wakeup_event to the driver.
> net: stmmac: notify the PM core of a wakeup event. patch.
>
> Also few patches like
>    net: stmmac: make stmmac_mdio_reset non-static
>    net: stmmac: restore pinstate in pm resume.
> helps the resume function to reset the phy and put back the pins in default
> state.
>
> Comments?

Srini, as we had internally discussed before sending the patches to the
net ML, I agreed with your work. Some parts of the PM stuff was fully
tested on our product kernels (where the PM was a bit different
especially on HoM) and nobody raised issues to me for this code.
Also some rework you did, for example to move the dma allocation in
a new function is fine for me.

So you continue to have my Acked-by for all.

peppe

>
> Thanks,
> srini
>
> Srinivas Kandagatla (9):
>    net: stmmac: support max-speed device tree property
>    net: stmmac: mdio: remove reset gpio free
>    net: stmmac: move dma allocation to new function
>    net: stmmac: move hardware setup for stmmac_open to new function
>    net: stmmac: make stmmac_mdio_reset non-static
>    net: stmmac: fix power mangement suspend-resume case
>    net: stmmac: use suspend functions for hibernation
>    net: stmmac: restore pinstate in pm resume.
>    net: stmmac: notify the PM core of a wakeup event.
>
>   drivers/net/ethernet/stmicro/stmmac/stmmac.h       |    4 +-
>   drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  360 ++++++++++----------
>   drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c  |    3 +-
>   .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |   51 +--
>   include/linux/stmmac.h                             |    1 +
>   5 files changed, 209 insertions(+), 210 deletions(-)
>


  parent reply	other threads:[~2013-11-19  5:25 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-18 11:30 [PATCH RFC 0/9]net: stmmac PM related fixes srinivas.kandagatla
2013-11-18 11:31 ` [PATCH RFC 1/9] net: stmmac: support max-speed device tree property srinivas.kandagatla
2013-11-18 11:31 ` [PATCH RFC 2/9] net: stmmac: mdio: remove reset gpio free srinivas.kandagatla
2013-11-18 11:31 ` [PATCH RFC 3/9] net: stmmac: move dma allocation to new function srinivas.kandagatla
2013-11-18 11:32 ` [PATCH RFC 4/9] net: stmmac: move hardware setup for stmmac_open " srinivas.kandagatla
2013-11-18 11:32 ` [PATCH RFC 5/9] net: stmmac: make stmmac_mdio_reset non-static srinivas.kandagatla
2013-11-18 11:32 ` [PATCH RFC 6/9] net: stmmac: fix power mangement suspend-resume case srinivas.kandagatla
2013-11-18 11:32 ` [PATCH RFC 7/9] net: stmmac: use suspend functions for hibernation srinivas.kandagatla
2013-11-18 11:32 ` [PATCH RFC 8/9] net: stmmac: restore pinstate in pm resume srinivas.kandagatla
2013-11-18 11:32 ` [PATCH RFC 9/9] net: stmmac: notify the PM core of a wakeup event srinivas.kandagatla
2013-11-19  5:24 ` Giuseppe CAVALLARO [this message]
2013-11-19  9:03   ` [PATCH RFC 0/9]net: stmmac PM related fixes srinivas kandagatla
2013-12-02 10:48   ` srinivas kandagatla
2013-12-02 16:18     ` David Miller
2014-01-14 10:05 ` srinivas kandagatla
2014-01-15 21:49   ` David Miller
2014-01-16 10:48 ` [PATCH v2 0/9] net: " srinivas.kandagatla
2014-01-16 23:24   ` David Miller
2014-01-16 10:50 ` srinivas.kandagatla
2014-01-16 10:51   ` [PATCH v2 1/9] net: stmmac: support max-speed device tree property srinivas.kandagatla
2014-01-16 10:51   ` [PATCH v2 2/9] net: stmmac: mdio: remove reset gpio free srinivas.kandagatla
2014-01-16 10:52   ` [PATCH v2 3/9] net: stmmac: move dma allocation to new function srinivas.kandagatla
2014-01-16 10:52   ` [PATCH v2 4/9] net: stmmac: move hardware setup for stmmac_open " srinivas.kandagatla
2014-01-16 10:52   ` [PATCH v2 5/9] net: stmmac: make stmmac_mdio_reset non-static srinivas.kandagatla
2014-01-16 10:52   ` [PATCH v2 6/9] net: stmmac: fix power management suspend-resume case srinivas.kandagatla
2014-01-16 10:52   ` [PATCH v2 7/9] net: stmmac: use suspend functions for hibernation srinivas.kandagatla
2014-01-16 10:52   ` [PATCH v2 8/9] net: stmmac: restore pinstate in pm resume srinivas.kandagatla
2014-01-16 10:53   ` [PATCH v2 9/9] net: stmmac: notify the PM core of a wakeup event srinivas.kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=528AF617.70802@st.com \
    --to=peppe.cavallaro@st.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=srinivas.kandagatla@st.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).