Hi Tony, On Sat, Feb 26, 2011 at 4:59 PM, Kadiyala, Kishore <kishore.kadiyala@xxxxxx> wrote: > Hi Tony, > > On Sat, Feb 26, 2011 at 2:27 AM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: >> * Tony Lindgren <tony@xxxxxxxxxxx> [110225 12:42]: >>> * Kishore Kadiyala <kishore.kadiyala@xxxxxx> [110225 09:00]: >>> > +static int omap_mmc_init(struct omap_hwmod *oh, void *hsmmcinfo) >>> ... >>> >>> > + static int mmc_num; >>> > + >>> > + c += mmc_num; >>> >>> This does not look right.. > > omap2_hsmmc_info is filled in respective board files and will have a call to > omap2_hsmmc_init [hsmm.c]. > In omap2_hsmmc_init, it will call omap_hwmod_for_each_by_class which > takes 3 arguments out of which 2nd one is a callback and 3rd one is void > pointer to be passed to call back if necessary. > With this the callback "omap_mmc_init" will be called multiple times based on > the class entry in hwmod data file for each controller. > Say you have 3 controllers as in OMAP3, then "omap_mmc_init" will be > called thrice. > Here the argument "hsmmcinfo" needs to be incremented for each call, so having > a static mmc_num and incrementing it on each call. > >> >> So since mmc_num is static, it gets initialized to 0, then increased >> for each call.. What if you want to intialize controller 1 and 3 but >> not 2? > > The current implementation for initialization of MMC controllers will work > with any of the below order of devices: > 1) MMC1, MMC2, MMC3 > 2) MMC1, MMC3 > 3) MMC2, MMC1 > 4) MMC3, MMC2, MMC1 > 5) MMC3 > .... Sorry , you are correct the current implementation will not work for above mentioned scenarios. I will fix this and post updated series Regards, Kishore -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html