From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756580AbeAROZV (ORCPT ); Thu, 18 Jan 2018 09:25:21 -0500 Received: from vps0.lunn.ch ([185.16.172.187]:54360 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756522AbeAROZU (ORCPT ); Thu, 18 Jan 2018 09:25:20 -0500 Date: Thu, 18 Jan 2018 15:25:15 +0100 From: Andrew Lunn To: Peng Li Cc: davem@davemloft.net, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linuxarm@huawei.com, salil.mehta@huawei.com Subject: Re: [PATCH net-next 3/5] net: hns3: add ethtool -p support for phy device Message-ID: <20180118142515.GI5894@lunn.ch> References: <1516259632-85088-1-git-send-email-lipeng321@huawei.com> <1516259632-85088-4-git-send-email-lipeng321@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1516259632-85088-4-git-send-email-lipeng321@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +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