mhi_state
mhi_state(RESET, "RESET") \
mhi_state(READY, "READY") \
mhi_state(M0, "M0") \
mhi_state(M1, "M1") \
mhi_state(M2, "M2") \
mhi_state(M3, "M3") \
mhi_state(M3_FAST, "M3_FAST") \
mhi_state(BHI, "BHI") \
static inline const char *mhi_state_str(enum mhi_state state)
enum mhi_state state;
void mhi_ep_mmio_get_mhi_state(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state *state,
int mhi_ep_send_state_change_event(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state state);
bool mhi_ep_check_mhi_state(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state cur_mhi_state,
enum mhi_state mhi_state);
int mhi_ep_set_mhi_state(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state mhi_state);
int mhi_ep_send_state_change_event(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state state)
enum mhi_state cur_state;
cur_state = mhi_cntrl->mhi_state;
mhi_cntrl->mhi_state = MHI_STATE_RESET;
enum mhi_state state;
enum mhi_state state)
enum mhi_state state;
void mhi_ep_mmio_get_mhi_state(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state *state,
enum mhi_state cur_mhi_state,
enum mhi_state mhi_state)
enum mhi_state mhi_state;
mhi_state = mhi_ep_mmio_masked_read(mhi_cntrl, EP_MHISTATUS, MHISTATUS_MHISTATE_MASK);
if (mhi_state != MHI_STATE_RESET || is_ready) {
if (mhi_state == MHI_STATE_SYS_ERR)
if (mhi_state == MHI_STATE_READY)
if (mhi_state == MHI_STATE_M0)
if (mhi_state == MHI_STATE_M3)
int mhi_ep_set_mhi_state(struct mhi_ep_cntrl *mhi_cntrl, enum mhi_state mhi_state)
if (!mhi_ep_check_mhi_state(mhi_cntrl, mhi_cntrl->mhi_state, mhi_state)) {
mhi_state_str(mhi_state),
mhi_state_str(mhi_cntrl->mhi_state));
if (mhi_state == MHI_STATE_M1 || mhi_state == MHI_STATE_M2) {
dev_err(dev, "MHI state (%s) not supported\n", mhi_state_str(mhi_state));
mhi_ep_mmio_masked_write(mhi_cntrl, EP_MHISTATUS, MHISTATUS_MHISTATE_MASK, mhi_state);
mhi_cntrl->mhi_state = mhi_state;
if (mhi_state == MHI_STATE_READY)
if (mhi_state == MHI_STATE_SYS_ERR)
enum mhi_state old_state;
old_state = mhi_cntrl->mhi_state;
enum mhi_state state;
enum mhi_state state;
enum mhi_state mhi_get_mhi_state(struct mhi_controller *mhi_cntrl)
enum mhi_state state;
enum mhi_state new_state;
enum mhi_state state;
void mhi_set_mhi_state(struct mhi_controller *mhi_cntrl, enum mhi_state state)
enum mhi_state cur_state = mhi_get_mhi_state(mhi_cntrl);
static char *ath12k_mhi_state_to_str(enum ath12k_mhi_state mhi_state)
switch (mhi_state) {
enum ath12k_mhi_state mhi_state)
switch (mhi_state) {
set_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state);
clear_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state);
set_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state);
clear_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state);
clear_bit(ATH12K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state);
clear_bit(ATH12K_MHI_RDDM_DONE, &ab_pci->mhi_state);
set_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state);
clear_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state);
set_bit(ATH12K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state);
set_bit(ATH12K_MHI_RDDM_DONE, &ab_pci->mhi_state);
ath12k_err(ab, "unhandled mhi state (%d)\n", mhi_state);
enum ath12k_mhi_state mhi_state)
switch (mhi_state) {
if (!test_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state))
if (test_bit(ATH12K_MHI_INIT, &ab_pci->mhi_state) &&
!test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state))
if (test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state))
if (test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state) &&
!test_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state))
if (test_bit(ATH12K_MHI_SUSPEND, &ab_pci->mhi_state))
if (test_bit(ATH12K_MHI_POWER_ON, &ab_pci->mhi_state) &&
!test_bit(ATH12K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state))
ath12k_mhi_state_to_str(mhi_state), mhi_state);
ath12k_mhi_state_to_str(mhi_state), mhi_state,
ab_pci->mhi_state);
enum ath12k_mhi_state mhi_state)
ret = ath12k_mhi_check_state_bit(ab_pci, mhi_state);
ath12k_mhi_state_to_str(mhi_state), mhi_state);
switch (mhi_state) {
ath12k_err(ab, "unhandled MHI state (%d)\n", mhi_state);
ath12k_mhi_set_state_bit(ab_pci, mhi_state);
ath12k_mhi_state_to_str(mhi_state), mhi_state);
unsigned long mhi_state;
enum mhi_state dev_state;
enum mhi_state state);
enum mhi_state mhi_get_mhi_state(struct mhi_controller *mhi_cntrl);
enum mhi_state mhi_state;
enum mhi_state state;
enum mhi_state state;