From: Joe Perches <joe@perches.com>
To: Paolo Pisati <p.pisati@gmail.com>, Alan Tull <atull@kernel.org>,
Moritz Fischer <mdf@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>
Cc: linux-fpga@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] fpga: lattice machxo2: Add Lattice MachXO2 support
Date: Wed, 21 Mar 2018 11:04:52 -0700 [thread overview]
Message-ID: <1521655492.7999.13.camel@perches.com> (raw)
In-Reply-To: <1521653726-24625-3-git-send-email-p.pisati@gmail.com>
On Wed, 2018-03-21 at 18:35 +0100, Paolo Pisati wrote:
> This patch adds support to the FPGA manager for programming
> MachXO2 device’s internal flash memory, via slave SPI.
style trivia:
> diff --git a/drivers/fpga/machxo2-spi.c b/drivers/fpga/machxo2-spi.c
[]
> +static int get_status(struct spi_device *spi, unsigned long *status)
> +{
> + struct spi_message msg;
> + struct spi_transfer rx, tx;
> + u8 cmd[] = LSC_READ_STATUS;
static const u8 cmd[]
here and everywhere else as all the tx_buf assignments
of cmd are to const void *
> + int ret;
> +
> + memset(&rx, 0, sizeof(rx));
> + memset(&tx, 0, sizeof(tx));
> + tx.tx_buf = cmd;
[]
> +#ifdef DEBUG
> +static void dump_status_reg(unsigned long *status)
> +{
Instead of multiple declarations of dump_status_reg
it's frequently nicer to use a style like
static void debug_func(args...)
{
#ifdef DEBUG
[code...]
#endif
}
so if function arguments ever need to be changed
it's only required to be changed in one spot and
not multiply compilation tested with and without
the DEBUG definition
> + char *ferr;
> +
> + switch (get_err(status)) {
> + case ENOERR:
> + ferr = "No Error";
> + break;
> + case EID:
> + ferr = "ID ERR";
> + break;
> + case ECMD:
> + ferr = "CMD ERR";
> + break;
> + case ECRC:
> + ferr = "CRC ERR";
> + break;
> + case EPREAM:
> + ferr = "Preamble ERR";
> + break;
> + case EABRT:
> + ferr = "Abort ERR";
> + break;
> + case EOVERFL:
> + ferr = "Overflow ERR";
> + break;
> + case ESDMEOF:
> + ferr = "SDM EOF";
> + break;
> + default:
> + ferr = "Default switch case";
> + }
It's frequently nicer to use a static function
for these enum -> string conversions like:
static const char *get_err_string(unsigned long err)
{
switch (err) {
case ENOERR: return "No Error";
case EID: return "ID ERR";
case ECMD: return "CMD ERR";
[...]
}
return "default switch case";
}
> + pr_debug("machxo2 status: 0x%08lX - done=%d, cfgena=%d, busy=%d, fail=%d, devver=%d, err=%s\n",
> + *status, test_bit(DONE, status), test_bit(ENAB, status),
> + test_bit(BUSY, status), test_bit(FAIL, status),
> + test_bit(DVER, status), ferr);
So instead of ferr, this could use
get_err_string(*status)
And please try to keep a consistent alignment for
indentation of multiple line statements
> +}
> +#else
> +static void dump_status_reg(unsigned long *status) {}
> +#endif
> +
> +static int wait_until_not_busy(struct spi_device *spi)
> +{
> + unsigned long status;
> + int ret, loop = 0;
> +
> + do {
> + ret = get_status(spi, &status);
> + if (ret)
> + break;
> + if (++loop >= MACHXO2_MAX_BUSY_LOOP) {
> + ret = -EBUSY;
> + break;
> + }
> + } while (test_bit(BUSY, &status));
> +
> + return ret;
> +}
Direct returns are OK and would shorten the function
line count.
next prev parent reply other threads:[~2018-03-21 18:10 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-21 17:35 [PATCH 0/2 v7] Lattice MachXO2 Slave SPI FPGA Manager support Paolo Pisati
2018-03-21 17:35 ` [PATCH 1/2] dt: bindings: fpga: add lattice machxo2 slave spi binding description Paolo Pisati
2018-03-21 17:35 ` [PATCH 2/2] fpga: lattice machxo2: Add Lattice MachXO2 support Paolo Pisati
2018-03-21 18:04 ` Joe Perches [this message]
2018-03-22 17:26 ` Paolo Pisati
2018-03-22 18:30 ` Joe Perches
2018-03-22 21:32 ` Alan Tull
2018-03-22 21:34 ` Joe Perches
-- strict thread matches above, loose matches on Subject: below --
2018-03-23 12:27 [PATCH 0/2 v8] Lattice MachXO2 Slave SPI FPGA Manager support Paolo Pisati
2018-03-23 12:27 ` [PATCH 2/2] fpga: lattice machxo2: Add Lattice MachXO2 support Paolo Pisati
2018-03-28 16:26 ` Alan Tull
2018-03-28 20:03 ` Alan Tull
2018-03-29 14:33 ` Paolo Pisati
2018-03-16 15:54 [PATCH 0/2 v6] Lattice MachXO2 Slave SPI FPGA Manager support Paolo Pisati
2018-03-16 15:54 ` [PATCH 2/2] fpga: lattice machxo2: Add Lattice MachXO2 support Paolo Pisati
2018-03-16 16:26 ` Moritz Fischer
2018-03-19 18:09 ` Paolo Pisati
2017-07-06 10:01 [PATCH v5 0/2] Lattice MachXO2 Slave SPI FPGA Manager support Paolo Pisati
[not found] ` <1499335270-6512-1-git-send-email-p.pisati-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-07-06 10:01 ` [PATCH 2/2] fpga: lattice machxo2: Add Lattice MachXO2 support Paolo Pisati
2017-07-06 10:01 ` Paolo Pisati
2017-07-06 14:22 ` Moritz Fischer
2017-04-23 15:20 [PATCH 0/2] Lattice MachXO2 Passive SPI FPGA Manager support Paolo Pisati
[not found] ` <1492960845-342-1-git-send-email-p.pisati-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-23 15:20 ` [PATCH 2/2] fpga: lattice machxo2: Add Lattice MachXO2 support Paolo Pisati
2017-04-23 15:20 ` Paolo Pisati
[not found] ` <1492960845-342-3-git-send-email-p.pisati-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-25 15:59 ` Alan Tull
2017-04-25 15:59 ` Alan Tull
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=1521655492.7999.13.camel@perches.com \
--to=joe@perches.com \
--cc=atull@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mdf@kernel.org \
--cc=p.pisati@gmail.com \
--cc=robh+dt@kernel.org \
/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.