{"push_id":769220898,"size":54,"distinct_size":8,"ref":"refs/heads/LF.BR.1.2.3","head":"ed88ee1ccbf8707d994640972bdb43eaca5e2cd7","before":"1e58b767dc1eaed3784130e79299218304ba577d","commits":[{"sha":"7a3c10ed154f0bb32129797d35dbab8d28e27408","author":{"email":"5b4b1dac11545209f4fede89ca9c51dbbdd38b05@codeaurora.org","name":"Ananda Kishore"},"message":"input: sensors: add support to schedule data poll on idle CPU\n\nIn order to boost sensor data polling/processing performance\nfor accel,gyro and mag sensors on various platforms, use kthread\ninstead of workqueue and set_wake_up_idle() for high frequency\nstreaming usecase. Set max fifo count to zero for accel to disable\ndefault FIFO use.\n\nChange-Id: I63905856b28098dd02375854f451c1687c560156\nSigned-off-by: Kiran Raparthy <krapar@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/7a3c10ed154f0bb32129797d35dbab8d28e27408"},{"sha":"ccbbfc95aa82bf292a4990cda1cfce592edd0378","author":{"email":"e98e52dd3c6c9ef83e2bc9c8a1300c68656fbdca@codeaurora.org","name":"Hanumath Prasad"},"message":"cpufreq: interactive:call __cpufreq_driver_target() for cur frequency\n\nThere is a race window as explained below when governor tries to change\nthe cpu frequency and some other thread (say thermal mitigation) try to\nchange the policy limits simultaneously.\n\nspeedchange task (ThreadA)\t\t\tThread B(say Thermal)\n\ncpufreq_interactive_speedchange_task()\n\t|\n__cpufreq_driver_target()\n\t|\nset_cpu_freq()\n\t|\n\t\t\t\t\t\tcpufreq_update_policy()\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\tmodified policy_max\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\tcheck policy->curr against\n\t\t\t\t\t\tnew policy limits,return\n\t\t\t\t\t\twithout calling\n\t\t\t\t\t\t__cpufreq_driver_target as\n\t\t\t\t\t\tpolicy->curr(which is not\n\t\t\t\t\t\tupdated by ThreadA) is still\n\t\t\t\t\t\twithin the new policy limits.\n\n\t|\nsent CPUFREQ_POSTCHANGE notification\n\t|\nupdated policy->cur which happens to be higher than policy->max\n\nThis results the current frequency being higher than the policy->max and\nviolating the policy limits. This causes thermal impact and in turn high\npower consumption. So Fix this by calling __cpufreq_driver_target() always\nwith current frequency and leave it to __cpufreq_driver_target() to\nguarantee there is no race condition when multiple threads are changing\nfrequencies.\n\nChange-Id: I9136e9245677e8fc90a628d3099aca8d63d3677c\nSigned-off-by: Hanumath Prasad <hpprasad@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/ccbbfc95aa82bf292a4990cda1cfce592edd0378"},{"sha":"d7fdac68e4e2ad86f41c0544838b5bc93ffa7a50","author":{"email":"bb05168246ed1a6b66d0e7b1ffb0c5e3707764ca@codeaurora.org","name":"Junjie Wu"},"message":"cpufreq: Check current frequency in device driver\n\n__cpufreq_driver_target() checks if policy->cur is same as target_freq\nwithout holding any lock. This function is used by governor to\ndirectly set CPU frequency. Governor calling this function can't hold\nany CPUfreq framework locks due to deadlock possibility.\n\nHowever, this results in a race condition where one thread could see\na stale policy->cur while another thread is changing CPU frequency.\n\nThread A: Governor calls __cpufreq_driver_target(), starts increasing\nfrequency but hasn't sent out CPUFREQ_POSTCHANGE notification yet.\nThread B: Some other driver (could be thermal mitigation) starts\nlimiting frequency using cpufreq_update_policy(). Every limits are\napplied to policy->min/max and final policy->max happens to be same as\npolicy->cur. __cpufreq_driver_target() simply returns 0.\nThread A: Governor finish scaling and now policy->cur violates\npolicy->max and could last forever until next CPU frequency scaling\nhappens.\n\nShifting the responsibility of checking policy->cur and target_freq\nto CPUfreq device driver would resolve the race as long as the device\ndriver holds a common mutex.\n\nChange-Id: I6f943228e793a4a4300c58b3ae0143e09ed01d7d\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/d7fdac68e4e2ad86f41c0544838b5bc93ffa7a50"},{"sha":"2068037b3ed2e6d9dd132c92c5ce1efc0599a716","author":{"email":"543f7bc0375b7b1be61acfe826508c3b830be0e1@codeaurora.org","name":"Kiran Raparthy"},"message":"input: sensors: read 16-bit output data in continuous mode\n\nRead 16-bit output data in continuous measurement mode to use\nthe same sensitivity adjustments as single measurement mode.\nThis allows the driver to report proper magnitude to userspace\nin continuous measurement mode.\n\nChange-Id: I3f3fa46e98f703bae9328df7bdb2150cb843bba8\nSigned-off-by: Kiran Raparthy <krapar@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/2068037b3ed2e6d9dd132c92c5ce1efc0599a716"},{"sha":"1189d0bf3b7fcc958a562fa886e44f4c12abeac8","author":{"email":"b3a421eb3be2513778326c2c11b780145dbdf96b@codeaurora.org","name":"sbhayare"},"message":"msm: mdss: Avoid setting esd_rdy to false in panel off\n\nWhen the phone is in suspend mode, the panel turns ON and\nOFF whenever it receives the message for ambient display.\nThere are cases whenever the Power Key is pressed, it skips\nthe Panel ON because already the state of the Panel is ON\nand the esd_rdy didn't turn to true, which was set to false\nduring Panel OFF event. This result in ESD being disabled\nsometimes when we coming out of ambient mode. Hence set\nesd_rdy to true once during bootup and never set this back\nto false.\n\nChange-Id: I0cb4d7f02e0018125b6886651be99e93551f3301\nSigned-off-by: Jayant Shekhar <jshekhar@codeaurora.org>\nSigned-off-by: sbhayare <sachin.bhayare@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/1189d0bf3b7fcc958a562fa886e44f4c12abeac8"},{"sha":"abafb627f7746b21cdc3112cf08b104227e475ac","author":{"email":"dab7abee4f53bc661969a892f5a85d2ffd5ff8a6@codeaurora.org","name":"Hardik Kantilal Patel"},"message":"wcnss: Avoid crash during shutdown in SSR\n\nWlan driver should not read registers from wcnss or\ntry to communicate with the chip when it is undergoing\na subsystem-restart. this flag will be used by the wlan\ndriver to protect register access and other prohibited\noperations.\n\nCRs-Fixed: 834133\nChange-Id: I638ee9e6cbc25da77ca931191718cec3a7aa87d6\nSigned-off-by: Hardik Kantilal Patel <hkpatel@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/abafb627f7746b21cdc3112cf08b104227e475ac"},{"sha":"0d3aa393a18555b141ece633ecaf1c023fee5608","author":{"email":"6281febcb9b391946db067feb94e2d77275e8f9a@codeaurora.org","name":"Chunmei Cai"},"message":"power: qpnp-linear-charger: Add collapsible charger support\n\nVIN_MIN comparator is used to prevent USBIN voltage level dropping too\nlow to cause a charging failure. It is also used for charger removal\ndetection and requires VIN_MIN being set to 100mV above VDD_MAX. This\ncauses the low charging efficiency and high power dissipation when\ncharging a low battery at constant charging stage.\n\nThe collapsible charger feature is introduced to improve this. It\ndisables VIN_MIN comparator and allows USBIN collapse to a voltage\nlittle above to VBAT during constant charging. The CHG_GONE comparator\nis used to detect the charger removal when VBUS voltage drop below VBAT\n+ 80mV.\n\nCRs-Fixed: 816844\nChange-Id: I98c8f8d1d85232e898796ab0e67228334a5ac0b4\nSigned-off-by: Chunmei Cai <ccai@codeaurora.org>\nSigned-off-by: Fenglin Wu <fenglinw@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/0d3aa393a18555b141ece633ecaf1c023fee5608"},{"sha":"4a8e41662c957c1f148dfc4f21c7563f615dab9b","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"msm: mdss: Avoid setting esd_rdy to false in panel off\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/4a8e41662c957c1f148dfc4f21c7563f615dab9b"},{"sha":"63e813ab0be634a7ec161a269b4f3ef48b7d9887","author":{"email":"e76f90aac953df90a8e403358655857e1140b37b@codeaurora.org","name":"Manish Poddar"},"message":"msm: camera: add different mutex lock for QBUF/DQBUF\n\nIn liveshot case stream on is in progress and\nit take ~90msecs on 8952. DQBUF/QBUF is stuck\nat mutex lock as same mutex lock is used\nin msm_post_event,it leads to framedrop.\nTo avoid this create a separate mutex lock for\nQBUF/DQBUF.\n\nChange-Id: I86348313416500c9f75d9920df100d24c7d9fa5b\nSigned-off-by: Manish Poddar <mpoddar@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/63e813ab0be634a7ec161a269b4f3ef48b7d9887"},{"sha":"2b7912d190d86093de87813dc17a5b39b89908a0","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"power: qpnp-linear-charger: Add collapsible charger support\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/2b7912d190d86093de87813dc17a5b39b89908a0"},{"sha":"9353eac242da06debe3b0f04d69249a78cf56540","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"input: sensors: read 16-bit output data in continuous mode\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/9353eac242da06debe3b0f04d69249a78cf56540"},{"sha":"389262eeb6adc4a549aa2ed0ab83ba350e0680a9","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"input: sensors: add support to schedule data poll on idle CPU\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/389262eeb6adc4a549aa2ed0ab83ba350e0680a9"},{"sha":"dfd073714a7becbe0ae2093ea967de9d0107109e","author":{"email":"10ca01928ecbddddae40eb5e4584d22e36ed4967@codeaurora.org","name":"Krishna Chaitanya Devarakonda"},"message":"msm: mdss: store cont splash flag in fb var struct\n\nStore the continuous splash state in the fb var struct,\nso that recovery/other processes can check if the continuous\nsplash is enabled or not before performing a blank/unblank.\n\nChange-Id: Ieee9a7450c607666c2888df95ed3fc6a0ad286ae\nSigned-off-by: Krishna Chaitanya Devarakonda <kdevarak@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/dfd073714a7becbe0ae2093ea967de9d0107109e"},{"sha":"977043f3aa1aa05aecc0657028d45e1c3cd2b5d4","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"msm: camera: add different mutex lock for QBUF/DQBUF\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/977043f3aa1aa05aecc0657028d45e1c3cd2b5d4"},{"sha":"0ed6ce952bf41c97eec6e0819aa7297069d801f2","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"cpufreq: interactive:call __cpufreq_driver_target() for cur frequency\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/0ed6ce952bf41c97eec6e0819aa7297069d801f2"},{"sha":"25e0a58b0355d5433415ccde01fa9408697fe87d","author":{"email":"d3c7bae90ce2477533ec852edf38b65198016249@localhost","name":"Linux Build Service Account"},"message":"Merge \"cpufreq: Check current frequency in device driver\"","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/25e0a58b0355d5433415ccde01fa9408697fe87d"},{"sha":"264ea6f07599d05fafc505ae2d3e35dbba2a9dfc","author":{"email":"e4a0348e45a0df0ba79f6b06c66df8ae7aca44a4@codeaurora.org","name":"Pavankumar Kondeti"},"message":"Revert \"sched: add preference for prev_cpu in HMP task placement\"\n\nRevert the commit f8d8317025aa88b506c309c23eba2b5dfc01b44d temporarily\nto apply the select_best_cpu() optimizations patches from a different\nbranch on which this commit is not available.\n\nChange-Id: I2405733ad15c682fd1447200a62990e6bb089b33\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/264ea6f07599d05fafc505ae2d3e35dbba2a9dfc"},{"sha":"06c945fa8822d2b2b3be6987cbf04f67350846cd","author":{"email":"d316c38b3127db4a8d19f369f757269f344aa63c@codeaurora.org","name":"Syed Rameez Mustafa"},"message":"sched: Optimize select_best_cpu() to reduce execution time\n\nselect_best_cpu() is a crucial wakeup routine that determines the\ntime taken by the scheduler to wake up a task. Optimize this routine\nto get higher performance. The following changes have been made as\npart of the optimization listed in order of how they built on top of\none another:\n\n* Several routines called by select_best_cpu() recalculate task load\n  and CPU load even though these are already known quantities. For\n  example mostly_idle_cpu_sync() calculates CPU load; task_will_fit()\n  calculates task load before spill_threshold_crossed() recalculates\n  both. Remove these redundant calculations by moving the task load\n  and CPU load computations to the select_best_cpu() 'for' loop and\n  passing to any functions that need the information.\n\n* Rewrite best_small_task_cpu() to avoid the existing two pass\n  approach. The two pass approach was only in place to find the\n  minimum power cluster for small task placement. This information\n  can easily be established by looking at runqueue capacities. The\n  cluster with not the highest capacity constitutes the minimum power\n  cluster. A special CPU mask is called the mpc required to ensure\n  undue side effects on SMP systems. Also terminate the function\n  early if the previous CPU is found to be mostly_idle.\n\n* Reorganize code to ensure that no unnecessary computations or\n  variable assignments are done. For example there is no need to\n  compute CPU load if that information does not end up getting used\n  in any iteration of the 'for' loop.\n\n* The tick logic for EA migrations unnecessarily checks for the power\n  of all CPUs only for skip_cpu() to throw away the result later.\n  Ensure that for EA we only check CPUs within the same cluster\n  and avoid running select_best_cpu() whenever possible.\n\nCRs-fixed: 849655\nChange-Id: I4e722912fcf3fe4e365a826d4d92a4dd45c05ef3\nSigned-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>\n[joonwoop@codeaurora.org: ported from msm-3.10. Kept tracers.]\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\n[pkondeti@codeaurora.org: resolved minor conflict.]\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/06c945fa8822d2b2b3be6987cbf04f67350846cd"},{"sha":"cec9a36d1a4ed285f68c69d9432b8d9ae478e4a8","author":{"email":"d316c38b3127db4a8d19f369f757269f344aa63c@codeaurora.org","name":"Syed Rameez Mustafa"},"message":"sched: Optimize the select_best_cpu() \"for\" loop\n\nselect_best_cpu() is agnostic of the hardware topology. This means that\ncertain functions such as task_will_fit() and skip_cpu() are run\nunnecessarily for every CPU in a cluster whereas they need to run only\nonce per cluster. Reduce the execution time of select_best_cpu() by\nensuring these functions run only once per cluster. The frequency domain\nmask is used to identify CPUs that fall in the same cluster.\n\nCRs-fixed: 849655\nChange-Id: Id24208710a0fc6321e24d9a773f00be9312b75de\nSigned-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>\n[joonwoop@codeaurora.org: ported from msm-3.10]\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/cec9a36d1a4ed285f68c69d9432b8d9ae478e4a8"},{"sha":"e048eb1abf842fb807edac47764f95fe070ba6b9","author":{"email":"c2ec5539c4473ab294a95eac689618c01a8f4c1f@codeaurora.org","name":"Joonwoo Park"},"message":"sched: look for least busy and fallback CPU only when it's needed\n\nFunction best_small_task_cpu() has bias on mostly idle CPUs and shallow\ncstate CPUs.  Thus chance of needing to find the least busy or the least\npower cost fallback CPU is quite rare typically.  At present, however,\nthe function finds those two CPUs always unnecessarily for most of time.\n\nOptimize the function by amending it to look for the least busy CPU and\nthe least power cost fallback CPU only when those are in need.  This change\nis solely for optimization and doesn't make functional changes.\n\nCRs-fixed: 849655\nChange-Id: I5eca11436e85b448142a7a7644f422c71eb25e8e\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/Rashed97/caf-kernel-msm-3.10/commits/e048eb1abf842fb807edac47764f95fe070ba6b9"}]}