From: Arnd Bergmann <arnd@arndb.de>
To: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 4/9] powerpc: BestComm core support for Freescale MPC5200
Date: Sun, 13 May 2007 02:24:45 +0200 [thread overview]
Message-ID: <200705130224.46114.arnd@arndb.de> (raw)
In-Reply-To: <46465295.90309@246tNt.com>
On Sunday 13 May 2007, Sylvain Munaut wrote:
> BestComm has some pretty specific needs and I think trying to
> somehow extends a generic interface to fit those needs would just
> pollute it.
ok.
> However, you could totally implement a "DMA devices" that would just
> use a simple "copy from there to there" task using this BestComm driver.
> So other part of the kernel (like network) could use that interface to
> use the dma engine ...
Can it also do the advanced operations like XOR on DMA that the
Intel ioat has? That would be even more interesting, I guess.
> >> +static int __init
> >> +mpc52xx_bcom_init(void)
> >> +{
> >> + struct device_node *ofn_bcom, *ofn_sram;
> >> + struct resource res_bcom;
> >> +
> >> + int rv;
> >> +
> >> + /* Find the bestcomm node. If none, fails 'silently' since
> >> + * we may just be on another platform */
> >> + ofn_bcom = of_find_compatible_node(
> >> + NULL, "dma-controller", "mpc5200-bestcomm");
> >> + if (!ofn_bcom)
> >> + return -ENODEV;
> >
> > I know, my usual rant is getting old, but why is this one not an
> > of_platform_driver? It's not shared with arch/ppc or with arch/mips,
> > and it's not needed before module_init() time.
> It needs to be initialized before _any_ other driver that uses bestcomm.
> When compiled as module that could be an of_platform_driver but when
> built-in there is apparently no way to ensure it's going to be probed
> first. (At least no clean way ... )
Initialization order is always a little tricky, but if you use a
subsys_initcall, it should at least come before any regular driver
like network or disk, and arch/ drivers come before any code in drivers/,
so I don't see much of a problem here.
> >> +
> >> +#ifdef MODULE
> >> +module_init(mpc52xx_bcom_init);
> >> +module_exit(mpc52xx_bcom_exit);
> >> +#endif
> >> +
> >> +/* If we're not a module, we must make sure everything is setup before anyone */
> >> +/* tries to use us ... */
> >> +#ifndef MODULE
> >> +subsys_initcall(mpc52xx_bcom_init);
> >> +#endif
> >
> > You can make it subsys_initcall() unconditionally. If the driver gets built
> > as a module, it will turn into module_init() by itself.
> Oh, great, I didn't know that. I guess the module_exit still has to be
> conditionnal.
No, it's designed so that you don't need any #ifdef. The module_exit
function can simply be left out entirely when doing a builtin driver.
> > Why don't you use EXPORT_SYMBOL_GPL?
> Why would I ? Is it mandatory now ?
> I don't really have an objection to non-gpl modules to use the exported
> functions ...
It's your choice, but there is a strong recommendation to use _GPL for
all new interfaces nowadays. If you don't, people might suspect that
you have a hidden agenda and actually plan to do non-gpl modules
yourself.
However, this is a legal minefield and I'm not trying to force you
to change it, it is always the decision of the copyright holder.
Arnd <><
next prev parent reply other threads:[~2007-05-13 0:24 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-12 20:31 [PATCH 0/9] BestComm : better late than never heh ;) Sylvain Munaut
2007-05-12 20:31 ` [PATCH 1/9] powerpc: exports rheap symbol to modules Sylvain Munaut
2007-05-12 20:31 ` [PATCH 2/9] powerpc: Changes the config mechanism for rheap Sylvain Munaut
2007-05-12 20:31 ` [PATCH 3/9] powerpc/ppc32: Update mpc52xx_psc structure with B revision changes Sylvain Munaut
2007-05-12 20:31 ` [PATCH 4/9] powerpc: BestComm core support for Freescale MPC5200 Sylvain Munaut
2007-05-12 20:31 ` [PATCH 5/9] powerpc: BestcComm ATA task support Sylvain Munaut
2007-05-12 20:31 ` [PATCH 6/9] powerpc: BestcComm FEC " Sylvain Munaut
2007-05-12 20:31 ` [PATCH 7/9] powerpc: BestcComm GenBD " Sylvain Munaut
2007-05-12 20:31 ` [PATCH 8/9] drivers/net: Add support for Freescale MPC5200 SoC internal FEC Sylvain Munaut
2007-05-12 20:31 ` [PATCH 9/9] sound: Add support for Freescale MPC5200 AC97 interface Sylvain Munaut
2007-05-12 23:30 ` [PATCH 5/9] powerpc: BestcComm ATA task support Arnd Bergmann
2007-05-12 23:27 ` [PATCH 4/9] powerpc: BestComm core support for Freescale MPC5200 Arnd Bergmann
2007-05-12 23:49 ` Sylvain Munaut
2007-05-13 0:24 ` Arnd Bergmann [this message]
2007-05-13 7:17 ` Sylvain Munaut
2007-05-13 23:29 ` Matt Sealey
2007-05-14 5:15 ` Sylvain Munaut
2007-05-13 3:36 ` Dale Farnsworth
2007-05-15 21:37 ` Kumar Gala
2007-05-15 22:27 ` Sylvain Munaut
2007-05-13 23:46 ` [PATCH 3/9] powerpc/ppc32: Update mpc52xx_psc structure with B revision changes Matt Sealey
2007-05-14 5:27 ` Sylvain Munaut
2007-05-15 10:59 ` Raquel Velasco and Bill Buck
2007-05-15 21:20 ` [PATCH 2/9] powerpc: Changes the config mechanism for rheap Kumar Gala
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200705130224.46114.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.