Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1986452imu; Fri, 14 Dec 2018 04:06:49 -0800 (PST) X-Google-Smtp-Source: AFSGD/UKGD5gs+/5hUzAbTtgN7m5lmKu+QhzDErR6k5AjTqbzMo/t1IDhWvYmgaWJlVJ0ToxidtJ X-Received: by 2002:a17:902:7201:: with SMTP id ba1mr2596889plb.105.1544789209741; Fri, 14 Dec 2018 04:06:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544789209; cv=none; d=google.com; s=arc-20160816; b=lHKaeffxd11thetUH8Dfqv3KOIyHW9rCx1OYFaagsTGBsunwG1EGGKVUukSIdYRVut QbhjbD0bGWuKQpaeJ8Ig5/ghjUS8wrl5PzW/tnqUgh6WLZ+M+yYGq8c79pHGdcT08JYp PkgF5ijg6tsdb+ghbztRwvKQHkJGjSpHq8RZEVWqo9etsaoYyLq6JeYnmiI8Lkd8thxL rqvCFtVztlPRxpsllmVmGr/SIqxA9lJjepx9U80CQ+ZEL8FACd28r0w1Oyyhu6/ye0If cRf8El0a+yEwLKmSbx9Vq5fUJxtY7SpsB4LMeoZYSxSn7PNJIPCvzOjazQWEbW1MA4es LGyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=MzmM5ojL8CPck5/UWbPdhs+qrU3xijQRumC6KaJ9ers=; b=YgwKqgqIhCIOFFYfvjEFlFwiL2LaaHWxOHHfugNgPC5d0g+cfjWa5POZtp6M4Jyqpx 5CvUKQ97FrqVnqD37L/DNptr4rGDKnuPW3xMVmYPGpF5gJpDVMKZYFARIoU2pHvvu88/ 2Ak14yK9SGX4BQ57KnEcb8zLylKG6/bpbTdZq+SMZ/kL0ww5CFLsNJRWdh+du+CuiejB WAG4krOJ/F0tvHVQ4EhQZYquBbkgBqp2dJtD0MA9RZScVgbWfME9cWPpAC1qIfUG4gTp EQUk5GisdPaIDYYPDHbxszpAGDNnR/CJgUjLbAkwN+HaWzgGruN2rJ+f63vuLSb566q1 6OLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E4pIBzPx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 62si3800569pgi.314.2018.12.14.04.06.34; Fri, 14 Dec 2018 04:06:49 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E4pIBzPx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730497AbeLNMEX (ORCPT + 99 others); Fri, 14 Dec 2018 07:04:23 -0500 Received: from mail.kernel.org ([198.145.29.99]:49004 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730442AbeLNMEU (ORCPT ); Fri, 14 Dec 2018 07:04:20 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9EF302145D; Fri, 14 Dec 2018 12:04:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544789060; bh=mPNew83he/VHo8LDupx7cG26CXoN/BhuAM7dQcgU4xY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E4pIBzPxGx5iSAzlr+SsZE+YhZI8JwIzgSRgr7nSS7np7B9pdE2PSjuYSu0Q1jgq6 DcU/D1tNUZZq+s39z3C9L25RYQWnQ7opMkdvDDJ/k7izWOYuGAyklbPeNXXx2Wv6Sw xCNtggFUUjaHGUWnuFsEL3HNbarI7HQJd/64QwYU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peter Ujfalusi , Jarkko Nikula , Mark Brown , Sasha Levin Subject: [PATCH 4.19 079/142] ASoC: omap-dmic: Add pm_qos handling to avoid overruns with CPU_IDLE Date: Fri, 14 Dec 2018 12:59:24 +0100 Message-Id: <20181214115750.227346629@linuxfoundation.org> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20181214115747.053633987@linuxfoundation.org> References: <20181214115747.053633987@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit ffdcc3638c58d55a6fa68b6e5dfd4fb4109652eb ] We need to block sleep states which would require longer time to leave than the time the DMA must react to the DMA request in order to keep the FIFO serviced without overrun. Signed-off-by: Peter Ujfalusi Acked-by: Jarkko Nikula Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/omap/omap-dmic.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/omap/omap-dmic.c b/sound/soc/omap/omap-dmic.c index fe966272bd0c..cba9645b6487 100644 --- a/sound/soc/omap/omap-dmic.c +++ b/sound/soc/omap/omap-dmic.c @@ -48,6 +48,8 @@ struct omap_dmic { struct device *dev; void __iomem *io_base; struct clk *fclk; + struct pm_qos_request pm_qos_req; + int latency; int fclk_freq; int out_freq; int clk_div; @@ -124,6 +126,8 @@ static void omap_dmic_dai_shutdown(struct snd_pcm_substream *substream, mutex_lock(&dmic->mutex); + pm_qos_remove_request(&dmic->pm_qos_req); + if (!dai->active) dmic->active = 0; @@ -228,6 +232,8 @@ static int omap_dmic_dai_hw_params(struct snd_pcm_substream *substream, /* packet size is threshold * channels */ dma_data = snd_soc_dai_get_dma_data(dai, substream); dma_data->maxburst = dmic->threshold * channels; + dmic->latency = (OMAP_DMIC_THRES_MAX - dmic->threshold) * USEC_PER_SEC / + params_rate(params); return 0; } @@ -238,6 +244,9 @@ static int omap_dmic_dai_prepare(struct snd_pcm_substream *substream, struct omap_dmic *dmic = snd_soc_dai_get_drvdata(dai); u32 ctrl; + if (pm_qos_request_active(&dmic->pm_qos_req)) + pm_qos_update_request(&dmic->pm_qos_req, dmic->latency); + /* Configure uplink threshold */ omap_dmic_write(dmic, OMAP_DMIC_FIFO_CTRL_REG, dmic->threshold); -- 2.19.1