From: Marek Vasut <marex@denx.de>
To: Cyrille Pitchen <cyrille.pitchen@atmel.com>, ben@decadent.org.uk
Cc: nicolas.ferre@atmel.com, broonie@kernel.org,
linux-spi@vger.kernel.org, dwmw2@infradead.org,
computersforpeace@gmail.com, zajec5@gmail.com,
beanhuo@micron.com, juhosg@openwrt.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com,
ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
linux-mtd@lists.infradead.org
Subject: Re: [PATCH linux-next v4 5/5] mtd: atmel-quadspi: add driver for Atmel QSPI controller
Date: Mon, 24 Aug 2015 19:45:33 +0200 [thread overview]
Message-ID: <201508241945.33577.marex@denx.de> (raw)
In-Reply-To: <55DB4EA6.9090807@atmel.com>
On Monday, August 24, 2015 at 07:04:38 PM, Cyrille Pitchen wrote:
> Hi Marek,
Hi!
> Le 24/08/2015 13:03, Marek Vasut a écrit :
> > On Monday, August 24, 2015 at 12:14:00 PM, Cyrille Pitchen wrote:
> >> This driver add support to the new Atmel QSPI controller embedded into
> >> sama5d2x SoCs. It expects a NOR memory to be connected to the QSPI
> >> controller.
[...]
> >> + /* Compute address parameters */
> >> + switch (cmd->enable.bits.address) {
> >> + case 4:
> >> + ifr |= QSPI_IFR_ADDRL;
> >> + /*break;*/ /* fallback to the 24bit address case */
> >
> > What's this commented out bit of code for ? :-)
>
> I just wanted to stress out there was no missing "break;".
> I've reworded the comment to:
> /* No "break" on purpose: fallback to the 24bit address case. */
Oh, the address is in bytes . I see, yes, it makes sense to be more
explicit here about the purpose of the fallback. I think this change
in the comment will make it easier for everyone who comes back in a
few years and reads this code.
> >> + case 3:
> >> + iar = (cmd->enable.bits.data) ? 0 : cmd->address;
> >> + ifr |= QSPI_IFR_ADDREN;
> >> + break;
> >> + case 0:
> >> + break;
> >> + default:
> >> + return -EINVAL;
> >> + }
> >
> > [...]
> >
> >> +no_data:
> >> + /* Poll INSTRuction End status */
> >> + sr = qspi_readl(aq, QSPI_SR);
> >> + if (sr & QSPI_SR_INSTRE)
> >> + return err;
> >> +
> >> + /* Wait for INSTRuction End interrupt */
> >> + init_completion(&aq->completion);
> >
> > You should use reinit_completion() in the code. init_completion()
> > should be used only in the probe() function and nowhere else.
>
> Alright. In the next version I'll rename the "completion" member of
> struct atmel_qspi into "cmd_completion". Also I'll add another
> dma_completion member in this very same structure to replace the local
> "struct completion completion" in atmel_qspi_run_dma_transfer().
>
> Then I'll call init_completion() on both cmd_completion and dma_completion
> only from atmel_qspi_probe() and reinit_completion() elsewhere.
>
> >> + aq->pending = 0;
> >> + qspi_writel(aq, QSPI_IER, QSPI_SR_INSTRE);
> >> + if (!wait_for_completion_timeout(&aq->completion,
> >> + msecs_to_jiffies(1000)))
> >> + err = -ETIMEDOUT;
> >> + qspi_writel(aq, QSPI_IDR, QSPI_SR_INSTRE);
> >> +
> >> + return err;
> >> +}
> >
> > [...]
> >
> > Hope this helps :)
>
> Indeed, it does! I still work on the next version of this series to take
> all your comments into account.
Thanks :)
WARNING: multiple messages have this Message-ID (diff)
From: Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>
To: Cyrille Pitchen
<cyrille.pitchen-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>,
ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org
Cc: nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org,
broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
beanhuo-AL4WhLSQfzjQT0dZR+AlfA@public.gmane.org,
juhosg-p3rKhJxN3npAfugRpC6u6w@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH linux-next v4 5/5] mtd: atmel-quadspi: add driver for Atmel QSPI controller
Date: Mon, 24 Aug 2015 19:45:33 +0200 [thread overview]
Message-ID: <201508241945.33577.marex@denx.de> (raw)
In-Reply-To: <55DB4EA6.9090807-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
On Monday, August 24, 2015 at 07:04:38 PM, Cyrille Pitchen wrote:
> Hi Marek,
Hi!
> Le 24/08/2015 13:03, Marek Vasut a écrit :
> > On Monday, August 24, 2015 at 12:14:00 PM, Cyrille Pitchen wrote:
> >> This driver add support to the new Atmel QSPI controller embedded into
> >> sama5d2x SoCs. It expects a NOR memory to be connected to the QSPI
> >> controller.
[...]
> >> + /* Compute address parameters */
> >> + switch (cmd->enable.bits.address) {
> >> + case 4:
> >> + ifr |= QSPI_IFR_ADDRL;
> >> + /*break;*/ /* fallback to the 24bit address case */
> >
> > What's this commented out bit of code for ? :-)
>
> I just wanted to stress out there was no missing "break;".
> I've reworded the comment to:
> /* No "break" on purpose: fallback to the 24bit address case. */
Oh, the address is in bytes . I see, yes, it makes sense to be more
explicit here about the purpose of the fallback. I think this change
in the comment will make it easier for everyone who comes back in a
few years and reads this code.
> >> + case 3:
> >> + iar = (cmd->enable.bits.data) ? 0 : cmd->address;
> >> + ifr |= QSPI_IFR_ADDREN;
> >> + break;
> >> + case 0:
> >> + break;
> >> + default:
> >> + return -EINVAL;
> >> + }
> >
> > [...]
> >
> >> +no_data:
> >> + /* Poll INSTRuction End status */
> >> + sr = qspi_readl(aq, QSPI_SR);
> >> + if (sr & QSPI_SR_INSTRE)
> >> + return err;
> >> +
> >> + /* Wait for INSTRuction End interrupt */
> >> + init_completion(&aq->completion);
> >
> > You should use reinit_completion() in the code. init_completion()
> > should be used only in the probe() function and nowhere else.
>
> Alright. In the next version I'll rename the "completion" member of
> struct atmel_qspi into "cmd_completion". Also I'll add another
> dma_completion member in this very same structure to replace the local
> "struct completion completion" in atmel_qspi_run_dma_transfer().
>
> Then I'll call init_completion() on both cmd_completion and dma_completion
> only from atmel_qspi_probe() and reinit_completion() elsewhere.
>
> >> + aq->pending = 0;
> >> + qspi_writel(aq, QSPI_IER, QSPI_SR_INSTRE);
> >> + if (!wait_for_completion_timeout(&aq->completion,
> >> + msecs_to_jiffies(1000)))
> >> + err = -ETIMEDOUT;
> >> + qspi_writel(aq, QSPI_IDR, QSPI_SR_INSTRE);
> >> +
> >> + return err;
> >> +}
> >
> > [...]
> >
> > Hope this helps :)
>
> Indeed, it does! I still work on the next version of this series to take
> all your comments into account.
Thanks :)
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH linux-next v4 5/5] mtd: atmel-quadspi: add driver for Atmel QSPI controller
Date: Mon, 24 Aug 2015 19:45:33 +0200 [thread overview]
Message-ID: <201508241945.33577.marex@denx.de> (raw)
In-Reply-To: <55DB4EA6.9090807@atmel.com>
On Monday, August 24, 2015 at 07:04:38 PM, Cyrille Pitchen wrote:
> Hi Marek,
Hi!
> Le 24/08/2015 13:03, Marek Vasut a ?crit :
> > On Monday, August 24, 2015 at 12:14:00 PM, Cyrille Pitchen wrote:
> >> This driver add support to the new Atmel QSPI controller embedded into
> >> sama5d2x SoCs. It expects a NOR memory to be connected to the QSPI
> >> controller.
[...]
> >> + /* Compute address parameters */
> >> + switch (cmd->enable.bits.address) {
> >> + case 4:
> >> + ifr |= QSPI_IFR_ADDRL;
> >> + /*break;*/ /* fallback to the 24bit address case */
> >
> > What's this commented out bit of code for ? :-)
>
> I just wanted to stress out there was no missing "break;".
> I've reworded the comment to:
> /* No "break" on purpose: fallback to the 24bit address case. */
Oh, the address is in bytes . I see, yes, it makes sense to be more
explicit here about the purpose of the fallback. I think this change
in the comment will make it easier for everyone who comes back in a
few years and reads this code.
> >> + case 3:
> >> + iar = (cmd->enable.bits.data) ? 0 : cmd->address;
> >> + ifr |= QSPI_IFR_ADDREN;
> >> + break;
> >> + case 0:
> >> + break;
> >> + default:
> >> + return -EINVAL;
> >> + }
> >
> > [...]
> >
> >> +no_data:
> >> + /* Poll INSTRuction End status */
> >> + sr = qspi_readl(aq, QSPI_SR);
> >> + if (sr & QSPI_SR_INSTRE)
> >> + return err;
> >> +
> >> + /* Wait for INSTRuction End interrupt */
> >> + init_completion(&aq->completion);
> >
> > You should use reinit_completion() in the code. init_completion()
> > should be used only in the probe() function and nowhere else.
>
> Alright. In the next version I'll rename the "completion" member of
> struct atmel_qspi into "cmd_completion". Also I'll add another
> dma_completion member in this very same structure to replace the local
> "struct completion completion" in atmel_qspi_run_dma_transfer().
>
> Then I'll call init_completion() on both cmd_completion and dma_completion
> only from atmel_qspi_probe() and reinit_completion() elsewhere.
>
> >> + aq->pending = 0;
> >> + qspi_writel(aq, QSPI_IER, QSPI_SR_INSTRE);
> >> + if (!wait_for_completion_timeout(&aq->completion,
> >> + msecs_to_jiffies(1000)))
> >> + err = -ETIMEDOUT;
> >> + qspi_writel(aq, QSPI_IDR, QSPI_SR_INSTRE);
> >> +
> >> + return err;
> >> +}
> >
> > [...]
> >
> > Hope this helps :)
>
> Indeed, it does! I still work on the next version of this series to take
> all your comments into account.
Thanks :)
next prev parent reply other threads:[~2015-08-24 17:45 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-24 10:13 [PATCH linux-next v4 0/5] add driver for Atmel QSPI controller Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` [PATCH linux-next v4 1/5] mtd: spi-nor: notify (Q)SPI controller about protocol change Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:16 ` Marek Vasut
2015-08-24 10:16 ` Marek Vasut
2015-08-24 10:13 ` [PATCH linux-next v4 2/5] Documentation: mtd: add a DT property to set the number of dummy cycles Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` [PATCH linux-next v4 3/5] mtd: spi-nor: allow to tune " Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:48 ` Marek Vasut
2015-08-24 10:48 ` Marek Vasut
2015-08-24 16:42 ` Cyrille Pitchen
2015-08-24 16:42 ` Cyrille Pitchen
2015-08-24 16:42 ` Cyrille Pitchen
2015-08-24 16:42 ` Cyrille Pitchen
2015-08-24 16:48 ` Marek Vasut
2015-08-24 16:48 ` Marek Vasut
2015-08-24 16:48 ` Marek Vasut
2015-08-24 10:13 ` [PATCH linux-next v4 4/5] Documentation: atmel-quadspi: add binding file for Atmel QSPI driver Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:13 ` Cyrille Pitchen
2015-08-24 10:22 ` Marek Vasut
2015-08-24 10:22 ` Marek Vasut
2015-08-24 10:22 ` Marek Vasut
2015-08-24 10:14 ` [PATCH linux-next v4 5/5] mtd: atmel-quadspi: add driver for Atmel QSPI controller Cyrille Pitchen
2015-08-24 10:14 ` Cyrille Pitchen
2015-08-24 10:14 ` Cyrille Pitchen
2015-08-24 11:03 ` Marek Vasut
2015-08-24 11:03 ` Marek Vasut
2015-08-24 11:03 ` Marek Vasut
2015-08-24 12:49 ` Russell King - ARM Linux
2015-08-24 12:49 ` Russell King - ARM Linux
2015-08-24 12:49 ` Russell King - ARM Linux
2015-08-24 13:15 ` Marek Vasut
2015-08-24 13:15 ` Marek Vasut
2015-08-24 17:04 ` Cyrille Pitchen
2015-08-24 17:04 ` Cyrille Pitchen
2015-08-24 17:04 ` Cyrille Pitchen
2015-08-24 17:45 ` Marek Vasut [this message]
2015-08-24 17:45 ` Marek Vasut
2015-08-24 17:45 ` Marek Vasut
2015-08-25 9:46 ` Jonas Gorski
2015-08-25 9:46 ` Jonas Gorski
2015-08-25 9:46 ` Jonas Gorski
2015-08-25 10:21 ` Cyrille Pitchen
2015-08-25 10:21 ` Cyrille Pitchen
2015-08-25 10:21 ` Cyrille Pitchen
2015-08-25 10:17 ` Cyrille Pitchen
2015-08-25 10:17 ` Cyrille Pitchen
2015-08-25 10:17 ` Cyrille Pitchen
2015-08-25 10:22 ` Marek Vasut
2015-08-25 10:22 ` Marek Vasut
2015-08-25 10:22 ` Marek Vasut
2015-08-25 15:57 ` Brian Norris
2015-08-25 15:57 ` Brian Norris
2015-08-25 15:57 ` Brian Norris
2015-08-25 1:44 ` Bean Huo 霍斌斌 (beanhuo)
2015-08-25 1:44 ` Bean Huo 霍斌斌 (beanhuo)
2015-08-25 11:24 ` Cyrille Pitchen
2015-08-25 11:24 ` Cyrille Pitchen
2015-08-25 11:24 ` Cyrille Pitchen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201508241945.33577.marex@denx.de \
--to=marex@denx.de \
--cc=beanhuo@micron.com \
--cc=ben@decadent.org.uk \
--cc=broonie@kernel.org \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@atmel.com \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=juhosg@openwrt.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=nicolas.ferre@atmel.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=zajec5@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.