From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: Re: [RFC PATCH] slimbus: Linux driver framework for SLIMbus. Date: Mon, 22 Aug 2011 15:47:14 +0200 Message-ID: <201108221547.14657.arnd@arndb.de> References: <1313019091-15354-1-git-send-email-kheitke@codeaurora.org> <1313724284.19990.136.camel@finisterre.wolfsonmicro.main> Mime-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: linux-doc-owner@vger.kernel.org To: sdharia@codeaurora.org Cc: Mark Brown , Kenneth Heitke , David Brown , bryanh@codeaurora.org, linux-arm-msm@vger.kernel.org, rdunlap@xenotime.net, rmk+kernel@arm.linux.org.uk, john.stultz@linaro.org, akpm@linux-foundation.org, ohad@wizery.com, gregkh@suse.de, stefanr@s5r6.in-berlin.de, lethal@linux-sh.org, linville@tuxdriver.com, zajec5@gmail.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org On Monday 22 August 2011, Sagar Dharia wrote: > Another suggestion about probe is having callback to notify when the > device is ready-to-use after driver probe powers it up. I will change the > framework accordingly to have this done. Is this actually needed? If the driver is responsible for powering up the device, maybe it's enough to have a simple exported function from the framework that blocks until the device has been probed, using a 'completion' or a similar wait_event() based primitive for waiting for the device: 1. The bus driver creates the struct slim_device in one of the three ways mentioned and does init_completion(). 2. The probe function of the driver ensures that the regulators/clocks/... are set up correctly and then calls wait_for_completion() 3. When the device shows up on the bus, the slimbus layer calls complete(). Steps 2 and 3 can happen in any order. Arnd