mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
mmc: start removing enable / disable API
Most parts of the enable / disable API are no longer used and can be removed. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Tested-by: Venkatraman S <svenkatr@ti.com> Tested-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
parent
4b1a61705a
commit
907d2e7cc7
9 changed files with 27 additions and 242 deletions
|
@ -175,7 +175,6 @@ extern unsigned int mmc_align_data_size(struct mmc_card *, unsigned int);
|
|||
|
||||
extern int __mmc_claim_host(struct mmc_host *host, atomic_t *abort);
|
||||
extern void mmc_release_host(struct mmc_host *host);
|
||||
extern void mmc_do_release_host(struct mmc_host *host);
|
||||
extern int mmc_try_claim_host(struct mmc_host *host);
|
||||
|
||||
extern int mmc_flush_cache(struct mmc_card *);
|
||||
|
|
|
@ -80,34 +80,11 @@ struct mmc_ios {
|
|||
|
||||
struct mmc_host_ops {
|
||||
/*
|
||||
* Hosts that support power saving can use the 'enable' and 'disable'
|
||||
* methods to exit and enter power saving states. 'enable' is called
|
||||
* when the host is claimed and 'disable' is called (or scheduled with
|
||||
* a delay) when the host is released. The 'disable' is scheduled if
|
||||
* the disable delay set by 'mmc_set_disable_delay()' is non-zero,
|
||||
* otherwise 'disable' is called immediately. 'disable' may be
|
||||
* scheduled repeatedly, to permit ever greater power saving at the
|
||||
* expense of ever greater latency to re-enable. Rescheduling is
|
||||
* determined by the return value of the 'disable' method. A positive
|
||||
* value gives the delay in milliseconds.
|
||||
*
|
||||
* In the case where a host function (like set_ios) may be called
|
||||
* with or without the host claimed, enabling and disabling can be
|
||||
* done directly and will nest correctly. Call 'mmc_host_enable()' and
|
||||
* 'mmc_host_lazy_disable()' for this purpose, but note that these
|
||||
* functions must be paired.
|
||||
*
|
||||
* Alternatively, 'mmc_host_enable()' may be paired with
|
||||
* 'mmc_host_disable()' which calls 'disable' immediately. In this
|
||||
* case the 'disable' method will be called with 'lazy' set to 0.
|
||||
* This is mainly useful for error paths.
|
||||
*
|
||||
* Because lazy disable may be called from a work queue, the 'disable'
|
||||
* method must claim the host when 'lazy' != 0, which will work
|
||||
* correctly because recursion is detected and handled.
|
||||
* 'enable' is called when the host is claimed and 'disable' is called
|
||||
* when the host is released. 'enable' and 'disable' are deprecated.
|
||||
*/
|
||||
int (*enable)(struct mmc_host *host);
|
||||
int (*disable)(struct mmc_host *host, int lazy);
|
||||
int (*disable)(struct mmc_host *host);
|
||||
/*
|
||||
* It is optional for the host to implement pre_req and post_req in
|
||||
* order to support double buffering of requests (prepare one
|
||||
|
@ -218,7 +195,7 @@ struct mmc_host {
|
|||
#define MMC_CAP_SPI (1 << 4) /* Talks only SPI protocols */
|
||||
#define MMC_CAP_NEEDS_POLL (1 << 5) /* Needs polling for card-detection */
|
||||
#define MMC_CAP_8_BIT_DATA (1 << 6) /* Can the host do 8 bit transfers */
|
||||
#define MMC_CAP_DISABLE (1 << 7) /* Can the host be disabled */
|
||||
|
||||
#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */
|
||||
#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */
|
||||
#define MMC_CAP_ERASE (1 << 10) /* Allow erase/trim commands */
|
||||
|
@ -301,13 +278,7 @@ struct mmc_host {
|
|||
unsigned int removed:1; /* host is being removed */
|
||||
#endif
|
||||
|
||||
/* Only used with MMC_CAP_DISABLE */
|
||||
int enabled; /* host is enabled */
|
||||
int rescan_disable; /* disable card detection */
|
||||
int nesting_cnt; /* "enable" nesting count */
|
||||
int en_dis_recurs; /* detect recursion */
|
||||
unsigned int disable_delay; /* disable delay in msecs */
|
||||
struct delayed_work disable; /* disabling work */
|
||||
|
||||
struct mmc_card *card; /* device attached to this host */
|
||||
|
||||
|
@ -407,17 +378,8 @@ int mmc_card_awake(struct mmc_host *host);
|
|||
int mmc_card_sleep(struct mmc_host *host);
|
||||
int mmc_card_can_sleep(struct mmc_host *host);
|
||||
|
||||
int mmc_host_enable(struct mmc_host *host);
|
||||
int mmc_host_disable(struct mmc_host *host);
|
||||
int mmc_host_lazy_disable(struct mmc_host *host);
|
||||
int mmc_pm_notify(struct notifier_block *notify_block, unsigned long, void *);
|
||||
|
||||
static inline void mmc_set_disable_delay(struct mmc_host *host,
|
||||
unsigned int disable_delay)
|
||||
{
|
||||
host->disable_delay = disable_delay;
|
||||
}
|
||||
|
||||
/* Module parameter */
|
||||
extern bool mmc_assume_removable;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue