Hi Mugunthan, On Mon, Mar 10, 2014 at 12:46 PM, Christian Riesch <christian.rie...@omicron.at> wrote: > > > --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? > Do you have any comments on this patch ? I have tested it on OMAP-L138 evm and works fine. If you have none comments may be Christian can consolidate this patch with earlier and repost it.
Thanks, --Prabhakar Lad _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source