xref: /openbmc/linux/drivers/mmc/host/sdhci-cqhci.h (revision 1aa78c1d)
11aa78c1dSBrian Norris /* SPDX-License-Identifier: GPL-2.0-only */
21aa78c1dSBrian Norris /*
31aa78c1dSBrian Norris  * Copyright 2022 The Chromium OS Authors
41aa78c1dSBrian Norris  *
51aa78c1dSBrian Norris  * Support that applies to the combination of SDHCI and CQHCI, while not
61aa78c1dSBrian Norris  * expressing a dependency between the two modules.
71aa78c1dSBrian Norris  */
81aa78c1dSBrian Norris 
91aa78c1dSBrian Norris #ifndef __MMC_HOST_SDHCI_CQHCI_H__
101aa78c1dSBrian Norris #define __MMC_HOST_SDHCI_CQHCI_H__
111aa78c1dSBrian Norris 
121aa78c1dSBrian Norris #include "cqhci.h"
131aa78c1dSBrian Norris #include "sdhci.h"
141aa78c1dSBrian Norris 
sdhci_and_cqhci_reset(struct sdhci_host * host,u8 mask)151aa78c1dSBrian Norris static inline void sdhci_and_cqhci_reset(struct sdhci_host *host, u8 mask)
161aa78c1dSBrian Norris {
171aa78c1dSBrian Norris 	if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL) &&
181aa78c1dSBrian Norris 	    host->mmc->cqe_private)
191aa78c1dSBrian Norris 		cqhci_deactivate(host->mmc);
201aa78c1dSBrian Norris 
211aa78c1dSBrian Norris 	sdhci_reset(host, mask);
221aa78c1dSBrian Norris }
231aa78c1dSBrian Norris 
241aa78c1dSBrian Norris #endif /* __MMC_HOST_SDHCI_CQHCI_H__ */
25