Thread (21 messages) 21 messages, 6 authors, 2013-11-17
STALE4587d

[PATCH v4] ARM: omap: edma: add suspend suspend/resume hooks

From: Joel Fernandes <hidden>
Date: 2013-11-06 17:36:32
Also in: linux-omap

Hi Vaibhav,

On 10/31/2013 05:25 PM, Vaibhav Bedia wrote:
Hi Daniel,

On Wed, Oct 30, 2013 at 4:21 PM, Daniel Mack [off-list ref] wrote:
[...]
quoted
+
+static SIMPLE_DEV_PM_OPS(edma_pm_ops, edma_pm_suspend, edma_pm_resume);
+
 static struct platform_driver edma_driver = {
        .driver = {
                .name   = "edma",
+               .pm     = &edma_pm_ops,
                .of_match_table = edma_of_ids,
        },
A while back we discovered a nasty race condition here that had us move the EDMA
PM callbacks to the noirq phase. IIRC the MMC driver was resuming
before the EDMA
driver had a chance to run and that was leading to a deadlock. I am
not sure how to force
this scenario but i do remember spending time debugging this on a
random codebase.
Maybe some else has some better ideas on how to force this race condition...
I think you're talking about the patch at [1] which is not upstream. A quick
question with my limited knowledge of suspend/resume- How can there be pending
I/O operations between suspend/resume cycles? The sync is done before suspend,
so I don't understand how one is receiving a response from the card after resume
before EDMA can resume? I'd imagine that until all devices are resumed, there
will be no I/O operation issued. Let me know your thoughts.

thanks,

-Joel

[1]
https://www.gitorious.org/x0148406-public/linux-kernel/commit/b81bf04091986fa3893f31955564594567be3b61
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help