Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp858727imm; Wed, 1 Aug 2018 06:30:30 -0700 (PDT) X-Google-Smtp-Source: AAOMgpebKEc7xJK78tCMB0HmKxYK2inPaaVWWV+07d6qoHp63KcFxUxYawoWfwj3gCifECr8Iylo X-Received: by 2002:a63:115e:: with SMTP id 30-v6mr24843943pgr.53.1533130230762; Wed, 01 Aug 2018 06:30:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533130230; cv=none; d=google.com; s=arc-20160816; b=BWh70pOZuyPxLAA/SXR0b1oEgqAtrwRJThG8b5eQYYlLpedEUavcNRoQAkl6YTIybU CnJ0kB/r0mnuIXSa8g9CMvZiUISlem+ZHOGAptTtKUHSzOpaKULwRY0+JBmF1LV3OJL0 v1FE8aoh2DRFIxE7EMjlpilKLVwatInLll8uYWdSlrAfkdZ9JcXq2R6+0prS35pLyu9O 10V6joCDWWRs1q+t4Hx+0tvAUNw0c3ykLOVoQUBIpL0JFhQoUf2+uDlsmeI6NqnCNu45 Kt4dsWV18Hg6KtIKNcWfaRMqC2mH8esyqRiliVZUNEEnXvWIE/X2mU8eD9YpJjUyYMoc yf7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=Z4X27xPlOHVle2VFkWx36s5HOu7wG2DiXBnwVVvFhlg=; b=ejNPnBhblXzn70AFTpLy+lkspaOYfiwz59VV/S9SpNrayD0ugPnwo60yxCITg51LCB uE+cWEaBfyrM1nXeVK1dRbursjJ3Db8ucNjQfzRXt73itQnh2x2yP/ZA/OU0Bcqcv369 Bs6BAXIfUcS0whgroYHZt7fqs6P66x7hTNI8/FG4D4UupyajA+NT+MxIEuRPlntNbKIi eWp8NvC7jXXCbcysEfBkq3RFahh4yng1j0+EodGdO+dxpCHirfWjTjECydOWlvL7xrxS cxtyrluSOOiGqnJAVkG98WHeX+gwRmJapOf4mfZ8yhAsmApdWJ9+FI3B7n+JTofpcKDp Tgbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=iWE01wiI; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w27-v6si16688810pgc.232.2018.08.01.06.30.16; Wed, 01 Aug 2018 06:30:30 -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; dkim=pass header.i=@linaro.org header.s=google header.b=iWE01wiI; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389345AbeHAPPN (ORCPT + 99 others); Wed, 1 Aug 2018 11:15:13 -0400 Received: from mail-it0-f66.google.com ([209.85.214.66]:35001 "EHLO mail-it0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389217AbeHAPPN (ORCPT ); Wed, 1 Aug 2018 11:15:13 -0400 Received: by mail-it0-f66.google.com with SMTP id q20-v6so9317355ith.0 for ; Wed, 01 Aug 2018 06:29:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Z4X27xPlOHVle2VFkWx36s5HOu7wG2DiXBnwVVvFhlg=; b=iWE01wiIhoKqNQ/Tg+6IP8JR4ddS3PmM4cRsOVwQjIj/ChqiV53X0LY0kGr8eFFkKo /E2Up16SAB6lspHlkTdCrmoKXVq3UEDpxa2AXy5pu2Ew+UcVtc86cf8f0ZnsUbGn7fGG JLxFrOpQiLt71pTBw7gGSPCleCcgqUQ+hcqq4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Z4X27xPlOHVle2VFkWx36s5HOu7wG2DiXBnwVVvFhlg=; b=mRovt8/OMiyzlRK87RoCpMDk1WrSMc0W0x9HdsHgFgMgFV7HKtSeoWbQuP8YOvhu0e c8GCOqqKW8z/4fUuLPZxdljoX3QF/HjOOIDSGDP4SJAt3vGLLuDmEAQF6PtdB82d0+/U mmf64HaCSDEcvJtqCr8H5aUJ5h7VPBqWUGacLwx9tpzPlPgWA2qzRZ8noxnNit2j7M03 Hu9G47h/fuvM1L6mDSjFIrN+bIWpGuAKodT0yh/8RaMuU4bv/Gr3B5sVFacGgT5VMmv0 WRMv3V6o0SNNeJ5NxJNckHm1o7LKYSZLIkfAe3GPEqrvejGAVsqwKKxNpSE2WzDOIqPH wjIA== X-Gm-Message-State: AOUpUlFazGwRSIfeGYvG115CGXOn3J4OOlP0diLJlE2nXKaD0iF90ifu ZqMFl7z6nB1C5Mwykv+CwePpO91lW+p5i1WQNx/xvg== X-Received: by 2002:a24:4524:: with SMTP id y36-v6mr3506882ita.97.1533130165116; Wed, 01 Aug 2018 06:29:25 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:2b03:0:0:0:0:0 with HTTP; Wed, 1 Aug 2018 06:29:24 -0700 (PDT) In-Reply-To: <20180731061721.15831-5-kai.heng.feng@canonical.com> References: <20180731061721.15831-1-kai.heng.feng@canonical.com> <20180731061721.15831-5-kai.heng.feng@canonical.com> From: Ulf Hansson Date: Wed, 1 Aug 2018 15:29:24 +0200 Message-ID: Subject: Re: [PATCH 4/5] memstick: rtsx_usb_ms: Support runtime power management To: Kai-Heng Feng Cc: Arnd Bergmann , Greg Kroah-Hartman , Alan Stern , "Bauer.Chen" , ricky_wu@realtek.com, Linux Kernel Mailing List , Linux USB List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [...] > -#ifdef CONFIG_PM_SLEEP > -static int rtsx_usb_ms_suspend(struct device *dev) > +#ifdef CONFIG_PM > +static int rtsx_usb_ms_runtime_suspend(struct device *dev) > { > struct rtsx_usb_ms *host = dev_get_drvdata(dev); > struct memstick_host *msh = host->msh; > > - dev_dbg(ms_dev(host), "--> %s\n", __func__); > - > + host->suspend = true; > memstick_suspend_host(msh); I missed this one. Does this really work? To me, this looks like doing things upside-down. To suspend the host, you first need to runtime resume it, because mmc_suspend_host() calls into one of the host ops and my touch the device, right? If you want to suspend the host (actually the naming is wrong, as it's about suspending/power-iff the memstick card), that should be done via when the memstick core finds that the card is removed or during system wide suspend. > + > return 0; > } > > -static int rtsx_usb_ms_resume(struct device *dev) > +static int rtsx_usb_ms_runtime_resume(struct device *dev) > { > struct rtsx_usb_ms *host = dev_get_drvdata(dev); > struct memstick_host *msh = host->msh; > > - dev_dbg(ms_dev(host), "--> %s\n", __func__); > - > memstick_resume_host(msh); According to the above, this seems not correct to me. > + host->suspend = false; > + schedule_delayed_work(&host->poll_card, 100); > + > return 0; > } > -#endif /* CONFIG_PM_SLEEP */ > [...] Kind regards Uffe