From patchwork Thu Aug 21 12:50:48 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Subhransu S. Prusty" X-Patchwork-Id: 4757901 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 572A09F2E9 for ; Thu, 21 Aug 2014 13:20:34 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4C8CF2011D for ; Thu, 21 Aug 2014 13:20:33 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id C21EC200E1 for ; Thu, 21 Aug 2014 13:20:31 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id C7B79265934; Thu, 21 Aug 2014 15:20:30 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id 23CAB265974; Thu, 21 Aug 2014 15:15:26 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id CB6AD265974; Thu, 21 Aug 2014 15:15:24 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by alsa0.perex.cz (Postfix) with ESMTP id 45FB82651E3 for ; Thu, 21 Aug 2014 15:13:11 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 21 Aug 2014 06:13:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.01,909,1400050800"; d="scan'208";a="588002609" Received: from subhransu-udesk1.iind.intel.com ([10.223.96.40]) by fmsmga002.fm.intel.com with ESMTP; 21 Aug 2014 06:13:04 -0700 From: "Subhransu S. Prusty" To: alsa-devel@alsa-project.org Date: Thu, 21 Aug 2014 18:20:48 +0530 Message-Id: <1408625450-32315-10-git-send-email-subhransu.s.prusty@intel.com> X-Mailer: git-send-email 1.9.0 In-Reply-To: <1408625450-32315-1-git-send-email-subhransu.s.prusty@intel.com> References: <1408625450-32315-1-git-send-email-subhransu.s.prusty@intel.com> Cc: vinod.koul@intel.com, broonie@kernel.org, "Subhransu S. Prusty" , lgirdwood@gmail.com, Lars-Peter Clausen Subject: [alsa-devel] [v3 09/11] ASoC: Intel: sst: load firmware using async callback X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Vinod Koul We would like the DSP firmware to be available in driver as soon as possible. So use the async callback in driver to probe to load the firmware as soon as usermode is up Signed-off-by: Vinod Koul Signed-off-by: Subhransu S. Prusty --- sound/soc/intel/sst/sst.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sound/soc/intel/sst/sst.c b/sound/soc/intel/sst/sst.c index 2712e6cf99a9..3b31c5823662 100644 --- a/sound/soc/intel/sst/sst.c +++ b/sound/soc/intel/sst/sst.c @@ -377,6 +377,19 @@ static int intel_sst_probe(struct pci_dev *pci, sst_set_fw_state_locked(sst_drv_ctx, SST_RESET); + snprintf(sst_drv_ctx->firmware_name, sizeof(sst_drv_ctx->firmware_name), + "%s%04x%s", "fw_sst_", + sst_drv_ctx->pci_id, ".bin"); + pr_debug("Requesting FW %s now...\n", sst_drv_ctx->firmware_name); + ret = request_firmware_nowait(THIS_MODULE, 1, + sst_drv_ctx->firmware_name, sst_drv_ctx->dev, + GFP_KERNEL, sst_drv_ctx, sst_firmware_load_cb); + + if (ret) { + pr_err("Firmware load failed with error: %d\n", ret); + goto do_unmap_dram; + } + sst_drv_ctx->irq_num = pci->irq; /* Register the ISR */ ret = devm_request_threaded_irq(&pci->dev, pci->irq,