svn commit: r261424 - head/sys/dev/mmc

Ian Lepore ian at FreeBSD.org
Mon Feb 3 21:57:58 UTC 2014


On Mon, 2014-02-03 at 16:33 -0500, John Baldwin wrote:
> On Monday, February 03, 2014 01:07:39 PM Ian Lepore wrote:
> > On Mon, 2014-02-03 at 09:03 -0800, John-Mark Gurney wrote:
> > > Ian Lepore wrote this message on Mon, Feb 03, 2014 at 02:56 +0000:
> > > > Author: ian
> > > > Date: Mon Feb  3 02:56:23 2014
> > > > New Revision: 261424
> > > > URL: http://svnweb.freebsd.org/changeset/base/261424
> > > > 
> > > > Log:
> > > >   Sort the list.
> > > > 
> > > > Modified:
> > > >   head/sys/dev/mmc/mmc.c
> > > > 
> > > > Modified: head/sys/dev/mmc/mmc.c
> > > > ========================================================================
> > > > ====== --- head/sys/dev/mmc/mmc.c	Mon Feb  3 02:52:07 2014	(r261423)
> > > > +++ head/sys/dev/mmc/mmc.c	Mon Feb  3 02:56:23 2014	(r261424)
> > > > @@ -1756,10 +1756,11 @@ static driver_t mmc_driver = {
> > > > 
> > > >  };
> > > >  static devclass_t mmc_devclass;
> > > > 
> > > > -DRIVER_MODULE(mmc, ti_mmchs, mmc_driver, mmc_devclass, NULL, NULL);
> > > > 
> > > >  DRIVER_MODULE(mmc, at91_mci, mmc_driver, mmc_devclass, NULL, NULL);
> > > > 
> > > > -DRIVER_MODULE(mmc, sdhci_pci, mmc_driver, mmc_devclass, NULL, NULL);
> > > > 
> > > >  DRIVER_MODULE(mmc, sdhci_bcm, mmc_driver, mmc_devclass, NULL, NULL);
> > > >  DRIVER_MODULE(mmc, sdhci_fdt, mmc_driver, mmc_devclass, NULL, NULL);
> > > > 
> > > > -DRIVER_MODULE(mmc, sdhci_ti, mmc_driver, mmc_devclass, NULL, NULL);
> > > > 
> > > >  DRIVER_MODULE(mmc, sdhci_imx, mmc_driver, mmc_devclass, NULL, NULL);
> > > > 
> > > > +DRIVER_MODULE(mmc, sdhci_pci, mmc_driver, mmc_devclass, NULL, NULL);
> > > > +DRIVER_MODULE(mmc, sdhci_ti, mmc_driver, mmc_devclass, NULL, NULL);
> > > > +DRIVER_MODULE(mmc, ti_mmchs, mmc_driver, mmc_devclass, NULL, NULL);
> > > > +
> > > 
> > > Is there a reason we don't make mmc_driver/mmc_devclass global and put
> > > all of these defines in their respective file instead of poluting an MI
> > > file w/ MD info?
> > 
> > I don't think that's an option.  Part of what that macro does is create
> > metadata that says "this module contains a driver that is a child of bus
> > <whatever>" and I think for that to work right, it has to be in the
> > module itself, not elsewhere (at least in the .ko case; maybe it doesn't
> > matter when it's compiled into the kernel).
> 
> No, it can be anywhere.  It's not voodoo magic, it's just a struct and a
> SYSINIT.  John-Mark's suggestion is correct (and I thought the same thing
> when I saw this commit).  You just have to make mmc_driver global.  You
> should make mmc_devclass as well for now.
> 
> (Side note: the devclass argument to DRIVER_MODULE() is useless in 99.9%
> of the cases and should be axed entirely.  The very few drivers that want
> to find their devclass can use devclass_find() at runtime instead.)
> 
> Too bad cpp doesn't support macro overloading, then we could make that
> change seamlessly. :)
> 

Interesting, I had no idea.  Do we have examples of doing it this other
way in the tree now? 

-- Ian




More information about the svn-src-all mailing list