コード例 #1
0
static void tele_mntn_acpu_ddr_freqlink(unsigned int qos_id, unsigned int new_freq)
{
    PWC_TELE_MNTN_ACPU_DFS_DDR_QOS_STRU *qos = NULL;
    PWC_TELE_MNTN_ACPU_DFS_DDR_QOSINFO_STRU * info = NULL;

    if(!g_pPwcAcpuLog)
        return;

    qos = &(g_pPwcAcpuLog->dfsDdr.qos);
    info = &(qos->info);
    info->cmd_id = (short)PM_QOS_UPDATE_REQ;
    info->qos_id = (short)qos_id;
    if(current) {
        info->pid = current->pid;
        if(current->parent)
            info->ppid = current->parent->pid;
    }

    info->tag_val  = new_freq;
    info->new_freq = new_freq;
    qos->qosSliceTime = omTimerGet();
    (void)tele_mntn_write_log(TELE_MNTN_QOS_DDR_ACPU, sizeof(PWC_TELE_MNTN_ACPU_DFS_BOOST_STRU), (void *)qos);
}
コード例 #2
0
static void tele_mntn_ddrfreq_setrate(struct devfreq *devfreq, unsigned int new_freq)
{
    ACORE_TELE_MNTN_DFS_DDR_QOS_STRU *qos = NULL;
    ACORE_TELE_MNTN_DFS_DDR_QOSINFO_STRU * info = NULL;
    struct devfreq_pm_qos_data *data = devfreq->data;

    if(!p_acore_tele_mntn)
        return;

    qos = &(p_acore_tele_mntn->dfsDdr.qos);
    info = &(qos->info);
    info->qos_id = (short)data->pm_qos_class;
    if(current) {
        info->pid = current->pid;
        if(current->parent)
            info->ppid = current->parent->pid;
    }

    info->new_freq = new_freq;
    info->min_freq = (unsigned int)devfreq->min_freq;
    info->max_freq = (unsigned int)devfreq->max_freq;
    qos->qosSliceTime = get_slice_time();
    (void)tele_mntn_write_log(TELE_MNTN_QOS_DDR_ACPU, sizeof(ACORE_TELE_MNTN_DFS_DDR_QOS_STRU), (void *)qos);
}