Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp4783232imm; Mon, 30 Jul 2018 23:20:31 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdI161ARXJui+co55O5TogC0eHJ14M4C6mICVUU5xMZUyB1Y/mH7YdjpfQ0Y3uB1cLrP8Bu X-Received: by 2002:a63:5d09:: with SMTP id r9-v6mr19037357pgb.303.1533018031939; Mon, 30 Jul 2018 23:20:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533018031; cv=none; d=google.com; s=arc-20160816; b=BrRD7TjQng/Xkl2zYiWPo4KR4uYLEcUNs1W5R9HKo5UMUrkDy2ao1GnqFC2OE65SV2 Z2uMTo0G4hJ+xgIw7sPCmLeUcdeyyKcRdIvWe33ti9g8C8F6r84RdKpECE7BiLr10Im3 6IQINydUQ9RPia4KFS3ERlyrHu3iEIoFN1rjr5irDLqq9+eAbSgDarxD/y1CqH5xlZDw vZqB7B2vpF2m39tiisj0f+5z9vRlOfjdUpjK7zQHvy2QOZch09uCPvTF1BcYuUSTj3gi 1rdA8+wKSqbJ3rmF7TIGU+zBdtkF5O6g0LG4YB961MhWH2aecG41IYvS/rCTEDBxhyPS 9nrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=TXEQMMBxzO1OAFJOkTeDD6tONzdv5ZUn4dDwUoVbYaU=; b=XH18uABizn6Hx3NG1YBB0pj4Zr2i0ziqO9Rg5UGboPoUpU39q1ZOir41ZmuHdXu4me 70M49tFCbbEONQ/3kxZO2vSrq7ZGe7W/EiMsrimizbQ2ibcSZ5j1lJ8SVQ3VyFCktnsh JtmhsfMId67rA2gNaNdeNOq2FVt1cwPh4k0yreCKxr6sAepnT4UToDXJjQs9lfHxa4gr 3j/Acib7ZRL3c7aIupLfOTdgHVS5Fn6vK5CpLx906kCz9kDthADXUdPV5k2QDw5t3cUF kd1IezgkYRtZ6h2wX6VBZ3P1x/ZEB+h6sPCYlE3LomwMxhip52Qs7ylv4rrwT5VBYEOm IAEA== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x17-v6si12531754pfn.286.2018.07.30.23.20.17; Mon, 30 Jul 2018 23:20:31 -0700 (PDT) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731984AbeGaH43 (ORCPT + 99 others); Tue, 31 Jul 2018 03:56:29 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:40423 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729284AbeGaH42 (ORCPT ); Tue, 31 Jul 2018 03:56:28 -0400 Received: from 1-161-146-33.dynamic-ip.hinet.net ([1.161.146.33] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1fkNyd-0004XZ-T3; Tue, 31 Jul 2018 06:17:48 +0000 From: Kai-Heng Feng To: arnd@arndb.de, gregkh@linuxfoundation.org Cc: ulf.hansson@linaro.org, stern@rowland.harvard.edu, bauer.chen@realtek.com, ricky_wu@realtek.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Kai-Heng Feng Subject: [PATCH 5/5] misc: rtsx_usb: / memstick: rtsx_usb_ms: Avoid long delay before system suspend Date: Tue, 31 Jul 2018 14:17:21 +0800 Message-Id: <20180731061721.15831-6-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180731061721.15831-1-kai.heng.feng@canonical.com> References: <20180731061721.15831-1-kai.heng.feng@canonical.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There's a long power-on delay at the end of rtsx_usb_ms_set_param(). This delay is noticeable right before system suspend. To prevent already suspended memstick host from getting powered on by PM core, use DPM_FLAG_SMART_SUSPEND to avoid the situation. Signed-off-by: Kai-Heng Feng --- drivers/memstick/host/rtsx_usb_ms.c | 4 ++++ drivers/misc/cardreader/rtsx_usb.c | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/memstick/host/rtsx_usb_ms.c b/drivers/memstick/host/rtsx_usb_ms.c index 126eb310980a..e3b635d1220f 100644 --- a/drivers/memstick/host/rtsx_usb_ms.c +++ b/drivers/memstick/host/rtsx_usb_ms.c @@ -763,6 +763,10 @@ static int rtsx_usb_ms_drv_probe(struct platform_device *pdev) msh->set_param = rtsx_usb_ms_set_param; msh->caps = MEMSTICK_CAP_PAR4; + /* DPM_FLAG_LEAVE_SUSPENDED is not needed, the parent device will wake + * up memstick host. + */ + dev_pm_set_driver_flags(ms_dev(host), DPM_FLAG_SMART_SUSPEND); pm_runtime_set_active(ms_dev(host)); pm_runtime_enable(ms_dev(host)); diff --git a/drivers/misc/cardreader/rtsx_usb.c b/drivers/misc/cardreader/rtsx_usb.c index f7a66f614085..98bb878a6ade 100644 --- a/drivers/misc/cardreader/rtsx_usb.c +++ b/drivers/misc/cardreader/rtsx_usb.c @@ -671,6 +671,7 @@ static int rtsx_usb_probe(struct usb_interface *intf, goto out_init_fail; #ifdef CONFIG_PM + dev_pm_set_driver_flags(&intf->dev, DPM_FLAG_SMART_SUSPEND | DPM_FLAG_LEAVE_SUSPENDED); intf->needs_remote_wakeup = 1; usb_enable_autosuspend(usb_dev); #endif -- 2.17.1