Merge branch 'introduce-read_poll_timeout'
authorDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 05:00:03 +0000 (22:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 05:00:03 +0000 (22:00 -0700)
commit629cb919427a4c656363e89455255f189c3e00a4
tree13d82e4cd420e6702ada735aeb165a2ff6694b91
parentaf13b3c338bea6a766b1a0ee4f9c939e8bf38256
parent704f691a5fb33c461ed9a7b6abe115ae3c323691
Merge branch 'introduce-read_poll_timeout'

Dejin Zheng says:

====================
introduce read_poll_timeout

This patch sets is introduce read_poll_timeout macro, it is an extension
of readx_poll_timeout macro. the accessor function op just supports only
one parameter in the readx_poll_timeout macro, but this macro can
supports multiple variable parameters for it. so functions like
phy_read(struct phy_device *phydev, u32 regnum) and
phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum) can
use this poll timeout framework.

the first patch introduce read_poll_timeout macro, and the second patch
redefined readx_poll_timeout macro by read_poll_timeout(), and the other
patches are examples using read_poll_timeout macro.

v6 -> v7:
- add a parameter to supports that it can sleep some time
  before read operation in read_poll_timeout macro.
- add prefix with double underscores for some variable to avoid
  any variable re-declaration or shadowing in patch 3 and patch
  7.
v5 -> v6:
- add some check to keep the code more similar in patch 8
v4 -> v5:
- add some msleep() before call phy_read_mmd_poll_timeout() to
  keep the code more similar in patch 6 and patch 9.
- add a patch of drop by v4, it can add msleep before call
  phy_read_poll_timeout() to keep the code more similar.
v3 -> v4:
- add 3 examples of using new functions.
- deal with precedence issues for parameter cond.
- drop a patch about phy_poll_reset() function.
v2 -> v3:
- modify the parameter order of newly added functions.
  phy_read_mmd_poll_timeout(val, cond, sleep_us, timeout_us, \
     phydev, devaddr, regnum)
||
\/
  phy_read_mmd_poll_timeout(phydev, devaddr regnum, val, cond, \
    sleep_us, timeout_us)

  phy_read_poll_timeout(val, cond, sleep_us, timeout_us, \
phydev, regnum)
||
\/
  phy_read_poll_timeout(phydev, regnum, val, cond, sleep_us, \
timeout_us)
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 in patch 3. Andrew Lunn <andrew@lunn.ch>, Thanks
  very much for your help!
- also in patch 3, handle phy_read_mmd return an error(the return
  value < 0) in phy_read_mmd_poll_timeout(). Thanks Andrew
  again.
- in patch 6, pass a phydev and a reg to replace args...
  parameter in phy_read_poll_timeout(), and also handle the
  phy_read() function's return error.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>