Use a for() loop instead of a while() loop in axi_dmac_fill_linear_sg().
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
drivers/dma/dma-axi-dmac.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
index 2457a420c13d..760940b21eab 100644
--- a/drivers/dma/dma-axi-dmac.c
+++ b/drivers/dma/dma-axi-dmac.c
@@ -508,16 +508,13 @@ static struct axi_dmac_sg *axi_dmac_fill_linear_sg(struct axi_dmac_chan *chan,
segment_size = ((segment_size - 1) | chan->length_align_mask) + 1;
for (i = 0; i < num_periods; i++) {
- len = period_len;
-
- while (len > segment_size) {
+ for (len = period_len; len > segment_size; sg++) {
if (direction == DMA_DEV_TO_MEM)
sg->dest_addr = addr;
else
sg->src_addr = addr;
sg->x_len = segment_size;
sg->y_len = 1;
- sg++;
addr += segment_size;
len -= segment_size;
}
--
2.42.0
On 04-12-23, 15:03, Paul Cercueil wrote:
> Use a for() loop instead of a while() loop in axi_dmac_fill_linear_sg().
Why?
>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
> drivers/dma/dma-axi-dmac.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
> index 2457a420c13d..760940b21eab 100644
> --- a/drivers/dma/dma-axi-dmac.c
> +++ b/drivers/dma/dma-axi-dmac.c
> @@ -508,16 +508,13 @@ static struct axi_dmac_sg *axi_dmac_fill_linear_sg(struct axi_dmac_chan *chan,
> segment_size = ((segment_size - 1) | chan->length_align_mask) + 1;
>
> for (i = 0; i < num_periods; i++) {
> - len = period_len;
> -
> - while (len > segment_size) {
> + for (len = period_len; len > segment_size; sg++) {
> if (direction == DMA_DEV_TO_MEM)
> sg->dest_addr = addr;
> else
> sg->src_addr = addr;
> sg->x_len = segment_size;
> sg->y_len = 1;
> - sg++;
> addr += segment_size;
> len -= segment_size;
> }
> --
> 2.42.0
>
--
~Vinod
Hi Vinod,
Le lundi 11 décembre 2023 à 17:27 +0530, Vinod Koul a écrit :
> On 04-12-23, 15:03, Paul Cercueil wrote:
> > Use a for() loop instead of a while() loop in
> > axi_dmac_fill_linear_sg().
>
> Why?
Simplicity? Code quality?
-Paul
>
> >
> > Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> > ---
> > drivers/dma/dma-axi-dmac.c | 5 +----
> > 1 file changed, 1 insertion(+), 4 deletions(-)
> >
> > diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-
> > dmac.c
> > index 2457a420c13d..760940b21eab 100644
> > --- a/drivers/dma/dma-axi-dmac.c
> > +++ b/drivers/dma/dma-axi-dmac.c
> > @@ -508,16 +508,13 @@ static struct axi_dmac_sg
> > *axi_dmac_fill_linear_sg(struct axi_dmac_chan *chan,
> > segment_size = ((segment_size - 1) | chan-
> > >length_align_mask) + 1;
> >
> > for (i = 0; i < num_periods; i++) {
> > - len = period_len;
> > -
> > - while (len > segment_size) {
> > + for (len = period_len; len > segment_size; sg++) {
> > if (direction == DMA_DEV_TO_MEM)
> > sg->dest_addr = addr;
> > else
> > sg->src_addr = addr;
> > sg->x_len = segment_size;
> > sg->y_len = 1;
> > - sg++;
> > addr += segment_size;
> > len -= segment_size;
> > }
> > --
> > 2.42.0
> >
>
On 11-12-23, 13:15, Paul Cercueil wrote: > Hi Vinod, > > Le lundi 11 décembre 2023 à 17:27 +0530, Vinod Koul a écrit : > > On 04-12-23, 15:03, Paul Cercueil wrote: > > > Use a for() loop instead of a while() loop in > > > axi_dmac_fill_linear_sg(). > > > > Why? > > Simplicity? Code quality? It would be great to mention the reason :-) right? -- ~Vinod
© 2016 - 2025 Red Hat, Inc.