From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tony Lindgren Subject: Re: [PATCH 01/10] pinctrl: use postcore_initcall Date: Thu, 18 Oct 2012 19:38:18 -0700 Message-ID: <20121019023818.GO30550@atomide.com> References: <1350551224-12857-1-git-send-email-haojian.zhuang@gmail.com> <5080802B.3000209@wwwdotorg.org> <20121018222802.GG30550@atomide.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: "devicetree-discuss" To: Haojian Zhuang Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: devicetree@vger.kernel.org * Haojian Zhuang [121018 19:17]: > On Fri, Oct 19, 2012 at 6:28 AM, Tony Lindgren wrote: > > > > Specifically could you decribe the cases where this issue happens? > > Also check if one of your client drivers has some early initcall > > that's no longer needed. > > Yes, the special case is PMIC. Most of PMIC are based on I2C/SPI bus. > It means that I2C/SPI bus driver should be initialized firstly. For example, > we could find that PMIC mfd driver are initialized in subsys init call level. > It means that pinctrl should be initialized earlier than I2C/SPI bus driver. > Otherwise, pins of I2C bus may not be configured as I2C function since > pinctrl driver is module init call level. Hmm, the order in drivers/Makefile is already: pinctrl/ i2c/ Maybe check that your i2c drivers don't have non-standard initcalls? Also the i2c drivers may need to return -EPROBE_DEFER? Regards, Tony From mboxrd@z Thu Jan 1 00:00:00 1970 From: tony@atomide.com (Tony Lindgren) Date: Thu, 18 Oct 2012 19:38:18 -0700 Subject: [PATCH 01/10] pinctrl: use postcore_initcall In-Reply-To: References: <1350551224-12857-1-git-send-email-haojian.zhuang@gmail.com> <5080802B.3000209@wwwdotorg.org> <20121018222802.GG30550@atomide.com> Message-ID: <20121019023818.GO30550@atomide.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org * Haojian Zhuang [121018 19:17]: > On Fri, Oct 19, 2012 at 6:28 AM, Tony Lindgren wrote: > > > > Specifically could you decribe the cases where this issue happens? > > Also check if one of your client drivers has some early initcall > > that's no longer needed. > > Yes, the special case is PMIC. Most of PMIC are based on I2C/SPI bus. > It means that I2C/SPI bus driver should be initialized firstly. For example, > we could find that PMIC mfd driver are initialized in subsys init call level. > It means that pinctrl should be initialized earlier than I2C/SPI bus driver. > Otherwise, pins of I2C bus may not be configured as I2C function since > pinctrl driver is module init call level. Hmm, the order in drivers/Makefile is already: pinctrl/ i2c/ Maybe check that your i2c drivers don't have non-standard initcalls? Also the i2c drivers may need to return -EPROBE_DEFER? Regards, Tony