static int debug_read_stat(char *buf, int max) { char *msg; int i = 0; msg = smem_find(ID_DIAG_ERR_MSG, SZ_DIAG_ERR_MSG); if (raw_smsm_get_state(SMSM_STATE_MODEM) & SMSM_RESET) i += scnprintf(buf + i, max - i, "smsm: ARM9 HAS CRASHED\n"); i += scnprintf(buf + i, max - i, "smsm: a9: %08x a11: %08x\n", raw_smsm_get_state(SMSM_STATE_MODEM), raw_smsm_get_state(SMSM_STATE_APPS)); #ifdef CONFIG_ARCH_MSM_SCORPION i += scnprintf(buf + i, max - i, "smsm dem: apps: %08x modem: %08x " "qdsp6: %08x power: %08x time: %08x\n", raw_smsm_get_state(SMSM_STATE_APPS_DEM), raw_smsm_get_state(SMSM_STATE_MODEM_DEM), raw_smsm_get_state(SMSM_STATE_QDSP6_DEM), raw_smsm_get_state(SMSM_STATE_POWER_MASTER_DEM), raw_smsm_get_state(SMSM_STATE_TIME_MASTER_DEM)); #endif if (msg) { msg[SZ_DIAG_ERR_MSG - 1] = 0; i += scnprintf(buf + i, max - i, "diag: '%s'\n", msg); } return i; }
static int debug_read_stat(char *buf, int max) { char *msg; int i = 0; msg = smem_find(ID_DIAG_ERR_MSG, SZ_DIAG_ERR_MSG); if (raw_smsm_get_state(SMSM_STATE_MODEM) & SMSM_RESET) i += scnprintf(buf + i, max - i, "smsm: ARM9 HAS CRASHED\n"); i += scnprintf(buf + i, max - i, "smsm: a9: %08x a11: %08x\n", raw_smsm_get_state(SMSM_STATE_MODEM), raw_smsm_get_state(SMSM_STATE_APPS)); #ifdef CONFIG_ARCH_MSM_SCORPION i += scnprintf(buf + i, max - i, "smsm dem: apps: %08x modem: %08x " "qdsp6: %08x power: %08x time: %08x\n", raw_smsm_get_state(SMSM_STATE_APPS_DEM), raw_smsm_get_state(SMSM_STATE_MODEM_DEM), raw_smsm_get_state(SMSM_STATE_QDSP6_DEM), raw_smsm_get_state(SMSM_STATE_POWER_MASTER_DEM), raw_smsm_get_state(SMSM_STATE_TIME_MASTER_DEM)); #endif if (msg) { msg[SZ_DIAG_ERR_MSG - 1] = 0; i += scnprintf(buf + i, max - i, "diag: '%s'\n", msg); } #if CONFIG_SMD_OFFSET_TCXO_STAT if (sleep_stat) { i += scnprintf(buf + i, max - i, "tcxo_time: 0x%x (%ds) tcxo_cnt: %d\n" "suspend_tcxo_time: 0x%x (%ds) suspend_tcxo_cnt: %d\n" "garbage_pkt_cnt: %d " "zone_based_reg_cnt: %d " "idle_hand_off_cnt: %d " "mo_2g_probe_cnt: %d " "mo_3g_probe_cnt: %d\n", sleep_stat->tcxo_time, sleep_stat->tcxo_time >> 15, sleep_stat->tcxo_cnt, sleep_stat->suspend_tcxo_time, sleep_stat->suspend_tcxo_time >> 15, sleep_stat->suspend_tcxo_cnt, sleep_stat->garbage_pkt_cnt, sleep_stat->zone_based_reg_cnt, sleep_stat->idle_hand_off_cnt, sleep_stat->mo_2g_probe_cnt, sleep_stat->mo_3g_probe_cnt); } #endif return i; }