[U-Boot] [PATCH v3 3/4] drivers: phy: add generic_phy_valid() method

Jean-Jacques Hiblot jjhiblot at ti.com
Wed May 24 13:24:41 UTC 2017



On 23/05/2017 11:57, patrice.chotard at st.com wrote:
> From: Patrice Chotard <patrice.chotard at st.com>
>
> This allow to check if a PHY has been correctly
> initialised and avoid to get access to phy struct.
>
> Signed-off-by: Patrice Chotard <patrice.chotard at st.com>
> ---
>   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 */




More information about the U-Boot mailing list