da68c4eb25
This patch series provides the core changes needed to allow SDIO cards to remain powered and active while the host system is suspended, and let them wake up the host system when needed. This is used to implement wake-on-lan with SDIO wireless cards at the moment. Patches to add that support to the libertas driver will be posted separately. This patch: Some SDIO cards have the ability to keep on running autonomously when the host system is suspended, and wake it up when needed. This however requires that the host controller preserve power to the card, and configure itself appropriately for wake-up. There is however 4 layers of abstractions involved: the host controller driver, the MMC core code, the SDIO card management code, and the actual SDIO function driver. To make things simple and manageable, host drivers must advertise their PM capabilities with a feature bitmask, then function drivers can query and set those features from their suspend method. Then each layer in the suspend call chain is expected to act upon those bits accordingly. [akpm@linux-foundation.org: fix typo in comment] Signed-off-by: Nicolas Pitre <nico@marvell.com> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
30 lines
1 KiB
C
30 lines
1 KiB
C
/*
|
|
* linux/include/linux/mmc/pm.h
|
|
*
|
|
* Author: Nicolas Pitre
|
|
* Copyright: (C) 2009 Marvell Technology Group Ltd.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef LINUX_MMC_PM_H
|
|
#define LINUX_MMC_PM_H
|
|
|
|
/*
|
|
* These flags are used to describe power management features that
|
|
* some cards (typically SDIO cards) might wish to benefit from when
|
|
* the host system is being suspended. There are several layers of
|
|
* abstractions involved, from the host controller driver, to the MMC core
|
|
* code, to the SDIO core code, to finally get to the actual SDIO function
|
|
* driver. This file is therefore used for common definitions shared across
|
|
* all those layers.
|
|
*/
|
|
|
|
typedef unsigned int mmc_pm_flag_t;
|
|
|
|
#define MMC_PM_KEEP_POWER (1 << 0) /* preserve card power during suspend */
|
|
#define MMC_PM_WAKE_SDIO_IRQ (1 << 1) /* wake up host system on SDIO IRQ assertion */
|
|
|
|
#endif
|