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

From: Chunfeng Yun (云春峰)
Date: Mon Nov 28 2022 - 02:01:03 EST


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@xxxxxxxxxxxx>
> > ---
> > 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
>
>