micrel: fix masking off LED bits
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Thu, 11 Dec 2014 02:29:12 +0000 (11:29 +0900)
committerStephane Desneux <stephane.desneux@open.eurogiciel.org>
Wed, 4 Feb 2015 10:16:22 +0000 (11:16 +0100)
Commit 20d8435a1cff (phy: micrel: add of configuration for LED mode) made the
obvious mistake when masking off  the LED mode bits: forgot to do a logical NOT
to the mask with which it ANDs the register value, so that unrelated bits are
cleared instead.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Ben Dooks <ben.dooks@codethink.co.uk>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 28bdc499d647124fa5844453d35e6f5d1b3810dc)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/net/phy/micrel.c

index 0c9e434..5ad971a 100644 (file)
@@ -167,7 +167,7 @@ static int kszphy_setup_led(struct phy_device *phydev,
        if (temp < 0)
                return temp;
 
-       temp &= 3 << shift;
+       temp &= ~(3 << shift);
        temp |= val << shift;
        rc = phy_write(phydev, reg, temp);