lkml.org 
[lkml]   [2020]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH net-next v2 3/7] net: phy: introduce phy_read_mmd_poll_timeout macro
    On Fri, Mar 20, 2020 at 09:34:27PM +0800, Dejin Zheng wrote:
    > it is sometimes necessary to poll a phy register by phy_read_mmd()
    > function until its value satisfies some condition. introduce
    > phy_read_mmd_poll_timeout() macros that do this.
    >
    > Suggested-by: Andrew Lunn <andrew@lunn.ch>
    > Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
    > ---
    > v1 -> v2:
    > - passed a phydev, device address and a reg to replace args...
    > parameter in phy_read_mmd_poll_timeout() by Andrew Lunn 's
    > suggestion. Andrew Lunn <andrew@lunn.ch>, Thanks very much for
    > your help!
    > - handle phy_read_mmd return an error(the return value < 0) in
    > phy_read_mmd_poll_timeout(). Thanks Andrew again.
    >
    > include/linux/phy.h | 14 ++++++++++++++
    > 1 file changed, 14 insertions(+)
    >
    > diff --git a/include/linux/phy.h b/include/linux/phy.h
    > index 36d9dea04016..bb351f8b8769 100644
    > --- a/include/linux/phy.h
    > +++ b/include/linux/phy.h
    > @@ -24,6 +24,7 @@
    > #include <linux/mod_devicetable.h>
    > #include <linux/u64_stats_sync.h>
    > #include <linux/irqreturn.h>
    > +#include <linux/iopoll.h>
    >
    > #include <linux/atomic.h>
    >
    > @@ -784,6 +785,19 @@ static inline int __phy_modify_changed(struct phy_device *phydev, u32 regnum,
    > */
    > int phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum);
    >
    > +#define phy_read_mmd_poll_timeout(val, cond, sleep_us, timeout_us, \
    > + phydev, devad, regnum) \
    > +({ \
    > + int ret = 0; \
    > + ret = read_poll_timeout(phy_read_mmd, val, cond || val < 0, sleep_us, \
    > + timeout_us, phydev, devad, regnum); \

    Hi Dejin

    You probably should have ( ) here to deal with precedence issues.

    (cond) || val < 0

    Andrew

    \
     
     \ /
      Last update: 2020-03-21 17:42    [W:3.364 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site