Loading drivers/dma/pl330.c +10 −16 Original line number Diff line number Diff line Loading @@ -392,6 +392,8 @@ struct pl330_req { struct pl330_reqcfg *cfg; /* Pointer to first xfer in the request. */ struct pl330_xfer *x; /* Hook to attach to DMAC's list of reqs with due callback */ struct list_head rqd; }; /* Loading Loading @@ -461,8 +463,6 @@ struct _pl330_req { /* Number of bytes taken to setup MC for the req */ u32 mc_len; struct pl330_req *r; /* Hook to attach to DMAC's list of reqs with due callback */ struct list_head rqd; }; /* ToBeDone for tasklet */ Loading Loading @@ -1683,7 +1683,7 @@ static void pl330_dotask(unsigned long data) /* Returns 1 if state was updated, 0 otherwise */ static int pl330_update(const struct pl330_info *pi) { struct _pl330_req *rqdone; struct pl330_req *rqdone, *tmp; struct pl330_dmac *pl330; unsigned long flags; void __iomem *regs; Loading Loading @@ -1750,7 +1750,10 @@ static int pl330_update(const struct pl330_info *pi) if (active == -1) /* Aborted */ continue; rqdone = &thrd->req[active]; /* Detach the req */ rqdone = thrd->req[active].r; thrd->req[active].r = NULL; mark_free(thrd, active); /* Get going again ASAP */ Loading @@ -1762,20 +1765,11 @@ static int pl330_update(const struct pl330_info *pi) } /* Now that we are in no hurry, do the callbacks */ while (!list_empty(&pl330->req_done)) { struct pl330_req *r; rqdone = container_of(pl330->req_done.next, struct _pl330_req, rqd); list_del_init(&rqdone->rqd); /* Detach the req */ r = rqdone->r; rqdone->r = NULL; list_for_each_entry_safe(rqdone, tmp, &pl330->req_done, rqd) { list_del(&rqdone->rqd); spin_unlock_irqrestore(&pl330->lock, flags); _callback(r, PL330_ERR_NONE); _callback(rqdone, PL330_ERR_NONE); spin_lock_irqsave(&pl330->lock, flags); } Loading Loading
drivers/dma/pl330.c +10 −16 Original line number Diff line number Diff line Loading @@ -392,6 +392,8 @@ struct pl330_req { struct pl330_reqcfg *cfg; /* Pointer to first xfer in the request. */ struct pl330_xfer *x; /* Hook to attach to DMAC's list of reqs with due callback */ struct list_head rqd; }; /* Loading Loading @@ -461,8 +463,6 @@ struct _pl330_req { /* Number of bytes taken to setup MC for the req */ u32 mc_len; struct pl330_req *r; /* Hook to attach to DMAC's list of reqs with due callback */ struct list_head rqd; }; /* ToBeDone for tasklet */ Loading Loading @@ -1683,7 +1683,7 @@ static void pl330_dotask(unsigned long data) /* Returns 1 if state was updated, 0 otherwise */ static int pl330_update(const struct pl330_info *pi) { struct _pl330_req *rqdone; struct pl330_req *rqdone, *tmp; struct pl330_dmac *pl330; unsigned long flags; void __iomem *regs; Loading Loading @@ -1750,7 +1750,10 @@ static int pl330_update(const struct pl330_info *pi) if (active == -1) /* Aborted */ continue; rqdone = &thrd->req[active]; /* Detach the req */ rqdone = thrd->req[active].r; thrd->req[active].r = NULL; mark_free(thrd, active); /* Get going again ASAP */ Loading @@ -1762,20 +1765,11 @@ static int pl330_update(const struct pl330_info *pi) } /* Now that we are in no hurry, do the callbacks */ while (!list_empty(&pl330->req_done)) { struct pl330_req *r; rqdone = container_of(pl330->req_done.next, struct _pl330_req, rqd); list_del_init(&rqdone->rqd); /* Detach the req */ r = rqdone->r; rqdone->r = NULL; list_for_each_entry_safe(rqdone, tmp, &pl330->req_done, rqd) { list_del(&rqdone->rqd); spin_unlock_irqrestore(&pl330->lock, flags); _callback(r, PL330_ERR_NONE); _callback(rqdone, PL330_ERR_NONE); spin_lock_irqsave(&pl330->lock, flags); } Loading