/******************************************************************************/
/***用户接口:****/
/******************************************************************************/
kernel/include/soc/qcom/subsystem_restart.h
kernel/drivers/soc/qcom/subsystem_restart.c
int subsystem_restart(const char *name){
}
static struct device_attribute subsys_attrs[] = {
__ATTR_RO(name),
__ATTR_RO(state),
__ATTR_RO(crash_count),
__ATTR(restart_level, 0644, restart_level_show, restart_level_store),
__ATTR(firmware_name, 0644, firmware_name_show, firmware_name_store),
__ATTR(system_debug, 0644, system_debug_show, system_debug_store),
__ATTR_NULL,
};
static struct bus_type subsys_bus_type = {
.name = "msm_subsys",
.dev_attrs = subsys_attrs,
};
static int __init subsys_restart_init(void)
{
int ret;
ssr_wq = alloc_workqueue("ssr_wq", WQ_CPU_INTENSIVE, 0);
BUG_ON(!ssr_wq);
ret = bus_register(&subsys_bus_type);
}
/*sysfs 接口*/
root@gemini:/sys/bus/msm_subsys/devices # ls -al
lrwxrwxrwx root root 1970-02-23 04:16 subsys0 -> ../../../devices/soc/ce0000.qcom,venus/subsys0
lrwxrwxrwx root root 1970-02-23 04:16 subsys1 -> ../../../devices/soc/soc:qcom,kgsl-hyp/subsys1
lrwxrwxrwx root root 1970-02-23 04:16 subsys2 -> ../../../devices/soc/soc:qcom,cnss/subsys2
lrwxrwxrwx root root 1970-02-23 04:16 subsys3 -> ../../../devices/soc/9300000.qcom,lpass/subsys3
lrwxrwxrwx root root 1970-02-23 04:16 subsys4 -> ../../../devices/soc/1c00000.qcom,ssc/subsys4
lrwxrwxrwx root root 1970-02-23 04:16 subsys5 -> ../../../devices/soc/2080000.qcom,mss/subsys5
/*dev 接口*/
crw-r----- system system 243, 2 1970-02-23 04:16 subsys_AR6320
crw-r----- system system 243, 1 1970-02-23 04:16 subsys_a530_zap
crw-r----- system system 243, 3 1970-02-23 04:16 subsys_adsp
crw-r----- system system 243, 5 1970-02-23 04:16 subsys_modem
crw-r----- system system 243, 4 1970-02-23 04:16 subsys_slpi
crw-r----- system system 243, 0 1970-02-23 04:16 subsys_venus
crw-r----- system system 10, 66 1970-02-24 03:47 ramdump_AR6320
crw-r----- system system 10, 88 1970-02-24 03:47 ramdump_a530_zap
crw-r----- system system 10, 55 1970-02-24 03:47 ramdump_adsp
crw-r----- system system 10, 47 1970-02-24 03:47 ramdump_adsp_rh
crw-r----- system system 10, 34 1970-02-24 03:47 ramdump_cpe
crw-r----- system system 10, 53 1970-02-24 03:47 ramdump_modem
crw-r----- system system 10, 54 1970-02-24 03:47 ramdump_slpi
crw-r----- system system 10, 48 1970-02-24 03:47 ramdump_smem
crw-r----- system system 10, 89 1970-02-24 03:47 ramdump_venus
/*debugfs 接口*/
root@gemini:/sys/kernel/debug/msm_subsys # ls -al
-rw-r--r-- root root 0 1970-01-01 08:00 AR6320
-rw-r--r-- root root 0 1970-01-01 08:00 a530_zap
-rw-r--r-- root root 0 1970-01-01 08:00 adsp
-rw-r--r-- root root 0 1970-01-01 08:00 modem
-rw-r--r-- root root 0 1970-01-01 08:00 slpi
-rw-r--r-- root root 0 1970-01-01 08:00 venus
/***用户接口:****/
/******************************************************************************/
kernel/include/soc/qcom/subsystem_restart.h
kernel/drivers/soc/qcom/subsystem_restart.c
int subsystem_restart(const char *name){
}
static struct device_attribute subsys_attrs[] = {
__ATTR_RO(name),
__ATTR_RO(state),
__ATTR_RO(crash_count),
__ATTR(restart_level, 0644, restart_level_show, restart_level_store),
__ATTR(firmware_name, 0644, firmware_name_show, firmware_name_store),
__ATTR(system_debug, 0644, system_debug_show, system_debug_store),
__ATTR_NULL,
};
static struct bus_type subsys_bus_type = {
.name = "msm_subsys",
.dev_attrs = subsys_attrs,
};
static int __init subsys_restart_init(void)
{
int ret;
ssr_wq = alloc_workqueue("ssr_wq", WQ_CPU_INTENSIVE, 0);
BUG_ON(!ssr_wq);
ret = bus_register(&subsys_bus_type);
}
/*sysfs 接口*/
root@gemini:/sys/bus/msm_subsys/devices # ls -al
lrwxrwxrwx root root 1970-02-23 04:16 subsys0 -> ../../../devices/soc/ce0000.qcom,venus/subsys0
lrwxrwxrwx root root 1970-02-23 04:16 subsys1 -> ../../../devices/soc/soc:qcom,kgsl-hyp/subsys1
lrwxrwxrwx root root 1970-02-23 04:16 subsys2 -> ../../../devices/soc/soc:qcom,cnss/subsys2
lrwxrwxrwx root root 1970-02-23 04:16 subsys3 -> ../../../devices/soc/9300000.qcom,lpass/subsys3
lrwxrwxrwx root root 1970-02-23 04:16 subsys4 -> ../../../devices/soc/1c00000.qcom,ssc/subsys4
lrwxrwxrwx root root 1970-02-23 04:16 subsys5 -> ../../../devices/soc/2080000.qcom,mss/subsys5
/*dev 接口*/
crw-r----- system system 243, 2 1970-02-23 04:16 subsys_AR6320
crw-r----- system system 243, 1 1970-02-23 04:16 subsys_a530_zap
crw-r----- system system 243, 3 1970-02-23 04:16 subsys_adsp
crw-r----- system system 243, 5 1970-02-23 04:16 subsys_modem
crw-r----- system system 243, 4 1970-02-23 04:16 subsys_slpi
crw-r----- system system 243, 0 1970-02-23 04:16 subsys_venus
crw-r----- system system 10, 66 1970-02-24 03:47 ramdump_AR6320
crw-r----- system system 10, 88 1970-02-24 03:47 ramdump_a530_zap
crw-r----- system system 10, 55 1970-02-24 03:47 ramdump_adsp
crw-r----- system system 10, 47 1970-02-24 03:47 ramdump_adsp_rh
crw-r----- system system 10, 34 1970-02-24 03:47 ramdump_cpe
crw-r----- system system 10, 53 1970-02-24 03:47 ramdump_modem
crw-r----- system system 10, 54 1970-02-24 03:47 ramdump_slpi
crw-r----- system system 10, 48 1970-02-24 03:47 ramdump_smem
crw-r----- system system 10, 89 1970-02-24 03:47 ramdump_venus
/*debugfs 接口*/
root@gemini:/sys/kernel/debug/msm_subsys # ls -al
-rw-r--r-- root root 0 1970-01-01 08:00 AR6320
-rw-r--r-- root root 0 1970-01-01 08:00 a530_zap
-rw-r--r-- root root 0 1970-01-01 08:00 adsp
-rw-r--r-- root root 0 1970-01-01 08:00 modem
-rw-r--r-- root root 0 1970-01-01 08:00 slpi
-rw-r--r-- root root 0 1970-01-01 08:00 venus