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. Regards Mugunthan V N _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source