Messages in this thread | | | Date | Wed, 13 Aug 2008 21:21:40 +0400 | From | Anton Vorontsov <> | Subject | Re: [PATCH] [WATCHDOG] mpc8xxx_wdt: fix modular build |
| |
On Wed, Aug 13, 2008 at 05:31:59PM +0300, Adrian Bunk wrote: > On Wed, Aug 13, 2008 at 04:23:41PM +0400, Anton Vorontsov wrote: > >... > > --- a/drivers/watchdog/mpc8xxx_wdt.c > > +++ b/drivers/watchdog/mpc8xxx_wdt.c > > @@ -48,6 +48,7 @@ struct mpc8xxx_wdt_type { > > }; > > > > static struct mpc8xxx_wdt __iomem *wd_base; > > +static int mpc8xxx_wdt_init_late(void); > > > > static u16 timeout = 0xffff; > > module_param(timeout, ushort, 0); > > @@ -213,6 +214,12 @@ static int __devinit mpc8xxx_wdt_probe(struct of_device *ofdev, > > else > > timeout_sec = timeout / freq; > > > > +#ifdef CONFIG_8xxx_WDT_MODULE > > + ret = mpc8xxx_wdt_init_late(); > > + if (ret) > > + goto err_unmap; > > +#endif > > In mpc8xxx_wdt_probe()?
Yes.
> Isn't mpc8xxx_wdt_init() the correct place?
Not exactly. In case of non-modular build we rely on the fact that OF devices are populated before module_init(), so _probe is executed before _init_late.
But with modules, we can do the right thing: just register the driver and await for the usual probe, then probe the wdt, and then register userspace interface. Yes, kind of complicated, but we really need this on 8xx.
> > pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d " > > "(%d seconds)\n", reset ? "reset" : "interrupt", timeout, > > timeout_sec); > > @@ -280,7 +287,7 @@ static struct of_platform_driver mpc8xxx_wdt_driver = { > > * very early to start pinging the watchdog (misc devices are not yet > > * available), and later module_init() just registers the misc device. > > */ > > -static int __init mpc8xxx_wdt_init_late(void) > > +static int mpc8xxx_wdt_init_late(void) > > { > > int ret; > > > > @@ -295,7 +302,9 @@ static int __init mpc8xxx_wdt_init_late(void) > > } > > return 0; > > } > > +#ifndef CONFIG_8xxx_WDT_MODULE > > Your #ifdef is correct, but "#ifdef MODULE" would express this better.
Thanks, will repost soon.
-- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2
| |