Commit 5857b29b authored by Ulf Hansson's avatar Ulf Hansson

mmc: core: Move public functions from host.h to private headers

A significant amount of functions are available through the public mmc
host.h header file. Let's slim down this public mmc interface, as to
prevent users from abusing it, by moving some of the functions to private
mmc host.h header file.

This change concentrates on moving the functions into private mmc headers,
following changes may continue with additional clean-ups.
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarShawn Lin <shawn.lin@rock-chips.com>
parent 4facdde1
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#include "block.h" #include "block.h"
#include "core.h" #include "core.h"
#include "card.h" #include "card.h"
#include "host.h"
#include "bus.h" #include "bus.h"
#include "mmc_ops.h" #include "mmc_ops.h"
#include "sd_ops.h" #include "sd_ops.h"
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "core.h" #include "core.h"
#include "card.h" #include "card.h"
#include "host.h"
#include "sdio_cis.h" #include "sdio_cis.h"
#include "bus.h" #include "bus.h"
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "core.h" #include "core.h"
#include "card.h" #include "card.h"
#include "host.h"
#include "mmc_ops.h" #include "mmc_ops.h"
#ifdef CONFIG_FAIL_MMC_REQUEST #ifdef CONFIG_FAIL_MMC_REQUEST
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#ifndef _MMC_CORE_HOST_H #ifndef _MMC_CORE_HOST_H
#define _MMC_CORE_HOST_H #define _MMC_CORE_HOST_H
struct mmc_host; #include <linux/mmc/host.h>
int mmc_register_host_class(void); int mmc_register_host_class(void);
void mmc_unregister_host_class(void); void mmc_unregister_host_class(void);
...@@ -21,6 +21,53 @@ void mmc_retune_disable(struct mmc_host *host); ...@@ -21,6 +21,53 @@ void mmc_retune_disable(struct mmc_host *host);
void mmc_retune_hold(struct mmc_host *host); void mmc_retune_hold(struct mmc_host *host);
void mmc_retune_release(struct mmc_host *host); void mmc_retune_release(struct mmc_host *host);
int mmc_retune(struct mmc_host *host); int mmc_retune(struct mmc_host *host);
void mmc_retune_pause(struct mmc_host *host);
void mmc_retune_unpause(struct mmc_host *host);
static inline void mmc_retune_recheck(struct mmc_host *host)
{
if (host->hold_retune <= 1)
host->retune_now = 1;
}
static inline int mmc_host_cmd23(struct mmc_host *host)
{
return host->caps & MMC_CAP_CMD23;
}
static inline int mmc_boot_partition_access(struct mmc_host *host)
{
return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC);
}
static inline int mmc_host_uhs(struct mmc_host *host)
{
return host->caps &
(MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_DDR50);
}
static inline bool mmc_card_hs200(struct mmc_card *card)
{
return card->host->ios.timing == MMC_TIMING_MMC_HS200;
}
static inline bool mmc_card_ddr52(struct mmc_card *card)
{
return card->host->ios.timing == MMC_TIMING_MMC_DDR52;
}
static inline bool mmc_card_hs400(struct mmc_card *card)
{
return card->host->ios.timing == MMC_TIMING_MMC_HS400;
}
static inline bool mmc_card_hs400es(struct mmc_card *card)
{
return card->host->ios.enhanced_strobe;
}
#endif #endif
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "core.h" #include "core.h"
#include "card.h" #include "card.h"
#include "host.h"
#include "bus.h" #include "bus.h"
#define RESULT_OK 0 #define RESULT_OK 0
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "core.h" #include "core.h"
#include "card.h" #include "card.h"
#include "host.h"
#include "bus.h" #include "bus.h"
#include "mmc_ops.h" #include "mmc_ops.h"
#include "sd.h" #include "sd.h"
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "core.h" #include "core.h"
#include "card.h" #include "card.h"
#include "host.h"
#include "bus.h" #include "bus.h"
#include "sd.h" #include "sd.h"
#include "sdio_bus.h" #include "sdio_bus.h"
......
...@@ -473,56 +473,20 @@ static inline int mmc_card_wake_sdio_irq(struct mmc_host *host) ...@@ -473,56 +473,20 @@ static inline int mmc_card_wake_sdio_irq(struct mmc_host *host)
return host->pm_flags & MMC_PM_WAKE_SDIO_IRQ; return host->pm_flags & MMC_PM_WAKE_SDIO_IRQ;
} }
static inline int mmc_host_cmd23(struct mmc_host *host) /* TODO: Move to private header */
{
return host->caps & MMC_CAP_CMD23;
}
static inline int mmc_boot_partition_access(struct mmc_host *host)
{
return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC);
}
static inline int mmc_host_uhs(struct mmc_host *host)
{
return host->caps &
(MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 |
MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 |
MMC_CAP_UHS_DDR50);
}
static inline int mmc_card_hs(struct mmc_card *card) static inline int mmc_card_hs(struct mmc_card *card)
{ {
return card->host->ios.timing == MMC_TIMING_SD_HS || return card->host->ios.timing == MMC_TIMING_SD_HS ||
card->host->ios.timing == MMC_TIMING_MMC_HS; card->host->ios.timing == MMC_TIMING_MMC_HS;
} }
/* TODO: Move to private header */
static inline int mmc_card_uhs(struct mmc_card *card) static inline int mmc_card_uhs(struct mmc_card *card)
{ {
return card->host->ios.timing >= MMC_TIMING_UHS_SDR12 && return card->host->ios.timing >= MMC_TIMING_UHS_SDR12 &&
card->host->ios.timing <= MMC_TIMING_UHS_DDR50; card->host->ios.timing <= MMC_TIMING_UHS_DDR50;
} }
static inline bool mmc_card_hs200(struct mmc_card *card)
{
return card->host->ios.timing == MMC_TIMING_MMC_HS200;
}
static inline bool mmc_card_ddr52(struct mmc_card *card)
{
return card->host->ios.timing == MMC_TIMING_MMC_DDR52;
}
static inline bool mmc_card_hs400(struct mmc_card *card)
{
return card->host->ios.timing == MMC_TIMING_MMC_HS400;
}
static inline bool mmc_card_hs400es(struct mmc_card *card)
{
return card->host->ios.enhanced_strobe;
}
void mmc_retune_timer_stop(struct mmc_host *host); void mmc_retune_timer_stop(struct mmc_host *host);
static inline void mmc_retune_needed(struct mmc_host *host) static inline void mmc_retune_needed(struct mmc_host *host)
...@@ -531,12 +495,6 @@ static inline void mmc_retune_needed(struct mmc_host *host) ...@@ -531,12 +495,6 @@ static inline void mmc_retune_needed(struct mmc_host *host)
host->need_retune = 1; host->need_retune = 1;
} }
static inline void mmc_retune_recheck(struct mmc_host *host)
{
if (host->hold_retune <= 1)
host->retune_now = 1;
}
static inline bool mmc_can_retune(struct mmc_host *host) static inline bool mmc_can_retune(struct mmc_host *host)
{ {
return host->can_retune == 1; return host->can_retune == 1;
...@@ -544,7 +502,5 @@ static inline bool mmc_can_retune(struct mmc_host *host) ...@@ -544,7 +502,5 @@ static inline bool mmc_can_retune(struct mmc_host *host)
int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error); int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error);
int mmc_abort_tuning(struct mmc_host *host, u32 opcode); int mmc_abort_tuning(struct mmc_host *host, u32 opcode);
void mmc_retune_pause(struct mmc_host *host);
void mmc_retune_unpause(struct mmc_host *host);
#endif /* LINUX_MMC_HOST_H */ #endif /* LINUX_MMC_HOST_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment