xref: /linux/drivers/mmc/host/sdhci-cqhci.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1*ebb5fd38SBrian Norris /* SPDX-License-Identifier: GPL-2.0-only */
2*ebb5fd38SBrian Norris /*
3*ebb5fd38SBrian Norris  * Copyright 2022 The Chromium OS Authors
4*ebb5fd38SBrian Norris  *
5*ebb5fd38SBrian Norris  * Support that applies to the combination of SDHCI and CQHCI, while not
6*ebb5fd38SBrian Norris  * expressing a dependency between the two modules.
7*ebb5fd38SBrian Norris  */
8*ebb5fd38SBrian Norris 
9*ebb5fd38SBrian Norris #ifndef __MMC_HOST_SDHCI_CQHCI_H__
10*ebb5fd38SBrian Norris #define __MMC_HOST_SDHCI_CQHCI_H__
11*ebb5fd38SBrian Norris 
12*ebb5fd38SBrian Norris #include "cqhci.h"
13*ebb5fd38SBrian Norris #include "sdhci.h"
14*ebb5fd38SBrian Norris 
sdhci_and_cqhci_reset(struct sdhci_host * host,u8 mask)15*ebb5fd38SBrian Norris static inline void sdhci_and_cqhci_reset(struct sdhci_host *host, u8 mask)
16*ebb5fd38SBrian Norris {
17*ebb5fd38SBrian Norris 	if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL) &&
18*ebb5fd38SBrian Norris 	    host->mmc->cqe_private)
19*ebb5fd38SBrian Norris 		cqhci_deactivate(host->mmc);
20*ebb5fd38SBrian Norris 
21*ebb5fd38SBrian Norris 	sdhci_reset(host, mask);
22*ebb5fd38SBrian Norris }
23*ebb5fd38SBrian Norris 
24*ebb5fd38SBrian Norris #endif /* __MMC_HOST_SDHCI_CQHCI_H__ */
25