Esempio n. 1
0
static ssize_t dcm_state_store(struct kobject *kobj, struct kobj_attribute *attr,const char *buf, size_t n)
{
    char dcm_mode[20];

    dcm_ver("\n=============== DCM State ================\n");
    if (sscanf(buf, "%s", dcm_mode) == 1) {
        if (!strncmp(dcm_mode, "enable", 6)) {
            dcm_dbg("enable dcm\n");
            dcm_enable_all();
            dcm_ver("==========================================\n");
            return n;
        } else if (!strncmp(dcm_mode, "disable", 7)) {
            dcm_dbg("disable dcm\n");
            dcm_disable_all();
            dcm_ver("==========================================\n");
            return n;
        } else {
            dcm_err("bad argument!! argument should be \"enable\" or \"disable\"\n");
            dcm_ver("==========================================\n");
        }
    } else {
        dcm_err("bad argument!!\n");
        dcm_ver("==========================================\n");
    }
    
    return -EINVAL;
}
Esempio n. 2
0
/*
 * mt65xx_mon_deinit: De-initialize the monitor.
 * Return 0.
 */
int mt65xx_mon_deinit(void)
{
  //  extern void dcm_enable_all(void);

    BM_DeInit();
    
/*
    if (mt6577_mon_log_buff) {
        vfree(mt6577_mon_log_buff);

        mt6577_mon_log_buff = 0;
    }
*/

    // enable system DCM
    dcm_enable_all();

    return 0;
}
Esempio n. 3
0
void mt6577_dcm_init(void)
{
    int ret = 0;
#ifdef CONFIG_LOCAL_TIMERS
    GPT_CONFIG gpt_config = {
        .num = WAKEUP_GPT,
        .mode = GPT_ONE_SHOT,
        .clkSrc = GPT_CLK_SRC_SYS,
        .clkDiv = 0x0000,
        .bIrqEnable = true,
        .u4CompareL = 0x0,
    };
#endif
    
    dcm_info("[%s]: enable HW dcm\n", __func__);
    dcm_enable_all();

    chip_ver = (get_chip_eco_ver() == CHIP_E1) ? 1 : 0; 
    memset(dpidle_block_mask, 0, MT65XX_CLOCK_CATEGORY_COUNT * sizeof(unsigned int));

#ifdef CONFIG_LOCAL_TIMERS
    GPT_Init(gpt_config.num, NULL);
    if (GPT_Config(gpt_config) == FALSE) {
        dcm_err("[%s]: config GPT%d failed\n", __func__, gpt_config.num);
    }
#endif
    
    ret = sysfs_create_file(power_kobj, &dcm_state_attr.attr);
    ret = sysfs_create_file(power_kobj, &idle_state_attr.attr);
    ret = sysfs_create_file(power_kobj, &dpidle_state_attr.attr);

    if (ret) {
        dcm_err("[%s]: create sysfs failed\n", __func__);
    }
}

void mt6577_dcm_exit(void)
{
    dcm_info("[%s]: disable HW dcm\n", __func__);
    dcm_disable_all();
}