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

Reply via email to