Re: [PATCH V3 4/8] phy: Initialize phy core with subsys_initcall

From: Pratyush Anand
Date: Thu Jan 30 2014 - 07:21:13 EST


On Thu, Jan 30, 2014 at 07:52:12PM +0800, Pratyush ANAND wrote:
> On Thu, Jan 30, 2014 at 07:43:37PM +0800, Kishon Vijay Abraham I wrote:
> > Hi,
> >
> > On Thursday 30 January 2014 04:18 PM, Mohit Kumar wrote:
> > > From: Pratyush Anand <pratyush.anand@xxxxxx>
> > >
> > > PCIe RC drivers are initialized with subsys_initcall. Few PCIe drivers
> > > like SPEAr13xx needs phy drivers to be initialized.
> >
> > Instead change PCIe RC drivers to module init. Phy drivers should be loaded
> > very early otherwise. (Hint: drivers/Makefile).

>From hint, you mean that if makefile has pci entry (and hence RC
driver entry) before card drivers entry, then it insures that rc
driver's probe is called before card driver's probe?
I think, yes.
And if yes, then what you say is acceptable :)

Regards
Pratyush
>
> I think PCIe RC driver can not be made module init. Bjorn can comment
> better.
>
> All PCIe card drivers are initialized with module init. RC driver must
> have been initialized before any card driver initialization.
> Currently, card drivers does not have deferred probe concept, so I am
> not sure if keeping RC driver as module init will work always.
>
> By the way, is there any side effect of loading phy driver very early?
>
> Regards
> Pratyush
> >
> > Thanks
> > Kishon
> > >
> > > Therefore initialize phy core driver with subsys_initcall to avoid
> > > calling of phy_get before phy_class is created.
> > >
> > > Signed-off-by: Pratyush Anand <pratyush.anand@xxxxxx>
> > > Cc: Mohit Kumar <mohit.kumar@xxxxxx>
> > > Cc: Kishon Vijay Abraham I <kishon@xxxxxx>
> > > Cc: Arnd Bergmann <arnd@xxxxxxxx>
> > > Cc: spear-devel@xxxxxxxxxxx
> > > Cc: linux-kernel@xxxxxxxxxxxxxxx
> > > ---
> > > drivers/phy/phy-core.c | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
> > > index 03cf8fb..fa73101 100644
> > > --- a/drivers/phy/phy-core.c
> > > +++ b/drivers/phy/phy-core.c
> > > @@ -685,7 +685,7 @@ static int __init phy_core_init(void)
> > >
> > > return 0;
> > > }
> > > -module_init(phy_core_init);
> > > +subsys_initcall(phy_core_init);
> > >
> > > static void __exit phy_core_exit(void)
> > > {
> > >
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/