{"push_id":797299571,"size":7,"distinct_size":7,"ref":"refs/heads/cm-12.1","head":"8e35b53613586c690925e65ab290d4060846da2a","before":"04b8c93f0006780c0ccc4d0a9dad50bb03b92a15","commits":[{"sha":"9b289ede40027f8c7e3b2adc5e42d0a3de1272b4","author":{"email":"ce25c3cee4cc6c4c8acfc1680b3ed89cf644dba3@codeaurora.org","name":"Saravana Kannan"},"message":"PM / devfreq: Generic cpufreq governor\n\nThis devfreq governor is a generic implementation that can scale any\ndevfreq device based on the current CPU frequency of all ONLINE CPUs. It\nallows for specifying CPU freq to devfreq mapping for specific devices.\nWhen such a mapping is not present, it defaults to scaling the device\nfrequency in proportion to the CPU frequency.\n\nChange-Id: I8d3b1fea26572defbad2ce8b6cf87930caa25ca6\nSigned-off-by: Saravana Kannan <skannan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/9b289ede40027f8c7e3b2adc5e42d0a3de1272b4"},{"sha":"e6dce0babbc0a4b8790e57e6486d524e2e69ab6a","author":{"email":"ce25c3cee4cc6c4c8acfc1680b3ed89cf644dba3@codeaurora.org","name":"Saravana Kannan"},"message":"PM / devfreq: Fix warning in governor_cpufreq\n\nThe cpu_khz variable would be uninitialized when debug messages are printed\nfor OFFLINE CPUs. Fix that by initializing it to 0.\n\nChange-Id: Ic707c13b1048625c0ecc0b0057af2f84f17462f6\nSigned-off-by: Saravana Kannan <skannan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/e6dce0babbc0a4b8790e57e6486d524e2e69ab6a"},{"sha":"766be76b84dc0d5f927b2a9d6c9c54c583097eb1","author":{"email":"bb05168246ed1a6b66d0e7b1ffb0c5e3707764ca@codeaurora.org","name":"Junjie Wu"},"message":"PM / devfreq: governor_cpufreq: Output device name in debug print\n\nGovernor_cpufreq can scale multiple devfreq devices together. Output\ndevfreq device name in debug print to distinguish requests made\nfor each device.\n\nChange-Id: I2f6856b66aae87dcb28830e318d20779233308de\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/766be76b84dc0d5f927b2a9d6c9c54c583097eb1"},{"sha":"acc37cbaf16e9ae336364720337d62ad1a0f1914","author":{"email":"ce25c3cee4cc6c4c8acfc1680b3ed89cf644dba3@codeaurora.org","name":"Saravana Kannan"},"message":"PM / devfreq: Add timeout feature for cpufreq governor\n\nSome devfreq devices might need their frequency to be set only for a short\ntime after the CPU frequency changes.\n\nFor such devices, add a \"timeout\" tunable that determines for how many\nmilliseconds the governor sets the device frequency based on the CPU\nfrequency. After \"timeout\" milliseconds from the CPU frequency change, the\ngovernor will set the device frequency back to its minimum value.\n\nChange-Id: I17fc972c0b03fab781864ce735013710c2df4647\nSigned-off-by: Saravana Kannan <skannan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/acc37cbaf16e9ae336364720337d62ad1a0f1914"},{"sha":"9305ba120c5f469badaeff3b764f197132e7cd87","author":{"email":"577f74ec3f2c8a155237d5ad42a70103d17f8313@codeaurora.org","name":"Vikram Mulukutla"},"message":"PM / devfreq: Workaround cpufreq REMOVE_POLICY versus hotplug lock race\n\nIt is not possible to ensure the synchronization of REMOVE_POLICY\nnotifications with CPU hotplug lock; {get,put}_online_cpus ensures\nthat hotplug cannot happen, but it is still possible to receive\nREMOVE_POLICY notifications asynchronously while checking for online\nCPUs within a {get,put}_online_cpus critical section.\n\nAccount for this by detecting that we haven't yet setup a local state\nwhen the REMOVE_POLICY notification comes in.\n\nChange-Id: I3cb750f3984ebe078154734444660675e8d8b5bc\nSigned-off-by: Vikram Mulukutla <markivx@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/9305ba120c5f469badaeff3b764f197132e7cd87"},{"sha":"e6021d0d4386857feae5436118ee9c6663cb934f","author":{"email":"bb05168246ed1a6b66d0e7b1ffb0c5e3707764ca@codeaurora.org","name":"Junjie Wu"},"message":"PM / devfreq: Fix error handling in governor_cpufreq\n\nput_online_cpus() is not called if an error occurs during cpufreq\nnotification registration. Fix the error path by calling it properly.\n\nChange-Id: Ia2e6b2debb2db4b39f8fcfcd1ee873538b44d405\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/e6021d0d4386857feae5436118ee9c6663cb934f"},{"sha":"8e35b53613586c690925e65ab290d4060846da2a","author":{"email":"bb05168246ed1a6b66d0e7b1ffb0c5e3707764ca@codeaurora.org","name":"Junjie Wu"},"message":"PM / devfreq: governor_cpufreq: Rewrite locking to avoid deadlocks\n\nA devfreq governor store in parallel with a cpu freq update can cause\ndeadlock as shown below.\n\nAssume current devfreq governor is cpufreq, and user tries to change\nto some other governor.\n\nWrite to sysfs store_governor   | cpufreq driver updating cpu freq\n------------------------------- | -----------------------------------\necho bw_hwmon > governor        |\n                                | takes rcu_read_lock and calls all\n                                | cpufreq transition callbacks for\n                                | PRECHANGE or POSTCHANGE\n                                |\nGOV_STOP on governor_cpufreq.   |\nunregister_cpufreq() accquires  |\nstate_lock mutex.               |\n                                | try to accquire same state_lock in\n                                | cpufreq_trans_notifier(). Blocked.\nunregister from cpufreq         |\ntransition notifier and wait for|\nall rcu_readers to finish.      |\n                            Deadlock\n\nA similar deadlock can happen with governor change and policy notifier\ncallbacks.\n\nThe state_lock currently protects multiple unrelated critical\nsections: registering/unregistering of cpufreq notifiers, read/writing\nthe device list, and tracking the cpu states and updating device\nfrequencies. There is no need for register/unregister of the cpufreq\nnotifiers to be mutually excluded against the other critical sections\nusing the same lock.\n\nSplit state_lock into two locks to protect the register/unregister of\ncpufreq notifiers from the rest of the critical sections.\n\nChange-Id: Id06d326748a5cb0c84c4787da5d0910f44eb5c3c\nSigned-off-by: Pan Fang <fangpan@codeaurora.org>\nSigned-off-by: Arun KS <arunks@codeaurora.org>\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSuggested-by: Saravana Kannan <skannan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/victormlourenco/android_kernel_lge_msm8974/commits/8e35b53613586c690925e65ab290d4060846da2a"}]}