ddr带宽申请接口通过pm qos驱动实现:
1、包含头文件,linux/pm_qos.h
2、主要接口
void pm_qos_add_request(struct pm_qos_request *req, int pm_qos_class, s32 value)
添加一个qos请求,req内存空间由用户提供,pm_qos_class设置为枚举类型PM_QOS_MEMORY_THROUGHPUT,value为ddr带宽初始值(MB/s);
void pm_qos_update_request(struct pm_qos_request *req, s32 new_value)
更新一个qos请求,req是用户在添加一个qos请求后持有的,new_value为ddr带宽新值(MB/s);
int pm_qos_request(int pm_qos_class)
获取当前qos请求类型的值,即当前的总带宽值,pm_qos_class为枚举类型PM_QOS_MEMORY_THROUGHPUT;
void pm_qos_remove_request(struct pm_qos_request *req)
释放一个qos请求,req是用户在添加一个qos请求后持有的;释放后当前用户对qos类型的请求值归零。
详情见:
kernel/Documentation/power/pm_qos_interface.txt
示例代码:
kernel/drivers/devfreq/xxx_ddr_devfreq_debugfs.c