From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-iy0-f194.google.com ([209.85.210.194]:43309 "EHLO mail-iy0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751017Ab0L2ICB convert rfc822-to-8bit (ORCPT ); Wed, 29 Dec 2010 03:02:01 -0500 MIME-Version: 1.0 In-Reply-To: References: From: Ohad Ben-Cohen Date: Wed, 29 Dec 2010 10:01:40 +0200 Message-ID: Subject: Re: [linux-pm] subtle pm_runtime_put_sync race and sdio functions To: Alan Stern Cc: "Rafael J. Wysocki" , linux-pm@lists.linux-foundation.org, Johannes Berg , linux-wireless@vger.kernel.org, linux-mmc@vger.kernel.org, Ido Yariv , Kevin Hilman Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Tue, Dec 28, 2010 at 11:46 PM, Alan Stern wrote: > Similarly, during system suspend mmc_suspend_host() should be > responsible for doing all the necessary power-down operations.  Runtime > PM is completely out of the picture at this time.  And this should be > independent of mac80211 -- in fact, the card should be powered down > appropriately even if the kernel doesn't have a mac80211 layer. And it is. But in order to boot the firmware on resume, we need to reset the device. And if system suspend has been cancelled before mmc_power_off() was invoked, we will not be able to. So, in this case too, the driver will have to power the device off. It all really boils down to the same solution - we will always have to bypass runtime PM and directly control the power of the device.