From: Andy Shevchenko <andriy.shevchenko@intel•com>
To: Jae Hyun Yoo <jae.hyun.yoo@linux•intel.com>
Cc: Mark Rutland <mark.rutland@arm•com>,
Randy Dunlap <rdunlap@infradead•org>,
Tomer Maimon <tmaimon77@gmail•com>,
devicetree@vger•kernel.org,
Frederic Barrat <fbarrat@linux•vnet.ibm.com>,
Mauro Carvalho Chehab <mchehab+samsung@kernel•org>,
Lee Jones <lee.jones@linaro•org>,
Eric Sandeen <sandeen@redhat•com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm•com>,
Jonathan Corbet <corbet@lwn•net>,
openbmc@lists•ozlabs.org, linux-doc@vger•kernel.org,
Kishon Vijay Abraham I <kishon@ti•com>,
Joel Stanley <joel@jms•id.au>,
"Bryant G . Ly" <bryantly@linux•vnet.ibm.com>,
Uwe Kleine-Konig <u.kleine-koenig@pengutronix•de>,
David Kershner <david.kershner@unisys•com>,
Guenter Roeck <linux@roeck-us•net>, Wu Hao <hao.wu@intel•com>,
linux-hwmon@vger•kernel.org, Jean Delvare <jdelvare@suse•com>,
Arnd Bergmann <arnd@arndb•de>,
Philippe Ombredanne <pombredanne@nexb•com>,
Johan Hovold <johan@kernel•org>,
Tomohiro Kusumi <kusumi.tomohiro@gmail•com>,
Rob Herring <robh+dt@kernel•org>,
Thomas Gleixner <tglx@linutronix•de>,
Sagar Dharia <sdharia@codeaurora•org>,
linux-arm-kernel@lists•infradead.org,
Juergen Gross <jgross@suse•com>,
Cyrille Pitchen <cyrille.pitchen@wedev4u•fr>,
Ryan Chen <ryan_chen@aspeedtech•com>,
Andrew Jeffery <andrew@aj•id.au>,
Greg Kroah-Hartman <gregkh@linuxfoundation•org>,
"Darrick J . Wong" <darrick.wong@oracle•com>,
Stephen Boyd <sboyd@codeaurora•org>,
Vinod Koul <vkoul@kernel•org>,
Gustavo Pimentel <gustavo.pimentel@synopsys•com>,
Andrew Morton <akpm@linux-foundation•org>,
Robin Murphy <robin.murphy@arm•com>,
"David S . Miller" <davem@davemloft•net>
Subject: Re: [PATCH v11 06/14] peci: Add Aspeed PECI adapter driver
Date: Wed, 11 Dec 2019 22:28:18 +0200 [thread overview]
Message-ID: <20191211202818.GD32742@smile.fi.intel.com> (raw)
In-Reply-To: <20191211194624.2872-7-jae.hyun.yoo@linux.intel.com>
On Wed, Dec 11, 2019 at 11:46:16AM -0800, Jae Hyun Yoo wrote:
> This commit adds Aspeed PECI adapter driver for Aspeed
> AST24xx/25xx/26xx SoCs.
...
> +#define ASPEED_PECI_CMD_IDLE_MASK (ASPEED_PECI_CMD_STS_MASK | \
> + ASPEED_PECI_CMD_PIN_MON)
Better looking when the value completely occupies second line without touching
the first.
...
> +static int aspeed_peci_check_idle(struct aspeed_peci *priv)
> +{
> + ulong timeout = jiffies + usecs_to_jiffies(ASPEED_PECI_IDLE_CHECK_TIMEOUT_USEC);
> + u32 cmd_sts;
Like in the previous patch this one has hard to read timeout loops with inefficient code.
> + for (;;) {
> + cmd_sts = readl(priv->base + ASPEED_PECI_CMD);
> + if (!(cmd_sts & ASPEED_PECI_CMD_IDLE_MASK))
> + break;
> + if (time_after(jiffies, timeout)) {
This is actually main exit condition (vs. infinite loop).
> + cmd_sts = readl(priv->base + ASPEED_PECI_CMD);
This make no sense. If you would like to have one more iteration, just spell it
explicitly.
> + break;
> + }
> + usleep_range((ASPEED_PECI_IDLE_CHECK_INTERVAL_USEC >> 2) + 1,
> + ASPEED_PECI_IDLE_CHECK_INTERVAL_USEC);
> + }
> +
> + return !(cmd_sts & ASPEED_PECI_CMD_IDLE_MASK) ? 0 : -ETIMEDOUT;
Ditto.
> +}
Now look at the other variant:
do {
...do something...
if (success)
return 0;
usleep(...);
} while (time_before(...));
return -ETIMEDOUT;
* Easy
* less LOCs
* guaranteed always to be at least one iteration
* has explicitly spelled exit condition
BUT!
In this very case you may do even better if you read iopoll.h, i.e
readl_poll_timeout() has this functionality embedded in the macro.
--
With Best Regards,
Andy Shevchenko
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-12-11 20:28 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-11 19:46 [PATCH v11 00/14] PECI device driver introduction Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 01/14] dt-bindings: Add PECI subsystem document Jae Hyun Yoo
2019-12-18 2:52 ` Rob Herring
2019-12-18 23:12 ` Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 02/14] Documentation: ioctl: Add ioctl numbers for PECI subsystem Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 04/14] dt-bindings: Add bindings document of Aspeed PECI adapter Jae Hyun Yoo
2019-12-18 2:57 ` Rob Herring
2019-12-18 23:21 ` Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 05/14] ARM: dts: aspeed: Add PECI node Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 06/14] peci: Add Aspeed PECI adapter driver Jae Hyun Yoo
2019-12-11 20:28 ` Andy Shevchenko [this message]
2019-12-12 0:50 ` Jae Hyun Yoo
2019-12-12 8:47 ` Andy Shevchenko
2019-12-12 18:51 ` Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 07/14] dt-bindings: peci: add NPCM PECI documentation Jae Hyun Yoo
2019-12-18 14:42 ` Rob Herring
2019-12-18 23:30 ` Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 08/14] ARM: dts: npcm7xx: Add PECI node Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 09/14] peci: npcm: add NPCM PECI driver Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 10/14] dt-bindings: mfd: Add Intel PECI client bindings document Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 11/14] mfd: intel-peci-client: Add Intel PECI client driver Jae Hyun Yoo
2019-12-16 16:01 ` Lee Jones
2019-12-16 21:57 ` Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 12/14] Documentation: hwmon: Add documents for PECI hwmon drivers Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 13/14] hwmon: Add PECI cputemp driver Jae Hyun Yoo
2019-12-13 6:24 ` Guenter Roeck
2019-12-16 20:43 ` Jae Hyun Yoo
2019-12-11 19:46 ` [PATCH v11 14/14] hwmon: Add PECI dimmtemp driver Jae Hyun Yoo
2019-12-13 6:32 ` Guenter Roeck
2019-12-16 21:04 ` Jae Hyun Yoo
2019-12-16 21:21 ` Guenter Roeck
2019-12-16 22:17 ` Jae Hyun Yoo
2019-12-16 23:27 ` Guenter Roeck
2019-12-16 23:31 ` Jae Hyun Yoo
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=20191211202818.GD32742@smile.fi.intel.com \
--to=andriy.shevchenko@intel$(echo .)com \
--cc=akpm@linux-foundation$(echo .)org \
--cc=andrew@aj$(echo .)id.au \
--cc=arnd@arndb$(echo .)de \
--cc=bryantly@linux$(echo .)vnet.ibm.com \
--cc=corbet@lwn$(echo .)net \
--cc=cyrille.pitchen@wedev4u$(echo .)fr \
--cc=darrick.wong@oracle$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=david.kershner@unisys$(echo .)com \
--cc=devicetree@vger$(echo .)kernel.org \
--cc=fbarrat@linux$(echo .)vnet.ibm.com \
--cc=gregkh@linuxfoundation$(echo .)org \
--cc=gustavo.pimentel@synopsys$(echo .)com \
--cc=hao.wu@intel$(echo .)com \
--cc=jae.hyun.yoo@linux$(echo .)intel.com \
--cc=jdelvare@suse$(echo .)com \
--cc=jgross@suse$(echo .)com \
--cc=joel@jms$(echo .)id.au \
--cc=johan@kernel$(echo .)org \
--cc=kishon@ti$(echo .)com \
--cc=kusumi.tomohiro@gmail$(echo .)com \
--cc=lee.jones@linaro$(echo .)org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-doc@vger$(echo .)kernel.org \
--cc=linux-hwmon@vger$(echo .)kernel.org \
--cc=linux@roeck-us$(echo .)net \
--cc=lorenzo.pieralisi@arm$(echo .)com \
--cc=mark.rutland@arm$(echo .)com \
--cc=mchehab+samsung@kernel$(echo .)org \
--cc=openbmc@lists$(echo .)ozlabs.org \
--cc=pombredanne@nexb$(echo .)com \
--cc=rdunlap@infradead$(echo .)org \
--cc=robh+dt@kernel$(echo .)org \
--cc=robin.murphy@arm$(echo .)com \
--cc=ryan_chen@aspeedtech$(echo .)com \
--cc=sandeen@redhat$(echo .)com \
--cc=sboyd@codeaurora$(echo .)org \
--cc=sdharia@codeaurora$(echo .)org \
--cc=tglx@linutronix$(echo .)de \
--cc=tmaimon77@gmail$(echo .)com \
--cc=u.kleine-koenig@pengutronix$(echo .)de \
--cc=vkoul@kernel$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox