Message ID | 20190920125414.15507-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | mt7601u: phy: simplify zero check on val | expand |
On 20/09/2019 13:54, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Currently the zero check on val to break out of a loop > is a little obscure. Replace the val is zero and break check > with a loop while value is non-zero. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > drivers/net/wireless/mediatek/mt7601u/phy.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c > index 06f5702ab4bd..4e0e473caae1 100644 > --- a/drivers/net/wireless/mediatek/mt7601u/phy.c > +++ b/drivers/net/wireless/mediatek/mt7601u/phy.c > @@ -213,9 +213,7 @@ int mt7601u_wait_bbp_ready(struct mt7601u_dev *dev) > > do { > val = mt7601u_bbp_rr(dev, MT_BBP_REG_VERSION); > - if (val && ~val) > - break; AFAICS, this effectively implements "while (val == 0 || val == 0xff)", which is not at all equivalent to "while(val)"... :/ Robin. > - } while (--i); > + } while (val && --i); > > if (!i) { > dev_err(dev->dev, "Error: BBP is not ready\n"); >
> From: Colin Ian King <colin.king@canonical.com> > > Currently the zero check on val to break out of a loop > is a little obscure. Replace the val is zero and break check > with a loop while value is non-zero. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > drivers/net/wireless/mediatek/mt7601u/phy.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c > index 06f5702ab4bd..4e0e473caae1 100644 > --- a/drivers/net/wireless/mediatek/mt7601u/phy.c > +++ b/drivers/net/wireless/mediatek/mt7601u/phy.c > @@ -213,9 +213,7 @@ int mt7601u_wait_bbp_ready(struct mt7601u_dev *dev) > > do { > val = mt7601u_bbp_rr(dev, MT_BBP_REG_VERSION); > - if (val && ~val) > - break; I think this is not correct since (not considering the cast) we should break from the loop if val != 0 and val != 0xff, so the right approach I guess is: diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c index 06f5702ab4bd..d863ab4a66c9 100644 --- a/drivers/net/wireless/mediatek/mt7601u/phy.c +++ b/drivers/net/wireless/mediatek/mt7601u/phy.c @@ -213,7 +213,7 @@ int mt7601u_wait_bbp_ready(struct mt7601u_dev *dev) do { val = mt7601u_bbp_rr(dev, MT_BBP_REG_VERSION); - if (val && ~val) + if (val && val != 0xff) break; } while (--i); > - } while (--i); > + } while (val && --i); > > if (!i) { > dev_err(dev->dev, "Error: BBP is not ready\n"); > -- > 2.20.1 >
On Fri, 20 Sep 2019 15:58:17 +0200, Lorenzo Bianconi wrote: > I think this is not correct since (not considering the cast) we should break > from the loop if val != 0 and val != 0xff, so the right approach I guess is: > > diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c > index 06f5702ab4bd..d863ab4a66c9 100644 > --- a/drivers/net/wireless/mediatek/mt7601u/phy.c > +++ b/drivers/net/wireless/mediatek/mt7601u/phy.c > @@ -213,7 +213,7 @@ int mt7601u_wait_bbp_ready(struct mt7601u_dev *dev) > > do { > val = mt7601u_bbp_rr(dev, MT_BBP_REG_VERSION); > - if (val && ~val) > + if (val && val != 0xff) > break; > } while (--i); Yup, feel free to add my ack if you post this, Lorenzo.
diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c index 06f5702ab4bd..4e0e473caae1 100644 --- a/drivers/net/wireless/mediatek/mt7601u/phy.c +++ b/drivers/net/wireless/mediatek/mt7601u/phy.c @@ -213,9 +213,7 @@ int mt7601u_wait_bbp_ready(struct mt7601u_dev *dev) do { val = mt7601u_bbp_rr(dev, MT_BBP_REG_VERSION); - if (val && ~val) - break; - } while (--i); + } while (val && --i); if (!i) { dev_err(dev->dev, "Error: BBP is not ready\n");