--On March 07, 2014 20:15 +0530 Mugunthan V N <mugunthan...@ti.com> wrote:
On Friday 07 March 2014 07:37 PM, Christian Riesch wrote:
Signed-off-by: Christian Riesch <christian.rie...@omicron.at>
Cc: Prabhakar Lad <prabhakar.cse...@gmail.com>
Cc: Mugunthan V N <mugunthan...@ti.com>
Cc: Florian Fainelli <f.faine...@gmail.com>
---
Hi again,
How about this solution for fixing the rollback of emac_dev_open()?
Especially the change in davinci_cpdma.c, would this break anything?
The patch applies on top of
[PATCH] net: davinci_emac: Replace devm_request_irq with request_irq
Regards,
Christian
drivers/net/ethernet/ti/davinci_cpdma.c | 4 +--
drivers/net/ethernet/ti/davinci_emac.c | 44
++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 17
deletions(-)
diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c
b/drivers/net/ethernet/ti/davinci_cpdma.c index 364d0c7..88ef270 100644
--- a/drivers/net/ethernet/ti/davinci_cpdma.c
+++ b/drivers/net/ethernet/ti/davinci_cpdma.c
@@ -355,7 +355,7 @@ int cpdma_ctlr_stop(struct cpdma_ctlr *ctlr)
int i;
spin_lock_irqsave(&ctlr->lock, flags);
- if (ctlr->state != CPDMA_STATE_ACTIVE) {
+ if (ctlr->state == CPDMA_STATE_TEARDOWN) {
spin_unlock_irqrestore(&ctlr->lock, flags);
return -EINVAL;
}
@@ -891,7 +891,7 @@ int cpdma_chan_stop(struct cpdma_chan *chan)
unsigned timeout;
spin_lock_irqsave(&chan->lock, flags);
- if (chan->state != CPDMA_STATE_ACTIVE) {
+ if (chan->state == CPDMA_STATE_TEARDOWN) {
spin_unlock_irqrestore(&chan->lock, flags);
return -EINVAL;
}
Even when in idle mode chan stop should return error.
Can you please explain? I do not see why.
I must be able to call cpdma_ctlr_stop in idle mode to free the rx
descriptors in case ndo_open in davinci_emac.c fails. Any other ideas how
to solve the problem addressed in the rest of the patch?
Thanks, Christian
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source