[PATCH v4 2/3] phy: core: add debugfs root

Chunfeng Yun (云春峰) Chunfeng.Yun at mediatek.com
Sun Nov 27 23:00:50 PST 2022


On Thu, 2022-11-24 at 23:09 +0530, Vinod Koul wrote:
> On 10-11-22, 21:27, Chunfeng Yun wrote:
> > Add a debugfs root for phy class, then phy drivers can add debugfs
> > files
> > under this folder.
> > 
> > Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
> > ---
> > v2~v4: no changes
> > ---
> >  drivers/phy/phy-core.c  | 6 ++++++
> >  include/linux/phy/phy.h | 2 ++
> >  2 files changed, 8 insertions(+)
> > 
> > diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
> > index d93ddf1262c5..2f9f69190519 100644
> > --- a/drivers/phy/phy-core.c
> > +++ b/drivers/phy/phy-core.c
> > @@ -11,6 +11,7 @@
> >  #include <linux/export.h>
> >  #include <linux/module.h>
> >  #include <linux/err.h>
> > +#include <linux/debugfs.h>
> >  #include <linux/device.h>
> >  #include <linux/slab.h>
> >  #include <linux/of.h>
> > @@ -1204,6 +1205,9 @@ void devm_of_phy_provider_unregister(struct
> > device *dev,
> >  }
> >  EXPORT_SYMBOL_GPL(devm_of_phy_provider_unregister);
> >  
> > +struct dentry *phy_debug_root;
> > +EXPORT_SYMBOL_GPL(phy_debug_root);
> 
> Why expose this to whole world? Alternate approach would be to add
> this
> in struct phy
If only add it in struct phy, many phy folders will be created under
/sys/kernel/debug/, and create them under /sys/kernel/debug/phy seems
more clearer, this also follows other class, such as usb

> 
> > +
> >  /**
> >   * phy_release() - release the phy
> >   * @dev: the dev member within phy
> > @@ -1233,6 +1237,8 @@ static int __init phy_core_init(void)
> >  
> >  	phy_class->dev_release = phy_release;
> >  
> > +	phy_debug_root = debugfs_create_dir("phy", NULL);
> > +
> >  	return 0;
> >  }
> >  device_initcall(phy_core_init);
> > diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
> > index b1413757fcc3..c398749d49b9 100644
> > --- a/include/linux/phy/phy.h
> > +++ b/include/linux/phy/phy.h
> > @@ -205,6 +205,8 @@ struct phy_lookup {
> >  #define devm_of_phy_provider_register_full(dev, children, xlate) \
> >  	__devm_of_phy_provider_register(dev, children, THIS_MODULE,
> > xlate)
> >  
> > +extern struct dentry *phy_debug_root;
> > +
> >  static inline void phy_set_drvdata(struct phy *phy, void *data)
> >  {
> >  	dev_set_drvdata(&phy->dev, data);
> > -- 
> > 2.18.0
> 
> 


More information about the linux-arm-kernel mailing list