* [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer
@ 2010-03-23 13:33 Mika Westerberg
2010-03-23 13:41 ` Adrian Hunter
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Mika Westerberg @ 2010-03-23 13:33 UTC (permalink / raw)
To: linux-mtd; +Cc: kyungmin.park, dwmw2, Adrian Hunter
Function omap3_onenand_write_bufferram() maps the write buffer and stores the
returned handle in dma_src. However, when it does the DMA unmap, it uses wrong
DMA handle (dma_dst).
This patch fixes it to use the correct DMA handle.
Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com>
---
drivers/mtd/onenand/omap2.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c
index 75f38b9..2d81a3a 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -402,7 +402,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area,
dma_src = dma_map_single(&c->pdev->dev, buf, count, DMA_TO_DEVICE);
dma_dst = c->phys_base + bram_offset;
- if (dma_mapping_error(&c->pdev->dev, dma_dst)) {
+ if (dma_mapping_error(&c->pdev->dev, dma_src)) {
dev_err(&c->pdev->dev,
"Couldn't DMA map a %d byte buffer\n",
count);
@@ -425,7 +425,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area,
if (*done)
break;
- dma_unmap_single(&c->pdev->dev, dma_dst, count, DMA_TO_DEVICE);
+ dma_unmap_single(&c->pdev->dev, dma_src, count, DMA_TO_DEVICE);
if (!*done) {
dev_err(&c->pdev->dev, "timeout waiting for DMA\n");
--
1.5.6.5
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer 2010-03-23 13:33 [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer Mika Westerberg @ 2010-03-23 13:41 ` Adrian Hunter 2010-03-24 10:10 ` [PATCH v2] mtd: OneNAND: OMAP2/3: " Mika Westerberg 2010-04-06 7:58 ` [PATCH] mtd: OneNAND: OMAP3: " Arnaud Ebalard 2010-04-08 8:25 ` Artem Bityutskiy 2 siblings, 1 reply; 6+ messages in thread From: Adrian Hunter @ 2010-03-23 13:41 UTC (permalink / raw) To: Westerberg Mika.1 (EXT-Nixu/Helsinki) Cc: dwmw2@infradead.org, kyungmin.park@samsung.com, linux-mtd@lists.infradead.org Westerberg Mika.1 (EXT-Nixu/Helsinki) wrote: > Function omap3_onenand_write_bufferram() maps the write buffer and stores the > returned handle in dma_src. However, when it does the DMA unmap, it uses wrong > DMA handle (dma_dst). > > This patch fixes it to use the correct DMA handle. > > Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com> > --- > drivers/mtd/onenand/omap2.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c > index 75f38b9..2d81a3a 100644 > --- a/drivers/mtd/onenand/omap2.c > +++ b/drivers/mtd/onenand/omap2.c > @@ -402,7 +402,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, > > dma_src = dma_map_single(&c->pdev->dev, buf, count, DMA_TO_DEVICE); > dma_dst = c->phys_base + bram_offset; > - if (dma_mapping_error(&c->pdev->dev, dma_dst)) { > + if (dma_mapping_error(&c->pdev->dev, dma_src)) { > dev_err(&c->pdev->dev, > "Couldn't DMA map a %d byte buffer\n", > count); > @@ -425,7 +425,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, > if (*done) > break; > > - dma_unmap_single(&c->pdev->dev, dma_dst, count, DMA_TO_DEVICE); > + dma_unmap_single(&c->pdev->dev, dma_src, count, DMA_TO_DEVICE); > > if (!*done) { > dev_err(&c->pdev->dev, "timeout waiting for DMA\n"); What about omap2_onenand_write_bufferram() ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] mtd: OneNAND: OMAP2/3: unmap correct DMA buffer 2010-03-23 13:41 ` Adrian Hunter @ 2010-03-24 10:10 ` Mika Westerberg 0 siblings, 0 replies; 6+ messages in thread From: Mika Westerberg @ 2010-03-24 10:10 UTC (permalink / raw) To: linux-mtd; +Cc: kyungmin.park, dwmw2, Adrian Hunter Functions omap2_onenand_write_bufferram() and omap3_onenand_write_bufferram() map the write buffer and store the returned handle in variable dma_src. However, when DMA unmap is done, variable dma_dst is used instead of the correct dma_src. This patch fixes them to use the correct DMA buffer. Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com> --- drivers/mtd/onenand/omap2.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c index 75f38b9..f79a47b 100644 --- a/drivers/mtd/onenand/omap2.c +++ b/drivers/mtd/onenand/omap2.c @@ -402,7 +402,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, dma_src = dma_map_single(&c->pdev->dev, buf, count, DMA_TO_DEVICE); dma_dst = c->phys_base + bram_offset; - if (dma_mapping_error(&c->pdev->dev, dma_dst)) { + if (dma_mapping_error(&c->pdev->dev, dma_src)) { dev_err(&c->pdev->dev, "Couldn't DMA map a %d byte buffer\n", count); @@ -425,7 +425,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, if (*done) break; - dma_unmap_single(&c->pdev->dev, dma_dst, count, DMA_TO_DEVICE); + dma_unmap_single(&c->pdev->dev, dma_src, count, DMA_TO_DEVICE); if (!*done) { dev_err(&c->pdev->dev, "timeout waiting for DMA\n"); @@ -520,7 +520,7 @@ static int omap2_onenand_write_bufferram(struct mtd_info *mtd, int area, dma_src = dma_map_single(&c->pdev->dev, (void *) buffer, count, DMA_TO_DEVICE); dma_dst = c->phys_base + bram_offset; - if (dma_mapping_error(&c->pdev->dev, dma_dst)) { + if (dma_mapping_error(&c->pdev->dev, dma_src)) { dev_err(&c->pdev->dev, "Couldn't DMA map a %d byte buffer\n", count); @@ -538,7 +538,7 @@ static int omap2_onenand_write_bufferram(struct mtd_info *mtd, int area, omap_start_dma(c->dma_channel); wait_for_completion(&c->dma_done); - dma_unmap_single(&c->pdev->dev, dma_dst, count, DMA_TO_DEVICE); + dma_unmap_single(&c->pdev->dev, dma_src, count, DMA_TO_DEVICE); return 0; } -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer 2010-03-23 13:33 [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer Mika Westerberg 2010-03-23 13:41 ` Adrian Hunter @ 2010-04-06 7:58 ` Arnaud Ebalard 2010-04-06 8:55 ` Adrian Hunter 2010-04-08 8:25 ` Artem Bityutskiy 2 siblings, 1 reply; 6+ messages in thread From: Arnaud Ebalard @ 2010-04-06 7:58 UTC (permalink / raw) To: Mika Westerberg; +Cc: dwmw2, kyungmin.park, linux-mtd, Adrian Hunter Hi, Mika Westerberg <ext-mika.1.westerberg@nokia.com> writes: > Function omap3_onenand_write_bufferram() maps the write buffer and stores the > returned handle in dma_src. However, when it does the DMA unmap, it uses wrong > DMA handle (dma_dst). > > This patch fixes it to use the correct DMA handle. > > Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com> > --- > drivers/mtd/onenand/omap2.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c > index 75f38b9..2d81a3a 100644 > --- a/drivers/mtd/onenand/omap2.c > +++ b/drivers/mtd/onenand/omap2.c > @@ -402,7 +402,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, > > dma_src = dma_map_single(&c->pdev->dev, buf, count, DMA_TO_DEVICE); > dma_dst = c->phys_base + bram_offset; > - if (dma_mapping_error(&c->pdev->dev, dma_dst)) { > + if (dma_mapping_error(&c->pdev->dev, dma_src)) { > dev_err(&c->pdev->dev, > "Couldn't DMA map a %d byte buffer\n", > count); > @@ -425,7 +425,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, > if (*done) > break; > > - dma_unmap_single(&c->pdev->dev, dma_dst, count, DMA_TO_DEVICE); > + dma_unmap_single(&c->pdev->dev, dma_src, count, DMA_TO_DEVICE); > > if (!*done) { > dev_err(&c->pdev->dev, "timeout waiting for DMA\n"); That patch removes the kernel panic I get when booting current l-o kernel on my N900. Tested-by: Arnaud Ebalard <arno@natisbad.org> Cheers, a+ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer 2010-04-06 7:58 ` [PATCH] mtd: OneNAND: OMAP3: " Arnaud Ebalard @ 2010-04-06 8:55 ` Adrian Hunter 0 siblings, 0 replies; 6+ messages in thread From: Adrian Hunter @ 2010-04-06 8:55 UTC (permalink / raw) To: dwmw2@infradead.org Cc: kyungmin.park@samsung.com, Arnaud Ebalard, linux-mtd@lists.infradead.org, Westerberg Mika.1 (EXT-Nixu/Helsinki) ext Arnaud Ebalard wrote: > Hi, > > Mika Westerberg <ext-mika.1.westerberg@nokia.com> writes: > >> Function omap3_onenand_write_bufferram() maps the write buffer and stores the >> returned handle in dma_src. However, when it does the DMA unmap, it uses wrong >> DMA handle (dma_dst). >> >> This patch fixes it to use the correct DMA handle. >> >> Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com> >> --- >> drivers/mtd/onenand/omap2.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c >> index 75f38b9..2d81a3a 100644 >> --- a/drivers/mtd/onenand/omap2.c >> +++ b/drivers/mtd/onenand/omap2.c >> @@ -402,7 +402,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, >> >> dma_src = dma_map_single(&c->pdev->dev, buf, count, DMA_TO_DEVICE); >> dma_dst = c->phys_base + bram_offset; >> - if (dma_mapping_error(&c->pdev->dev, dma_dst)) { >> + if (dma_mapping_error(&c->pdev->dev, dma_src)) { >> dev_err(&c->pdev->dev, >> "Couldn't DMA map a %d byte buffer\n", >> count); >> @@ -425,7 +425,7 @@ static int omap3_onenand_write_bufferram(struct mtd_info *mtd, int area, >> if (*done) >> break; >> >> - dma_unmap_single(&c->pdev->dev, dma_dst, count, DMA_TO_DEVICE); >> + dma_unmap_single(&c->pdev->dev, dma_src, count, DMA_TO_DEVICE); >> >> if (!*done) { >> dev_err(&c->pdev->dev, "timeout waiting for DMA\n"); > > That patch removes the kernel panic I get when booting current l-o > kernel on my N900. > > Tested-by: Arnaud Ebalard <arno@natisbad.org> > > Cheers, > > a+ > Acked-by: Adrian Hunter <adrian.hunter@nokia.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer 2010-03-23 13:33 [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer Mika Westerberg 2010-03-23 13:41 ` Adrian Hunter 2010-04-06 7:58 ` [PATCH] mtd: OneNAND: OMAP3: " Arnaud Ebalard @ 2010-04-08 8:25 ` Artem Bityutskiy 2 siblings, 0 replies; 6+ messages in thread From: Artem Bityutskiy @ 2010-04-08 8:25 UTC (permalink / raw) To: Mika Westerberg; +Cc: dwmw2, kyungmin.park, linux-mtd, Adrian Hunter On Tue, 2010-03-23 at 15:33 +0200, Mika Westerberg wrote: > Function omap3_onenand_write_bufferram() maps the write buffer and stores the > returned handle in dma_src. However, when it does the DMA unmap, it uses wrong > DMA handle (dma_dst). > > This patch fixes it to use the correct DMA handle. > > Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com> Pushed to l2-mtd-2.6.git / master, thanks. -- Best Regards, Artem Bityutskiy (Артём Битюцкий) ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-04-08 8:25 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-03-23 13:33 [PATCH] mtd: OneNAND: OMAP3: unmap correct DMA buffer Mika Westerberg 2010-03-23 13:41 ` Adrian Hunter 2010-03-24 10:10 ` [PATCH v2] mtd: OneNAND: OMAP2/3: " Mika Westerberg 2010-04-06 7:58 ` [PATCH] mtd: OneNAND: OMAP3: " Arnaud Ebalard 2010-04-06 8:55 ` Adrian Hunter 2010-04-08 8:25 ` Artem Bityutskiy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).