Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp795637pxb; Tue, 3 Nov 2020 12:45:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJxNpGMN7QNJsH+8qb+YkP6XyHweAdSQkqb4qBJgVfgZbUiwjkbt4ABoh2o+Zd94hzEx9v+u X-Received: by 2002:a17:906:911:: with SMTP id i17mr21457358ejd.40.1604436337657; Tue, 03 Nov 2020 12:45:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604436337; cv=none; d=google.com; s=arc-20160816; b=HLTla8xbB2A4yTUI0yH9EczrPrX7nMRwjTRkcVH4W7RSMm0ebvajO5QMTcu/+ZCSd7 iQHvnyDbFr9cdzhUsZ3ouJM8YeJNr4VhIJuNcIYolAoIL1EdrVFkhZpe8aShMq3qg9lq B0TjAKO1L6hM3FK1FNSD5u4yWw41j41H4nnnrVw/3A3PdR1eDVTFFFY+U11CUcwox+j/ /4UIktjN9FnKGMzAYEnlo/E6r3t0WHS72AFilSnNsGmuRd/uhNd4armNuMf25lJOc6YR gqk8cksG1r0FQo82Lzyz4Dmu3HBPkxoy5a1fySkm6j1z807vAi1H/o5/XWIdVUsfEXR9 4ygw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=J8D+VSLUzfQevC+neAzwnCLpKJ4f9Bs+fpc51c8TUUE=; b=thKAKeuDj8Uz2dOpg79InSYymRiM7DwWegoaGSO+12BwvA1zBGxoeer5DiouNWWVMy WQ6q+uQEkre5Lofr+KXjCNs0t9SyrJC74jcJYq8siCBC/i+rY3LA5twgLDD1UKSPPa/J 8ljx3sZE5ERE2BmbUsKsarc8TGFtAM6zlV4K4K3b6vSDFmZczpkvQp4SPi4M+ITjhVR0 DD2KuhQC9HcIrQn0SK6os2sBMN3KAEJI0WrZ7Fw7MrBdgl7RSQSqdumK+Iu/mi37eI/2 1AGhyZaFC0ca/Xijmox6VkwTorPC5T34mWqcs58ZUge3e5JTvQdttAifR7bd8akIkh0/ k/JQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jUX+TBLA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z2si11881871edi.245.2020.11.03.12.45.14; Tue, 03 Nov 2020 12:45:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=jUX+TBLA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730612AbgKCUm5 (ORCPT + 99 others); Tue, 3 Nov 2020 15:42:57 -0500 Received: from mail.kernel.org ([198.145.29.99]:55876 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730608AbgKCUm4 (ORCPT ); Tue, 3 Nov 2020 15:42:56 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (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 205AA223BD; Tue, 3 Nov 2020 20:42:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604436175; bh=Ruz/DldL8PDflyqGNbomgVXGltzi7AuKlFJAXU/Bg6k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jUX+TBLAYnqBiOBZ5nEFiEEf8PsWiOaWA2u00UfHJmcXQGY5bC3N7eGY10JM2sr7z mYr7uD/zjn6kXxrfEPWVFMb9x6sWWjTZZdNQCoTpTxj5/bbojFXwMJxZ6SBPx4TFdY MiImLQaUOI4dZDsZe0lCzuXva/21C5Kg+8Cx6QOQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Manivannan Sadhasivam , Bhaumik Bhatt , Sasha Levin Subject: [PATCH 5.9 134/391] bus: mhi: core: Abort suspends due to outgoing pending packets Date: Tue, 3 Nov 2020 21:33:05 +0100 Message-Id: <20201103203355.871687185@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201103203348.153465465@linuxfoundation.org> References: <20201103203348.153465465@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bhaumik Bhatt [ Upstream commit 515847c557dd33167be86cb429fc0674a331bc88 ] Add the missing check to abort suspends if a client driver has pending outgoing packets to send to the device. This allows better utilization of the MHI bus wherein clients on the host are not left waiting for longer suspend or resume cycles to finish for data transfers. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bhaumik Bhatt Signed-off-by: Manivannan Sadhasivam Link: https://lore.kernel.org/r/20200929175218.8178-4-manivannan.sadhasivam@linaro.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/bus/mhi/core/pm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c index 7960980780832..661d704c8093d 100644 --- a/drivers/bus/mhi/core/pm.c +++ b/drivers/bus/mhi/core/pm.c @@ -686,7 +686,8 @@ int mhi_pm_suspend(struct mhi_controller *mhi_cntrl) return -EIO; /* Return busy if there are any pending resources */ - if (atomic_read(&mhi_cntrl->dev_wake)) + if (atomic_read(&mhi_cntrl->dev_wake) || + atomic_read(&mhi_cntrl->pending_pkts)) return -EBUSY; /* Take MHI out of M2 state */ @@ -712,7 +713,8 @@ int mhi_pm_suspend(struct mhi_controller *mhi_cntrl) write_lock_irq(&mhi_cntrl->pm_lock); - if (atomic_read(&mhi_cntrl->dev_wake)) { + if (atomic_read(&mhi_cntrl->dev_wake) || + atomic_read(&mhi_cntrl->pending_pkts)) { write_unlock_irq(&mhi_cntrl->pm_lock); return -EBUSY; } -- 2.27.0