zoukankan      html  css  js  c++  java
  • 高通信息汇总

    1. GPU相关,

    以8998为例, /sys/class/kgsl/kgsl-3d0,目录即为GPU相关,里面包括频点,cur_freq,  gpu_busy_percentage

    2. chage_full_design节点值的如何定义的,以pm630

    首先,power_supply 下的节点值都是通过fg_psy_get_property和fg_psy_set_property得到

    static int fg_psy_get_property(struct power_supply *psy,
                           enum power_supply_property psp,
                           union power_supply_propval *pval)
    {
    ...
    case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
            pval->intval = chip->cl.nom_cap_uah;
            break;
    ...
    }
     
    cl.nom_cap_uah是通过如下函数获得,
    static void profile_load_work(struct work_struct *work)
    {
    ...
    rc = fg_sram_read(chip, NOM_CAP_WORD, NOM_CAP_OFFSET, buf, 2,
                FG_IMA_DEFAULT);
        if (rc < 0) {
            pr_err("Error in reading %04x[%d] rc=%d ", NOM_CAP_WORD,
                NOM_CAP_OFFSET, rc);
        } else {
            pr_err("fg read nominal capacity from battery profile, buf[0] is %04x, buf[1] is %04x", buf[0], buf[1]);
            chip->cl.nom_cap_uah = (int)(buf[0] | buf[1] << 8) * 1000;
            rc = fg_load_learned_cap_from_sram(chip);
            if (rc < 0)
                pr_err("Error in loading capacity learning data, rc:%d ",
                    rc);
        }
    ...
    }
     
    由上可以得知,是通过battery profile获取该值,那么battery profile 在哪里定义呢?
    static void profile_load_work(struct work_struct *work)
    {
    ...
    rc = fg_get_batt_id(chip);
        if (rc < 0) {
            pr_err("Error in getting battery id, rc:%d ", rc);
            goto out;
        }

        rc = fg_get_batt_profile(chip);
        if (rc < 0) {
            pr_warn("profile for batt_id=%dKOhms not found..using OTP, rc:%d ",
                chip->batt_id_ohms / 1000, rc);
            goto out;
        }
    ...
    }
    由如上代码可以得知,是从qcom 的batterydata-***-id1.dtsi获得
    ,具体内容如下
    qcom,fg-profile-data = [
       66 1F B3 05
       78 0A 8B FC
       73 1D 57 07
       32 12 45 14
       38 18 1C 23
       7F 45 BD 52
       56 00 00 00
       0F 00 00 00
       00 00 16 C4
       78 C5 41 C3
       1B 00 08 00
       55 E2 B4 E4
       B1 FD 84 00
       D5 00 3E 12
       2D 05 19 3B
       16 06 09 20
       27 00 14 00
       EA 1F 44 05
       CC 0A F4 05
       51 1D A0 00
       C3 03 AC 15
       80 19 9F 22
       BE 45 9E 52
       56 00 00 00
       0E 00 00 00
       00 00 FB 07
       19 C3 B3 C4
       17 00 00 00
       23 EA B4 E4
       DF FD EC EB
       C6 C5 60 0A
       06 01 B2 12
       99 33 CC FF
       07 10 00 00
       9B 0A 66 46  //9B 0A 即为2715mah
       17 00 40 00
       1E 02 0A FA
       FF 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
       00 00 00 00
     ];
     
     
  • 相关阅读:
    BGP的MA网络、自动汇总、聚合
    [转载]CISCO配置HSRP
    BGP选路十种方法总结 用实验详细介绍(副实验拓扑)
    [win技巧] windows 7的上帝模式你用过吗?【相信你没用过!如此方便的的设置】
    CISCO BGP(EBGP/IBGP)基本配置小结以及如何防止BGP路由黑洞(附实验拓扑)
    执行外部程序
    C#编写COM组件
    在SQL Server 2005上遇到了先删除已运行维护计划后,再删除代理中由其产生的作业时,提示删除失败,如何处理?
    关于存储过程编写的一点总结(转)
    WCF:调用方未由服务器进行身份验证
  • 原文地址:https://www.cnblogs.com/rainey-forrest/p/10751631.html
Copyright © 2011-2022 走看看