From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bear.ext.ti.com ([192.94.94.41]) by bombadil.infradead.org with esmtps (Exim 4.69 #1 (Red Hat Linux)) id 1MdNfQ-0003Rh-OP for linux-mtd@lists.infradead.org; Tue, 18 Aug 2009 12:20:01 +0000 From: "Sudhakar Rajashekhara" To: "'Andrew Morton'" References: <1250613244-25447-1-git-send-email-sudhakar.raj@ti.com> <20090818011930.765d4895.akpm@linux-foundation.org> <00df01ca1fe7$60d5c810$22815830$@raj@ti.com> <20090818024908.90f528e1.akpm@linux-foundation.org> In-Reply-To: <20090818024908.90f528e1.akpm@linux-foundation.org> Subject: RE: [PATCH] [MTD] driver/Makefile: Initialize "mtd" and "spi" before "net" Date: Tue, 18 Aug 2009 17:48:06 +0530 Message-ID: <011101ca1ffd$f15ab100$d4101300$@raj@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Language: en-us Cc: david-b@pacbell.net, dwmw2@infradead.org, davinci-linux-open-source@linux.davincidsp.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Tue, Aug 18, 2009 at 15:19:08, Andrew Morton wrote: > On Tue, 18 Aug 2009 15:06:35 +0530 "Sudhakar Rajashekhara" wrote: > > > On Tue, Aug 18, 2009 at 13:49:30, Andrew Morton wrote: > > > On Tue, 18 Aug 2009 12:34:04 -0400 Sudhakar Rajashekhara wrote: > > > > > > > On TI's da850/omap-l138 EVM, MAC address is stored in SPI flash. > > > > > > > > This patch changes the initialization sequence of the drivers by > > > > moving mtd and spi ahead of net in drivers/Makefile thereby > > > > enabling da850/omap-l138 ethernet driver to read the MAC address > > > > while booting. > > > > > > > > Signed-off-by: Sudhakar Rajashekhara > > > > --- > > > > drivers/Makefile | 4 ++-- > > > > 1 files changed, 2 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/drivers/Makefile b/drivers/Makefile index > > > > bc4205d..2a1d41f 100644 > > > > --- a/drivers/Makefile > > > > +++ b/drivers/Makefile > > > > @@ -42,6 +42,8 @@ obj-y += macintosh/ > > > > obj-$(CONFIG_IDE) += ide/ > > > > obj-$(CONFIG_SCSI) += scsi/ > > > > obj-$(CONFIG_ATA) += ata/ > > > > +obj-$(CONFIG_MTD) += mtd/ > > > > +obj-$(CONFIG_SPI) += spi/ > > > > obj-y += net/ > > > > obj-$(CONFIG_ATM) += atm/ > > > > obj-$(CONFIG_FUSION) += message/ > > > > @@ -50,8 +52,6 @@ obj-y += ieee1394/ > > > > obj-$(CONFIG_UIO) += uio/ > > > > obj-y += cdrom/ > > > > obj-y += auxdisplay/ > > > > -obj-$(CONFIG_MTD) += mtd/ > > > > -obj-$(CONFIG_SPI) += spi/ > > > > obj-$(CONFIG_PCCARD) += pcmcia/ > > > > obj-$(CONFIG_DIO) += dio/ > > > > obj-$(CONFIG_SBUS) += sbus/ > > > > > > That isn't a particularly maintainable way of fixing this, > > > especially as there are no comments in that Makefile to prevent > > > someone from rebreaking it in the future. > > > > > > A better fix would be to use suitably prioritised initcalls - see > > > include/linux/init.h around line 187. > > > > > > > Currently mtd, spi and net subsystems are initialized with module_init. > > If I change the way in which these sub-systems are initialized, then > > I'll be breaking the support for these sub-systems to work as modules. > > In what way? > Now I got what you were saying. I was able to get the EMAC driver initialize later than spi and mtd by using late_initcall. With this change EMAC works as module as well. The patch looks as below: === diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 12fd446..5e6652b 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c @@ -2817,7 +2817,7 @@ static int __init davinci_emac_init(void) { return platform_driver_register(&davinci_emac_driver); } -module_init(davinci_emac_init); +late_initcall(davinci_emac_init); /** * davinci_emac_exit: EMAC driver module exit === I'll submit this patch to netdev list. Thanks, Sudhakar