mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-21 11:53:01 +00:00
mmc: sdhci: Implement set_transfer_params() cmdq host op
This is needed to set the dma mode for CQ transfers. The dma mode may be changed by the commands sent in legacy mode (like tuning which uses FIFO mode). Change-Id: Idaa2cb0c7712846f6827272caefc112b127ef818 Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
This commit is contained in:
parent
e5020639e5
commit
ed0562e7de
|
@ -3747,6 +3747,22 @@ static int sdhci_is_adma2_64bit(struct sdhci_host *host)
|
|||
#endif
|
||||
|
||||
#ifdef CONFIG_MMC_CQ_HCI
|
||||
static void sdhci_cmdq_set_transfer_params(struct mmc_host *mmc)
|
||||
{
|
||||
struct sdhci_host *host = mmc_priv(mmc);
|
||||
u8 ctrl;
|
||||
|
||||
if (host->version >= SDHCI_SPEC_200) {
|
||||
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
||||
ctrl &= ~SDHCI_CTRL_DMA_MASK;
|
||||
if (host->flags & SDHCI_USE_ADMA_64BIT)
|
||||
ctrl |= SDHCI_CTRL_ADMA64;
|
||||
else
|
||||
ctrl |= SDHCI_CTRL_ADMA32;
|
||||
sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
|
||||
}
|
||||
}
|
||||
|
||||
static void sdhci_cmdq_clear_set_irqs(struct mmc_host *mmc, bool clear)
|
||||
{
|
||||
struct sdhci_host *host = mmc_priv(mmc);
|
||||
|
@ -3851,6 +3867,10 @@ static void sdhci_cmdq_update_pm_qos(struct mmc_host *mmc,
|
|||
}
|
||||
|
||||
#else
|
||||
static void sdhci_cmdq_set_transfer_params(struct mmc_host *mmc)
|
||||
{
|
||||
|
||||
}
|
||||
static void sdhci_cmdq_clear_set_irqs(struct mmc_host *mmc, bool clear)
|
||||
{
|
||||
|
||||
|
@ -3916,6 +3936,7 @@ static const struct cmdq_host_ops sdhci_cmdq_ops = {
|
|||
.crypto_cfg_reset = sdhci_cmdq_crypto_cfg_reset,
|
||||
.post_cqe_halt = sdhci_cmdq_post_cqe_halt,
|
||||
.pm_qos_update = sdhci_cmdq_update_pm_qos,
|
||||
.set_transfer_params = sdhci_cmdq_set_transfer_params,
|
||||
};
|
||||
|
||||
int sdhci_add_host(struct sdhci_host *host)
|
||||
|
|
Loading…
Reference in a new issue