net: phy: realtek: net: Fix less than zero comparison of a u16
The comparisons of the u16 values priv->phycr1 and priv->phycr2 to less than zero always false because they are unsigned. Fix this by using an int for the assignment and less than zero check. Addresses-Coverity: ("Unsigned compared against 0") Fixes:0a4355c2b7
("net: phy: realtek: add dt property to disable CLKOUT clock") Fixes:d90db36a9e
("net: phy: realtek: add dt property to enable ALDPS mode") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
345502af4e
commit
f25247d887
|
@ -94,24 +94,25 @@ static int rtl821x_probe(struct phy_device *phydev)
|
|||
{
|
||||
struct device *dev = &phydev->mdio.dev;
|
||||
struct rtl821x_priv *priv;
|
||||
int ret;
|
||||
|
||||
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
priv->phycr1 = phy_read_paged(phydev, 0xa43, RTL8211F_PHYCR1);
|
||||
if (priv->phycr1 < 0)
|
||||
return priv->phycr1;
|
||||
ret = phy_read_paged(phydev, 0xa43, RTL8211F_PHYCR1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
priv->phycr1 &= (RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_XTAL_OFF);
|
||||
priv->phycr1 = ret & (RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_XTAL_OFF);
|
||||
if (of_property_read_bool(dev->of_node, "realtek,aldps-enable"))
|
||||
priv->phycr1 |= RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_XTAL_OFF;
|
||||
|
||||
priv->phycr2 = phy_read_paged(phydev, 0xa43, RTL8211F_PHYCR2);
|
||||
if (priv->phycr2 < 0)
|
||||
return priv->phycr2;
|
||||
ret = phy_read_paged(phydev, 0xa43, RTL8211F_PHYCR2);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
priv->phycr2 &= RTL8211F_CLKOUT_EN;
|
||||
priv->phycr2 = ret & RTL8211F_CLKOUT_EN;
|
||||
if (of_property_read_bool(dev->of_node, "realtek,clkout-disable"))
|
||||
priv->phycr2 &= ~RTL8211F_CLKOUT_EN;
|
||||
|
||||
|
|
Loading…
Reference in New Issue