[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160715122429.GA2620@tetsubishi>
Date: Fri, 15 Jul 2016 21:24:30 +0900
From: Wolfram Sang <wsa@...-dreams.de>
To: Bartosz Golaszewski <bgolaszewski@...libre.com>
Cc: linux-i2c <linux-i2c@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Andrew Lunn <andrew@...n.ch>,
Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
Maxime Ripard <maxime.ripard@...e-electrons.com>,
GregKH <greg@...ah.com>
Subject: Re: [RESEND PATCH 05/14] eeprom: at24: hide the read/write loop
behind a macro
> +/*
> + * Both reads and writes fail if the previous write didn't complete yet. This
> + * macro loops a few times waiting at least long enough for one entire page
> + * write to work.
> + *
> + * It takes two parameters: a variable in which the future timeout in jiffies
> + * will be stored and a temporary variable holding the time of the last
> + * iteration of processing the request. Both should be unsigned integers
> + * holding at least 32 bits.
> + */
> +#define loop_until_timeout(tout, op_time) \
> + for (tout = jiffies + msecs_to_jiffies(write_timeout), \
> + op_time = jiffies; \
> + time_before(op_time, tout); \
> + usleep_range(1000, 1500), op_time = jiffies)
There is one subtle change coming with this change: the do-while loop is
guaranteed to run at least once while the for-loop doesn't.
Download attachment "signature.asc" of type "application/pgp-signature" (820 bytes)
Powered by blists - more mailing lists