From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Jacques Hiblot Date: Wed, 24 May 2017 15:24:41 +0200 Subject: [U-Boot] [PATCH v3 3/4] drivers: phy: add generic_phy_valid() method In-Reply-To: <1495533475-1553-4-git-send-email-patrice.chotard@st.com> References: <1495533475-1553-1-git-send-email-patrice.chotard@st.com> <1495533475-1553-4-git-send-email-patrice.chotard@st.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 23/05/2017 11:57, patrice.chotard at st.com wrote: > From: Patrice Chotard > > This allow to check if a PHY has been correctly > initialised and avoid to get access to phy struct. > > Signed-off-by: Patrice Chotard > --- > drivers/phy/phy-uclass.c | 5 +++++ > include/generic-phy.h | 8 ++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c > index 0d8bef7..43a7c18 100644 > --- a/drivers/phy/phy-uclass.c > +++ b/drivers/phy/phy-uclass.c > @@ -133,6 +133,11 @@ int generic_phy_power_off(struct phy *phy) > return ops->power_off ? ops->power_off(phy) : 0; > } > > +bool generic_phy_valid(struct phy *phy) > +{ > + return phy->dev != NULL; > +} > + Not that it has big impact but I would have made it an inline function Also note that there is a loophole in generic_phy_get_by_index() that needs to be fixed before phy->dev can be used to check if the phy is valid; phy->dev must be set to NULL if generic_phy_get_by_index() fails. Jean-Jacques > UCLASS_DRIVER(phy) = { > .id = UCLASS_PHY, > .name = "phy", > diff --git a/include/generic-phy.h b/include/generic-phy.h > index d8cf0c9..53206f0 100644 > --- a/include/generic-phy.h > +++ b/include/generic-phy.h > @@ -221,4 +221,12 @@ int generic_phy_get_by_index(struct udevice *user, int index, > int generic_phy_get_by_name(struct udevice *user, const char *phy_name, > struct phy *phy); > > +/** > + * generic_phy_valid() - check if PHY port is valid > + * > + * @phy: the PHY port to check > + * @return TRUE if valid, or FALSE > + */ > +bool generic_phy_valid(struct phy *phy); > + > #endif /*__GENERIC_PHY_H */