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

pwrseq.h (1601B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2014 Linaro Ltd
      4 *
      5 * Author: Ulf Hansson <ulf.hansson@linaro.org>
      6 */
      7#ifndef _MMC_CORE_PWRSEQ_H
      8#define _MMC_CORE_PWRSEQ_H
      9
     10#include <linux/types.h>
     11
     12struct mmc_host;
     13struct device;
     14struct module;
     15
     16struct mmc_pwrseq_ops {
     17	void (*pre_power_on)(struct mmc_host *host);
     18	void (*post_power_on)(struct mmc_host *host);
     19	void (*power_off)(struct mmc_host *host);
     20	void (*reset)(struct mmc_host *host);
     21};
     22
     23struct mmc_pwrseq {
     24	const struct mmc_pwrseq_ops *ops;
     25	struct device *dev;
     26	struct list_head pwrseq_node;
     27	struct module *owner;
     28};
     29
     30#ifdef CONFIG_OF
     31
     32int mmc_pwrseq_register(struct mmc_pwrseq *pwrseq);
     33void mmc_pwrseq_unregister(struct mmc_pwrseq *pwrseq);
     34
     35int mmc_pwrseq_alloc(struct mmc_host *host);
     36void mmc_pwrseq_pre_power_on(struct mmc_host *host);
     37void mmc_pwrseq_post_power_on(struct mmc_host *host);
     38void mmc_pwrseq_power_off(struct mmc_host *host);
     39void mmc_pwrseq_reset(struct mmc_host *host);
     40void mmc_pwrseq_free(struct mmc_host *host);
     41
     42#else
     43
     44static inline int mmc_pwrseq_register(struct mmc_pwrseq *pwrseq)
     45{
     46	return -ENOSYS;
     47}
     48static inline void mmc_pwrseq_unregister(struct mmc_pwrseq *pwrseq) {}
     49static inline int mmc_pwrseq_alloc(struct mmc_host *host) { return 0; }
     50static inline void mmc_pwrseq_pre_power_on(struct mmc_host *host) {}
     51static inline void mmc_pwrseq_post_power_on(struct mmc_host *host) {}
     52static inline void mmc_pwrseq_power_off(struct mmc_host *host) {}
     53static inline void mmc_pwrseq_reset(struct mmc_host *host) {}
     54static inline void mmc_pwrseq_free(struct mmc_host *host) {}
     55
     56#endif
     57
     58#endif