From: Andy Shevchenko <andriy.shevchenko@intel.com> To: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com> Cc: Rob Herring <robh+dt@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Lee Jones <lee.jones@linaro.org>, Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>, Mark Rutland <mark.rutland@arm.com>, Joel Stanley <joel@jms.id.au>, Andrew Jeffery <andrew@aj.id.au>, Jonathan Corbet <corbet@lwn.net>, Gustavo Pimentel <gustavo.pimentel@synopsys.com>, Kishon Vijay Abraham I <kishon@ti.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, "Darrick J . Wong" <darrick.wong@oracle.com>, Eric Sandeen <sandeen@redhat.com>, Arnd Bergmann <arnd@arndb.de>, Wu Hao <hao.wu@intel.com>, Tomohiro Kusumi <kusumi.tomohiro@gmail.com>, "Bryant G . Ly" <bryantly@linux.vnet.ibm.com>, Frederic Barrat <fbarrat@linux.vnet.ibm.com>, "David S . Miller" <davem@davemloft.net>, Mauro Carvalho Chehab <mchehab+samsung@kernel.org>, Andrew Morton <akpm@linux-foundation.org>, Randy Dunlap <rdunlap@infradead.org>, Philippe Ombredanne <pombredanne@nexb.com>, Vinod Koul <vkoul@kernel.org>, Stephen Boyd <sboyd@codeaurora.org>, David Kershner <david.kershner@unisys.com>, Uwe Kleine-Konig <u.kleine-koenig@pengutronix.de>, Sagar Dharia <sdharia@codeaurora.org>, Johan Hovold <johan@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Juergen Gross <jgross@suse.com>, Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>, Tomer Maimon <tmaimon77@gmail.com>, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, openbmc@lists.ozlabs.org, Robin Murphy <robin.murphy@arm.com>, Ryan Chen <ryan_chen@aspeedtech.com> 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
WARNING: multiple messages have this Message-ID (diff)
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: 71+ 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 ` Jae Hyun Yoo 2019-12-11 19:46 ` [PATCH v11 01/14] dt-bindings: Add PECI subsystem document Jae Hyun Yoo 2019-12-11 19:46 ` Jae Hyun Yoo 2019-12-18 2:52 ` Rob Herring 2019-12-18 2:52 ` Rob Herring 2019-12-18 23:12 ` Jae Hyun Yoo 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 ` Jae Hyun Yoo 2019-12-11 19:46 ` [PATCH v11 03/14] peci: Add support for PECI bus driver core Jae Hyun Yoo 2019-12-11 20:18 ` Andy Shevchenko 2019-12-12 0:46 ` 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-11 19:46 ` Jae Hyun Yoo 2019-12-18 2:57 ` Rob Herring 2019-12-18 2:57 ` Rob Herring 2019-12-18 23:21 ` Jae Hyun Yoo 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 ` Jae Hyun Yoo 2019-12-11 19:46 ` [PATCH v11 06/14] peci: Add Aspeed PECI adapter driver Jae Hyun Yoo 2019-12-11 19:46 ` Jae Hyun Yoo 2019-12-11 20:28 ` Andy Shevchenko [this message] 2019-12-11 20:28 ` Andy Shevchenko 2019-12-12 0:50 ` Jae Hyun Yoo 2019-12-12 0:50 ` Jae Hyun Yoo 2019-12-12 8:47 ` Andy Shevchenko 2019-12-12 8:47 ` Andy Shevchenko 2019-12-12 18:51 ` Jae Hyun Yoo 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-11 19:46 ` Jae Hyun Yoo 2019-12-18 14:42 ` Rob Herring 2019-12-18 14:42 ` Rob Herring 2019-12-18 23:30 ` Jae Hyun Yoo 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 ` 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 ` 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 ` 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-11 19:46 ` Jae Hyun Yoo 2019-12-16 16:01 ` Lee Jones 2019-12-16 16:01 ` Lee Jones 2019-12-16 21:57 ` Jae Hyun Yoo 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 ` Jae Hyun Yoo 2019-12-11 19:46 ` [PATCH v11 13/14] hwmon: Add PECI cputemp driver Jae Hyun Yoo 2019-12-11 19:46 ` Jae Hyun Yoo 2019-12-13 6:24 ` Guenter Roeck 2019-12-13 6:24 ` Guenter Roeck 2019-12-16 20:43 ` Jae Hyun Yoo 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-11 19:46 ` Jae Hyun Yoo 2019-12-13 6:32 ` Guenter Roeck 2019-12-13 6:32 ` Guenter Roeck 2019-12-16 21:04 ` Jae Hyun Yoo 2019-12-16 21:04 ` Jae Hyun Yoo 2019-12-16 21:21 ` Guenter Roeck 2019-12-16 21:21 ` Guenter Roeck 2019-12-16 22:17 ` Jae Hyun Yoo 2019-12-16 22:17 ` Jae Hyun Yoo 2019-12-16 23:27 ` Guenter Roeck 2019-12-16 23:27 ` Guenter Roeck 2019-12-16 23:31 ` Jae Hyun Yoo 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.com \ --cc=akpm@linux-foundation.org \ --cc=andrew@aj.id.au \ --cc=arnd@arndb.de \ --cc=bryantly@linux.vnet.ibm.com \ --cc=corbet@lwn.net \ --cc=cyrille.pitchen@wedev4u.fr \ --cc=darrick.wong@oracle.com \ --cc=davem@davemloft.net \ --cc=david.kershner@unisys.com \ --cc=devicetree@vger.kernel.org \ --cc=fbarrat@linux.vnet.ibm.com \ --cc=gregkh@linuxfoundation.org \ --cc=gustavo.pimentel@synopsys.com \ --cc=hao.wu@intel.com \ --cc=jae.hyun.yoo@linux.intel.com \ --cc=jdelvare@suse.com \ --cc=jgross@suse.com \ --cc=joel@jms.id.au \ --cc=johan@kernel.org \ --cc=kishon@ti.com \ --cc=kusumi.tomohiro@gmail.com \ --cc=lee.jones@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-hwmon@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=lorenzo.pieralisi@arm.com \ --cc=mark.rutland@arm.com \ --cc=mchehab+samsung@kernel.org \ --cc=openbmc@lists.ozlabs.org \ --cc=pombredanne@nexb.com \ --cc=rdunlap@infradead.org \ --cc=robh+dt@kernel.org \ --cc=robin.murphy@arm.com \ --cc=ryan_chen@aspeedtech.com \ --cc=sandeen@redhat.com \ --cc=sboyd@codeaurora.org \ --cc=sdharia@codeaurora.org \ --cc=tglx@linutronix.de \ --cc=tmaimon77@gmail.com \ --cc=u.kleine-koenig@pengutronix.de \ --cc=vkoul@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: linkBe 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.