diff for duplicates of <4F27CA7D.601@renesas.com> diff --git a/a/1.txt b/N1/1.txt index 5133381..2cc4563 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -30,8 +30,7 @@ not empty, the DMA doesn't start. So, if I add codes like the following in the dma-simple.c, the renesas_usbhs driver can work correctly without the driver changes. If you think the code is good, would you merge it to your code? -======= chan_irqt() ======= - simple_chan_ld_cleanup(schan, false); +==== chan_irqt() === simple_chan_ld_cleanup(schan, false); + spin_lock_irq(&schan->chan_lock); + /* Next desc */ @@ -39,7 +38,7 @@ If you think the code is good, would you merge it to your code? + spin_unlock_irq(&schan->chan_lock); return IRQ_HANDLED; -============== +======= Best regards, Yoshihiro Shimoda @@ -49,7 +48,7 @@ Yoshihiro Shimoda > >> For reference, if I changed the threaded IRQ to tasklet, >> the 2 environment worked correctly: ->> ============== +>> ======= >> diff --git a/drivers/dma/dma-simple.c b/drivers/dma/dma-simple.c >> index 49d8f7d..65a5170 100644 >> --- a/drivers/dma/dma-simple.c @@ -60,7 +59,7 @@ Yoshihiro Shimoda >> >> - ret = ops->chan_irq(schan, irq) ? IRQ_WAKE_THREAD : IRQ_NONE; >> + ret = ops->chan_irq(schan, irq) ? IRQ_HANDLED : IRQ_NONE; ->> + if (ret == IRQ_HANDLED) +>> + if (ret = IRQ_HANDLED) >> + tasklet_schedule(&schan->tasklet); >> >> spin_unlock(&schan->chan_lock); @@ -73,8 +72,7 @@ Yoshihiro Shimoda >> { >> - struct dma_simple_chan *schan = dev; >> + struct dma_simple_chan *schan = (struct dma_simple_chan *)dev; ->> const struct dma_simple_ops *ops = ->> to_simple_dev(schan->dma_chan.device)->ops; +>> const struct dma_simple_ops *ops >> to_simple_dev(schan->dma_chan.device)->ops; >> struct dma_simple_desc *sdesc; >> @@ -744,15 +746,13 @@ static irqreturn_t chan_irqt(int irq, void *dev) >> spin_unlock_irq(&schan->chan_lock); @@ -106,7 +104,7 @@ Yoshihiro Shimoda >> }; >> >> /** ->> ============== +>> ======= >> >> Best regards, >> Yoshihiro Shimoda diff --git a/a/content_digest b/N1/content_digest index e0b4c39..75c003b 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -4,7 +4,7 @@ "ref\0Pine.LNX.4.64.1201270946150.32661@axis700.grange\0" "From\0Shimoda, Yoshihiro <yoshihiro.shimoda.uh@renesas.com>\0" "Subject\0Re: [PATCH 1/7 v2] dmaengine: add a simple dma library\0" - "Date\0Tue, 31 Jan 2012 20:03:25 +0900\0" + "Date\0Tue, 31 Jan 2012 11:03:25 +0000\0" "To\0Guennadi Liakhovetski <g.liakhovetski@gmx.de>\0" "Cc\0linux-kernel@vger.kernel.org" linux-sh@vger.kernel.org @@ -48,8 +48,7 @@ "So, if I add codes like the following in the dma-simple.c,\n" "the renesas_usbhs driver can work correctly without the driver changes.\n" "If you think the code is good, would you merge it to your code?\n" - "======= chan_irqt() =======\n" - "\tsimple_chan_ld_cleanup(schan, false);\n" + "==== chan_irqt() ===\tsimple_chan_ld_cleanup(schan, false);\n" "\n" "+\tspin_lock_irq(&schan->chan_lock);\n" "+\t/* Next desc */\n" @@ -57,7 +56,7 @@ "+\tspin_unlock_irq(&schan->chan_lock);\n" "\n" "\treturn IRQ_HANDLED;\n" - "==============\n" + "=======\n" "\n" "Best regards,\n" "Yoshihiro Shimoda\n" @@ -67,7 +66,7 @@ "> \n" ">> For reference, if I changed the threaded IRQ to tasklet,\n" ">> the 2 environment worked correctly:\n" - ">> ==============\n" + ">> =======\n" ">> diff --git a/drivers/dma/dma-simple.c b/drivers/dma/dma-simple.c\n" ">> index 49d8f7d..65a5170 100644\n" ">> --- a/drivers/dma/dma-simple.c\n" @@ -78,7 +77,7 @@ ">>\n" ">> -\tret = ops->chan_irq(schan, irq) ? IRQ_WAKE_THREAD : IRQ_NONE;\n" ">> +\tret = ops->chan_irq(schan, irq) ? IRQ_HANDLED : IRQ_NONE;\n" - ">> +\tif (ret == IRQ_HANDLED)\n" + ">> +\tif (ret = IRQ_HANDLED)\n" ">> +\t\ttasklet_schedule(&schan->tasklet);\n" ">>\n" ">> \tspin_unlock(&schan->chan_lock);\n" @@ -91,8 +90,7 @@ ">> {\n" ">> -\tstruct dma_simple_chan *schan = dev;\n" ">> +\tstruct dma_simple_chan *schan = (struct dma_simple_chan *)dev;\n" - ">> \tconst struct dma_simple_ops *ops =\n" - ">> \t\tto_simple_dev(schan->dma_chan.device)->ops;\n" + ">> \tconst struct dma_simple_ops *ops >> \t\tto_simple_dev(schan->dma_chan.device)->ops;\n" ">> \tstruct dma_simple_desc *sdesc;\n" ">> @@ -744,15 +746,13 @@ static irqreturn_t chan_irqt(int irq, void *dev)\n" ">> \tspin_unlock_irq(&schan->chan_lock);\n" @@ -124,7 +122,7 @@ ">> };\n" ">>\n" ">> /**\n" - ">> ==============\n" + ">> =======\n" ">>\n" ">> Best regards,\n" ">> Yoshihiro Shimoda\n" @@ -141,4 +139,4 @@ "Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>\n" EC No. -39fd92e57f5c42c896a088639c01f6d67026df67f704ed2f37b7969e5ffb672a +7567cbfdf9f476dbed7102757869296c4999960d6731e01fadef9053bf826726
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.