From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755695AbbHZFcu (ORCPT ); Wed, 26 Aug 2015 01:32:50 -0400 Received: from mx2.suse.de ([195.135.220.15]:45293 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751887AbbHZFct (ORCPT ); Wed, 26 Aug 2015 01:32:49 -0400 Date: Wed, 26 Aug 2015 07:32:44 +0200 Message-ID: From: Takashi Iwai To: "Jie, Yang" Cc: Dmitry Torokhov , "Luis R. Rodriguez" , "Girdwood, Liam R" , "joonas.lahtinen@linux.intel.com" , Tom Gundersen , Ming Lei , Al Viro , "Greg Kroah-Hartman" , Kay Sievers , Linus Torvalds , David Woodhouse , Luis Rodriguez , lkml Subject: Re: Problems loading firmware using built-in drivers with kernels that use initramfs. In-Reply-To: References: <1440449403.2469.35.camel@loki> <1440489900.2419.4.camel@loki> <20150825193408.GR8051@wotan.suse.de> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.5 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 26 Aug 2015 07:12:46 +0200, Jie, Yang wrote: > > > -----Original Message----- > > From: Dmitry Torokhov [mailto:dmitry.torokhov@gmail.com] > > Sent: Wednesday, August 26, 2015 3:58 AM > > To: Takashi Iwai > > Cc: Luis R. Rodriguez; Girdwood, Liam R; Jie, Yang; > > joonas.lahtinen@linux.intel.com; Tom Gundersen; Ming Lei; Al Viro; Greg > > Kroah-Hartman; Kay Sievers; Linus Torvalds; David Woodhouse; Luis > > Rodriguez; lkml > > Subject: Re: Problems loading firmware using built-in drivers with kernels > > that use initramfs. > > > > On Tue, Aug 25, 2015 at 12:46 PM, Takashi Iwai wrote: > > > On Tue, 25 Aug 2015 21:34:08 +0200, > > > Luis R. Rodriguez wrote: > > >> > > >> On Tue, Aug 25, 2015 at 10:17:00AM +0100, David Woodhouse wrote: > > >> > Luis, did you tell me the other day that you made the kernel get > > >> > firmware directly from the file system? This regression would be yours > > then? > > >> > > >> I didn't implement that, Linus did in 2012 (see commit abb139e75c2c > > >> titled > > >> "firmware: teach the kernel to load firmware files directly from the > > >> filesystem"). But we used to fallback to a userspace helper when the > > >> fw was not present and then Takashi made this optional via commit > > >> 7b1269f778782d titled "firmware: Make user-mode helper optional". > > >> Takashi noted in the Kconfig "The user-mode helper is no longer > > >> required unless you have a special firmware file that resides in a > > >> non-standard path". It was not clarified why that's true though, or > > >> what you'd need to do to ensure that the fw would be available. It > > >> would be good for us to elaborate on that. > > > > > > The recent udev already dropped the firmware loading feature. > > > > Note that even when we had udev helper to load the firmware it was not > > always reliable depending on the exact point where we requested firmware. > > If request happened in probe() path before we mounted root fs then we'd > > never get it loaded because we'd be waiting for devices settle before > > mounting rootfs. > > For request in probe(), is it possible to use request_firmware_nowait() to > wait rootfs mounted or timeout in another thread? > > It looks usermodehelper_disabled is 0(at probe()) at this case then no waiting occurs > here in our testing. It's possible -- and even with the normal request_firmware(), in theory. The missing piece is that you need to inform the helper to retry the f/w loading. Currently the direct f/w loader assumes that the file is there and returns error if not present. If we implement a retry, another question is how to trigger it, i.e. how the helper can know when a fs is mounted a new file is present. Takashi