[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180118142515.GI5894@lunn.ch>
Date: Thu, 18 Jan 2018 15:25:15 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Peng Li <lipeng321@...wei.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, linuxarm@...wei.com,
salil.mehta@...wei.com
Subject: Re: [PATCH net-next 3/5] net: hns3: add ethtool -p support for phy
device
> +static int hclge_set_led_status_phy(struct phy_device *phydev, int value)
> +{
> + int ret, cur_page;
> +
> + mutex_lock(&phydev->lock);
> +
> + ret = phy_read(phydev, HCLGE_PHY_PAGE_REG);
> + if (ret < 0)
> + goto out;
> + else
> + cur_page = ret;
> +
> + ret = phy_write(phydev, HCLGE_PHY_PAGE_REG, HCLGE_PHY_PAGE_LED);
> + if (ret)
> + goto out;
> +
> + ret = phy_write(phydev, HCLGE_LED_FC_REG, value);
> + if (ret)
> + goto out;
> +
> + ret = phy_write(phydev, HCLGE_PHY_PAGE_REG, cur_page);
> +
> +out:
> + mutex_unlock(&phydev->lock);
> + return ret;
> +}
Sorry, but NACK.
Please add an interface to phylib and the phy driver you are using to
do this.
> #define HCLGE_PHY_PAGE_MDIX 0
> #define HCLGE_PHY_PAGE_COPPER 0
> +#define HCLGE_PHY_PAGE_LED 3
>
> /* Page Selection Reg. */
> #define HCLGE_PHY_PAGE_REG 22
> @@ -73,6 +74,15 @@
> /* Copper Specific Status Register */
> #define HCLGE_PHY_CSS_REG 17
>
> +/* LED Function Control Register */
> +#define HCLGE_LED_FC_REG 16
> +
> +/* LED Polarity Control Register */
> +#define HCLGE_LED_PC_REG 17
> +
> +#define HCLGE_LED_FORCE_ON 9
> +#define HCLGE_LED_FORCE_OFF 8
> +
By the looks of these defines, you assume you have a Marvell PHY.
Please make this generic so anybody with a Marvell PHY can use it.
Andrew
Powered by blists - more mailing lists