cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

host.h (2195B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 *  linux/drivers/mmc/core/host.h
      4 *
      5 *  Copyright (C) 2003 Russell King, All Rights Reserved.
      6 *  Copyright 2007 Pierre Ossman
      7 */
      8#ifndef _MMC_CORE_HOST_H
      9#define _MMC_CORE_HOST_H
     10
     11#include <linux/mmc/host.h>
     12
     13int mmc_register_host_class(void);
     14void mmc_unregister_host_class(void);
     15
     16void mmc_retune_enable(struct mmc_host *host);
     17void mmc_retune_disable(struct mmc_host *host);
     18void mmc_retune_hold(struct mmc_host *host);
     19void mmc_retune_release(struct mmc_host *host);
     20int mmc_retune(struct mmc_host *host);
     21void mmc_retune_pause(struct mmc_host *host);
     22void mmc_retune_unpause(struct mmc_host *host);
     23
     24static inline void mmc_retune_clear(struct mmc_host *host)
     25{
     26	host->retune_now = 0;
     27	host->need_retune = 0;
     28}
     29
     30static inline void mmc_retune_hold_now(struct mmc_host *host)
     31{
     32	host->retune_now = 0;
     33	host->hold_retune += 1;
     34}
     35
     36static inline void mmc_retune_recheck(struct mmc_host *host)
     37{
     38	if (host->hold_retune <= 1)
     39		host->retune_now = 1;
     40}
     41
     42static inline int mmc_host_cmd23(struct mmc_host *host)
     43{
     44	return host->caps & MMC_CAP_CMD23;
     45}
     46
     47static inline bool mmc_host_done_complete(struct mmc_host *host)
     48{
     49	return host->caps & MMC_CAP_DONE_COMPLETE;
     50}
     51
     52static inline int mmc_boot_partition_access(struct mmc_host *host)
     53{
     54	return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC);
     55}
     56
     57static inline int mmc_host_uhs(struct mmc_host *host)
     58{
     59	return host->caps &
     60		(MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 |
     61		 MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 |
     62		 MMC_CAP_UHS_DDR50) &&
     63	       host->caps & MMC_CAP_4_BIT_DATA;
     64}
     65
     66static inline bool mmc_card_hs200(struct mmc_card *card)
     67{
     68	return card->host->ios.timing == MMC_TIMING_MMC_HS200;
     69}
     70
     71static inline bool mmc_card_ddr52(struct mmc_card *card)
     72{
     73	return card->host->ios.timing == MMC_TIMING_MMC_DDR52;
     74}
     75
     76static inline bool mmc_card_hs400(struct mmc_card *card)
     77{
     78	return card->host->ios.timing == MMC_TIMING_MMC_HS400;
     79}
     80
     81static inline bool mmc_card_hs400es(struct mmc_card *card)
     82{
     83	return card->host->ios.enhanced_strobe;
     84}
     85
     86static inline bool mmc_card_sd_express(struct mmc_host *host)
     87{
     88	return host->ios.timing == MMC_TIMING_SD_EXP ||
     89		host->ios.timing == MMC_TIMING_SD_EXP_1_2V;
     90}
     91
     92#endif
     93