/* * aed process daemon and other command line may access me * concurrently */ static long monitor_hang_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int ret = 0; if (cmd == AEEIOCTL_WDT_KICK_POWERKEY) { if ((int)arg == WDT_SETBY_WMS_DISABLE_PWK_MONITOR) { /* pwk_start_monitor=0; */ /* wdt_kick_status=0; */ /* hwt_kick_times=0; */ } else if ((int)arg == WDT_SETBY_WMS_ENABLE_PWK_MONITOR) { /* pwk_start_monitor=1; */ /* wdt_kick_status=0; */ /* hwt_kick_times=0; */ } else if ((int)arg < 0xf) { aee_kernel_wdt_kick_Powkey_api("Powerkey ioctl",(int)arg); } LOGE("AEEIOCTL_WDT_Kick_Powerkey ( 0x%x)\n", (int)arg); return ret; } if (cmd == AEEIOCTL_RT_MON_Kick) { #ifdef CONFIG_MTK_AEE_POWERKEY_HANG_DETECT LOGE("AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg); aee_kernel_RT_Monitor_api((int)arg); #endif return ret; } return ret; }
/* * aed process daemon and other command line may access me * concurrently */ static long monitor_hang_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int ret = 0; static long long monitor_status; if (cmd == AEEIOCTL_WDT_KICK_POWERKEY) { #ifdef CONFIG_MTK_AEE_POWERKEY_HANG_DETECT if ((int)arg == WDT_SETBY_WMS_DISABLE_PWK_MONITOR) { /* pwk_start_monitor=0; */ /* wdt_kick_status=0; */ /* hwt_kick_times=0; */ } else if ((int)arg == WDT_SETBY_WMS_ENABLE_PWK_MONITOR) { /* pwk_start_monitor=1; */ /* wdt_kick_status=0; */ /* hwt_kick_times=0; */ } else if ((int)arg < 0xf) { aee_kernel_wdt_kick_Powkey_api("Powerkey ioctl", (int)arg); } LOGE("AEEIOCTL_WDT_Kick_Powerkey ( 0x%x)\n", (int)arg); #endif return ret; } /* QHQ RT Monitor */ if (cmd == AEEIOCTL_RT_MON_Kick) { LOGE("AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg); aee_kernel_RT_Monitor_api((int)arg); return ret; } // LOGE("AEEIOCTL_RT_MON_Kick unknown cmd :(%d)( %d)\n",(int)cmd, (int)arg); // LOGE("AEEIOCTL_RT_MON_Kick known cmd :(%d)( %d)\n",(int)AEEIOCTL_WDT_KICK_POWERKEY, (int)AEEIOCTL_RT_MON_Kick); /* QHQ RT Monitor end */ if (cmd == AEEIOCTL_SET_SF_STATE) { if (copy_from_user(&monitor_status, (void __user *)arg, sizeof(long long))) ret = -1; LOGE("AEE_MONITOR_SET[status]: 0x%llx", monitor_status); return ret; } else if (cmd == AEEIOCTL_GET_SF_STATE) { if (copy_to_user((void __user *)arg, &monitor_status, sizeof(long long))) ret = -1; return ret; } return -1; }
/* * aed process daemon and other command line may access me * concurrently */ static long monitor_hang_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int ret = 0; if(cmd == AEEIOCTL_WDT_KICK_POWERKEY) { #ifdef CONFIG_MTK_AEE_POWERKEY_HANG_DETECT if((int)arg==WDT_SETBY_WMS_DISABLE_PWK_MONITOR) { //pwk_start_monitor=0; //wdt_kick_status=0; //hwt_kick_times=0; } else if((int)arg==WDT_SETBY_WMS_ENABLE_PWK_MONITOR) { //pwk_start_monitor=1; //wdt_kick_status=0; //hwt_kick_times=0; } else if( (int)arg < 0xf ) { aee_kernel_wdt_kick_Powkey_api("Powerkey ioctl",(int)arg); } xlog_printk(ANDROID_LOG_DEBUG, AEK_LOG_TAG, "AEEIOCTL_WDT_Kick_Powerkey ( 0x%x)\n", (int)arg); #endif return ret; } // QHQ RT Monitor if(cmd == AEEIOCTL_RT_MON_Kick) { xlog_printk(ANDROID_LOG_DEBUG, AEK_LOG_TAG, "AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg); aee_kernel_RT_Monitor_api((int)arg); return ret; } // QHQ RT Monitor end return ret; }
/****************************************************************************** * hang detect File operations *****************************************************************************/ static int monitor_hang_open(struct inode *inode, struct file *filp) { LOGD("%s\n", __func__); aee_kernel_RT_Monitor_api (600) ; return 0; }