Loading drivers/mmc/host/cmdq_hci.c +2 −0 Original line number Diff line number Diff line Loading @@ -653,6 +653,8 @@ static void cmdq_finish_data(struct mmc_host *mmc, unsigned int tag) CMDQ_SEND_STATUS_TRIGGER, CQCTL); cmdq_runtime_pm_put(cq_host); if (cq_host->ops->crypto_cfg_reset) cq_host->ops->crypto_cfg_reset(mmc, tag); mrq->done(mrq); } Loading drivers/mmc/host/cmdq_hci.h +1 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,7 @@ struct cmdq_host_ops { int (*reset)(struct mmc_host *mmc); int (*crypto_cfg)(struct mmc_host *mmc, struct mmc_request *mrq, u32 slot); void (*crypto_cfg_reset)(struct mmc_host *mmc, unsigned int slot); void (*post_cqe_halt)(struct mmc_host *mmc); }; Loading drivers/mmc/host/sdhci.c +16 −0 Original line number Diff line number Diff line Loading @@ -3533,6 +3533,17 @@ static int sdhci_cmdq_crypto_cfg(struct mmc_host *mmc, return sdhci_crypto_cfg(host, mrq, slot); } static void sdhci_cmdq_crypto_cfg_reset(struct mmc_host *mmc, unsigned int slot) { struct sdhci_host *host = mmc_priv(mmc); if (!host->is_crypto_en) return; if (host->ops->crypto_cfg_reset) host->ops->crypto_cfg_reset(host, slot); } static void sdhci_cmdq_post_cqe_halt(struct mmc_host *mmc) { struct sdhci_host *host = mmc_priv(mmc); Loading Loading @@ -3583,6 +3594,10 @@ static int sdhci_cmdq_crypto_cfg(struct mmc_host *mmc, return 0; } static void sdhci_cmdq_crypto_cfg_reset(struct mmc_host *mmc, unsigned int slot) { } static void sdhci_cmdq_post_cqe_halt(struct mmc_host *mmc) { } Loading @@ -3596,6 +3611,7 @@ static const struct cmdq_host_ops sdhci_cmdq_ops = { .clear_set_dumpregs = sdhci_cmdq_clear_set_dumpregs, .enhanced_strobe_mask = sdhci_enhanced_strobe_mask, .crypto_cfg = sdhci_cmdq_crypto_cfg, .crypto_cfg_reset = sdhci_cmdq_crypto_cfg_reset, .post_cqe_halt = sdhci_cmdq_post_cqe_halt, }; Loading drivers/mmc/host/sdhci.h +1 −0 Original line number Diff line number Diff line Loading @@ -308,6 +308,7 @@ struct sdhci_ops { int (*crypto_engine_cfg)(struct sdhci_host *host, struct mmc_request *mrq, u32 slot); int (*crypto_engine_reset)(struct sdhci_host *host); void (*crypto_cfg_reset)(struct sdhci_host *host, unsigned int slot); void (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs); void (*hw_reset)(struct sdhci_host *host); void (*adma_workaround)(struct sdhci_host *host, u32 intmask); Loading Loading
drivers/mmc/host/cmdq_hci.c +2 −0 Original line number Diff line number Diff line Loading @@ -653,6 +653,8 @@ static void cmdq_finish_data(struct mmc_host *mmc, unsigned int tag) CMDQ_SEND_STATUS_TRIGGER, CQCTL); cmdq_runtime_pm_put(cq_host); if (cq_host->ops->crypto_cfg_reset) cq_host->ops->crypto_cfg_reset(mmc, tag); mrq->done(mrq); } Loading
drivers/mmc/host/cmdq_hci.h +1 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,7 @@ struct cmdq_host_ops { int (*reset)(struct mmc_host *mmc); int (*crypto_cfg)(struct mmc_host *mmc, struct mmc_request *mrq, u32 slot); void (*crypto_cfg_reset)(struct mmc_host *mmc, unsigned int slot); void (*post_cqe_halt)(struct mmc_host *mmc); }; Loading
drivers/mmc/host/sdhci.c +16 −0 Original line number Diff line number Diff line Loading @@ -3533,6 +3533,17 @@ static int sdhci_cmdq_crypto_cfg(struct mmc_host *mmc, return sdhci_crypto_cfg(host, mrq, slot); } static void sdhci_cmdq_crypto_cfg_reset(struct mmc_host *mmc, unsigned int slot) { struct sdhci_host *host = mmc_priv(mmc); if (!host->is_crypto_en) return; if (host->ops->crypto_cfg_reset) host->ops->crypto_cfg_reset(host, slot); } static void sdhci_cmdq_post_cqe_halt(struct mmc_host *mmc) { struct sdhci_host *host = mmc_priv(mmc); Loading Loading @@ -3583,6 +3594,10 @@ static int sdhci_cmdq_crypto_cfg(struct mmc_host *mmc, return 0; } static void sdhci_cmdq_crypto_cfg_reset(struct mmc_host *mmc, unsigned int slot) { } static void sdhci_cmdq_post_cqe_halt(struct mmc_host *mmc) { } Loading @@ -3596,6 +3611,7 @@ static const struct cmdq_host_ops sdhci_cmdq_ops = { .clear_set_dumpregs = sdhci_cmdq_clear_set_dumpregs, .enhanced_strobe_mask = sdhci_enhanced_strobe_mask, .crypto_cfg = sdhci_cmdq_crypto_cfg, .crypto_cfg_reset = sdhci_cmdq_crypto_cfg_reset, .post_cqe_halt = sdhci_cmdq_post_cqe_halt, }; Loading
drivers/mmc/host/sdhci.h +1 −0 Original line number Diff line number Diff line Loading @@ -308,6 +308,7 @@ struct sdhci_ops { int (*crypto_engine_cfg)(struct sdhci_host *host, struct mmc_request *mrq, u32 slot); int (*crypto_engine_reset)(struct sdhci_host *host); void (*crypto_cfg_reset)(struct sdhci_host *host, unsigned int slot); void (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs); void (*hw_reset)(struct sdhci_host *host); void (*adma_workaround)(struct sdhci_host *host, u32 intmask); Loading