Hello everyone, most of you should know me by now.
I've been talking to @fatboyslimerr and it seems he and a lot of people are having random reboots.
I've created this thread as a discussion place to make it easy to coordinate the issues.
Known So Far about Random Reboots:
-Not Kernel Related apparently
-Issues appear when it goes into sleep mode
-Issues are appearing with wcnss_wlan.0, power.0, and alarm failing to suspend
-Issues are only (supposedly) appearing on CM-Based ROMS
Please post as many logs as possible and report the combinations where it's appearing
Thanks, javelinanddart
@Tamlins @waver1967 @letsurock @kudykam @amh.online @Auross are some of the people I believe that also had this reboot issue running various CM-based ROMs.
fatboyslimerr said:
@Tamlins @waver1967 @letsurock @kudykam @amh.online @Auross are some of the people I believe that also had this reboot issue running various CM-based ROMs.
Click to expand...
Click to collapse
Hi,
Yes I have it.
(sorry for my poor english)
I had it @ the begening of CM12 but the problems seemed to be corrected in some of last versions of CM12 (but I also changed 2-3 times Gapps)
The problem came back with 12.1. (with Gapps 5.1)
I'm not a dev, It's juste a feeling but are we sure that the problem not coming from Gapps ? Someone tryed to test with no Gapps installed at all ? (I can't do it for the moment)
Hboot 2.16
S-OFF
Cache/Dalvik cache wipe only
Regards,
Tamlin
Tamlins said:
Hi,
Yes I have it.
(sorry for my poor english)
I had it @ the begening of CM12 but the problems seemed to be corrected in some of last versions of CM12 (but I also changed 2-3 times Gapps)
The problem came back with 12.1. (with Gapps 5.1)
I'm not a dev, It's juste a feeling but are we sure that the problem not coming from Gapps ? Someone tryed to test with no Gapps installed at all ? (I can't do it for the moment)
Hboot 2.16
S-OFF
Cache/Dalvik cache wipe only
Regards,
Tamlin
Click to expand...
Click to collapse
It's a ROM issue, not gapps or kernel
For me, it used to reboot when charging the phone. Now I am on Euphoria 5.1.1 24-05-15 build. I didn't have any reboot in this build.
letsurock said:
For me, it used to reboot when charging the phone. Now I am on Euphoria 5.1.1 24-05-15 build. I didn't any reboot in this build.
Click to expand...
Click to collapse
Exactly the same problem : reboot when fully battery charged ! I'm on cyanid L 5.1.1 ROM.
I will do some tests with the setting tomorrow and i tell you if i find something interesting.
letsurock said:
For me, it used to reboot when charging the phone. Now I am on Euphoria 5.1.1 24-05-15 build. I didn't any reboot in this build.
Click to expand...
Click to collapse
Auross said:
Exactly the same problem : reboot when fully battery charged ! I'm on cyanid L 5.1.1 ROM.
I will do some tests with the setting tomorrow and i tell you if i find something interesting.
Click to expand...
Click to collapse
As far as I know Euphoria is not CM based, so maybe that's it. I know Cyanide for sure is.
Thanks for the feedback and please do run tests!
BTW, I have emailed @intervigil about this
I've been using CM from version 11 to 12.1.
I've alway seen random reboots and I still see some (1 to 3 times a day). Each time, it' GPS/gyro related. I use location services a lot: Ingress, Ware, Google Maps, Google location tracking, apps needing GPS for other usages. Each time I could diagnose it, the last lines of the last_kmg were about the Panasonic gyro kernel driver. It both happen while the screen is off and on, but it occurs more often while unlocking and turning on the phone/screen.
Since 12.1, I have random reboots while the phone is charging. This is new, and I did not take the time to diagnose this one, it always happened while I'm in bed trying to sleep, I don't want to get up I think it can be reproduced easily, just make it charge, in less than 2 hours it should occur.
I got a reboot whilst device was sleeping, not charging on Euphoria from 1st May.
The last_kmsg is here https://drive.google.com/open?id=0B7gvN7Z3xFy2V05zQ2VuYkwzMUU&authuser=0
Do you know if we can find any logs on the system which could explain some reboots or another troubles ?
Thanks
I just had a reboot while the phone was screen off in my pocket. I had been using Ingress so it might have tried to access GPS data. It was a full reboot with vibration and white HTC statup screen. That's why I guess it's a kernel bug.
Several info:
HBOOT 2.16
CM 12.1 2015-05-06 unofficial nightly built by F-L-Y-E-R
Radio 1.20
ext4 FS
Here are the last lines of /proc/kmesg:
Code:
[18001.475382] wakeup wake lock: bam_dmux_wakelock
[18001.480113] PM: early resume of devices complete after 4.120 msecs
[18001.482310] [BATT][BMS] cc_uah = 72241uAh, raw->cc = 102858d, cc = 16942477 after subtracting 0
[18001.482341] [BATT][BMS] pm8921_bms_resume: BMS_TOLERANCES=0x2f
[18001.484722] [USB] OTG PM resume
[18001.485179] [GSNR] Gsensor enable
[18001.485179] [GSNR][BMA250] BMA_set_mode: mode = 0x00
[18001.488659] [COMP][AKM8975] akm8975_resume: (m, a, t, mv) = (0x0, 0x0, 0x0, 0x0)
[18001.488689] [GYRO][PANASONIC] Gyro sys on on:g_status=0 off_status=0
[18001.488720] [GYRO][PANASONIC] GyroB sys off on:g_status=0 off_status=0
[18001.488750] [FLT]TPS tps61310_resume:
[18001.493054] msm_fb_ext_resume: Turning on HPD circuitry
[18001.493298] PM: resume of devices complete after 13.123 msecs
[18001.496106] [BATT] htc_battery_complete: sr_time_period=32959 ms; total passing time=168592 ms.htc_batt_info.state=0x2, batt_temp=374, sensor0_temp=0 at 18000998147051 (2015-05-11 12:06:23.003784523 UTC)
[18001.712709] Restarting tasks ... done.
[18001.742527] PM: suspend exit 2015-05-11 12:06:23.250197422 UTC
[18001.747746] suspend: exit suspend, ret = 0 (2015-05-11 12:06:23.255412362 UTC)
[18001.957024] [COMP][AKM8975] AKECS_GetOpenStatus:
[18002.228381] [GYRO][PANASONIC] EWTZMU2_GetOpenStatus:
[18003.479350] PM: suspend entry 2015-05-11 12:06:24.986408282 UTC
[18003.516188] Freezing user space processes ...
[18003.526138] [GYRO][PANASONIC] EWTZMU2_GetOpenStatus:wait OK
[18003.534165] (elapsed 0.009 seconds) done.
[18003.537278] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[18003.545823] Suspending console(s) (use no_console_suspend to debug)
[18003.553972] [BATT] htc_battery_prepare: passing time:170652 ms, alarm will be triggered after 3430 sec.(suspend_highfreq_check_reason=0x0, htc_batt_info.state=0x6), batt_temp=374, sensor0_temp=0 at 18003055387229 (2015-05-11 12:06:25.060994183 UTC)
[18003.555620] msm_fb_ext_suspend: Turning off HPD circuitry
[18003.559130] [FLT]TPS tps61310_suspend:
[18003.559130] [FLT]TPS flashlight_turn_off
[18003.559741] [GYRO][PANASONIC] Gyro sys off on:g_status=0 off_status=1
[18003.559771] [GYRO][PANASONIC] GyroB sys off on:g_status=0 off_status=1
[18003.559771] [GSNR] Gsensor disable
[18003.559771] [GSNR][BMA250] BMA_set_mode: mode = 0x01
[18003.576344] [USB] OTG PM suspend
[18003.609367] [BATT][BMS] cc_uah = 72410uAh, raw->cc = 1030269, cc = 16974441 after subtracting 0
[18003.609367] [BATT][BMS] pm8921_bms_suspend: BMS_TOLERANCES=0x2f
[18003.610740] PM: suspend of devices complete after 55.360 msecs
[18003.611564] PM: late suspend of devices complete after 0.823 msecs
[18003.612999] PM: noirq suspend of devices complete after 1.403 msecs
[18003.612999] Disabling non-boot CPUs ...
[18003.613457] msm_pm_enter
[18003.613457] msm_pm_enter: power collapse
[18003.613457] msm_mpm_irqs_detectable: cannot monitor 000000,00000000,00000000,00000000,00000000,00000000,00020000,00000000,00000000,00000000,00000000,00000000,00000000,00000000
[18003.613457] msm_pm_enter: return
[18003.614891] PM: noirq resume of devices complete after 1.312 msecs
[18003.615715] wakeup wake lock: bam_dmux_wakelock
[18003.616753] PM: early resume of devices complete after 0.762 msecs
[18003.618706] [BATT][BMS] cc_uah = 72855uAh, raw->cc = 10499d7, cc = 17078743 after subtracting 0
[18003.618706] [BATT][BMS] pm8921_bms_resume: BMS_TOLERANCES=0x2f
[18003.620079] [USB] OTG PM resume
[18003.620202] [GSNR] Gsensor enable
[18003.620202] [GSNR][BMA250] BMA_set_mode: mode = 0x00
[18003.623864] [COMP][AKM8975] akm8975_resume: (m, a, t, mv) = (0x0, 0x0, 0x0, 0x0)
[18003.623864] [GYRO][PANASONIC] Gyro sys on on:g_status=0 off_status=0
[18003.623864] [GYRO][PANASONIC] GyroB sys off on:g_status=0 off_status=0
[18003.623894] [FLT]TPS tps61310_resume:
[18003.625848] msm_fb_ext_resume: Turning on HPD circuitry
[18003.626092] PM: resume of devices complete after 9.308 msecs
[18003.628900] [BATT] htc_battery_complete: sr_time_period=121949 ms; total passing time=292601 ms.htc_batt_info.state=0x2, batt_temp=355, sensor0_temp=0 at 18003130309446 (2015-05-11 12:08:27.003479085 UTC)
[18003.845656] Restarting tasks ... done.
[18003.866684] PM: suspend exit 2015-05-11 12:08:27.241231020 UTC
[18003.880388] suspend: exit suspend, ret = 0 (2015-05-11 12:08:27.254953790 UTC)
[18004.062350] [COMP][AKM8975] AKECS_GetOpenStatus:
[18004.352935] [GYRO][PANASONIC] EWTZMU2_GetOpenStatus:
COMP is for compass and GYRO for the gyroscope.
Would it be possible for someone to build a kernel without the gyro driver so that I can use it during a few days for testing? And maybe also another one without the compass driver ?
kdd998 said:
I just had a reboot while the phone was screen off in my pocket. I had been using Ingress so it might have tried to access GPS data. It was a full reboot with vibration and white HTC statup screen. That's why I guess it's a kernel bug.
Several info:
HBOOT 2.16
CM 12.1 2015-05-06 unofficial nightly built by F-L-Y-E-R
Radio 1.20
ext4 FS
Here are the last lines of /proc/kmesg:
Code:
[18001.475382] wakeup wake lock: bam_dmux_wakelock
[18001.480113] PM: early resume of devices complete after 4.120 msecs
[18001.482310] [BATT][BMS] cc_uah = 72241uAh, raw->cc = 102858d, cc = 16942477 after subtracting 0
[18001.482341] [BATT][BMS] pm8921_bms_resume: BMS_TOLERANCES=0x2f
[18001.484722] [USB] OTG PM resume
[18001.485179] [GSNR] Gsensor enable
[18001.485179] [GSNR][BMA250] BMA_set_mode: mode = 0x00
[18001.488659] [COMP][AKM8975] akm8975_resume: (m, a, t, mv) = (0x0, 0x0, 0x0, 0x0)
[18001.488689] [GYRO][PANASONIC] Gyro sys on on:g_status=0 off_status=0
[18001.488720] [GYRO][PANASONIC] GyroB sys off on:g_status=0 off_status=0
[18001.488750] [FLT]TPS tps61310_resume:
[18001.493054] msm_fb_ext_resume: Turning on HPD circuitry
[18001.493298] PM: resume of devices complete after 13.123 msecs
[18001.496106] [BATT] htc_battery_complete: sr_time_period=32959 ms; total passing time=168592 ms.htc_batt_info.state=0x2, batt_temp=374, sensor0_temp=0 at 18000998147051 (2015-05-11 12:06:23.003784523 UTC)
[18001.712709] Restarting tasks ... done.
[18001.742527] PM: suspend exit 2015-05-11 12:06:23.250197422 UTC
[18001.747746] suspend: exit suspend, ret = 0 (2015-05-11 12:06:23.255412362 UTC)
[18001.957024] [COMP][AKM8975] AKECS_GetOpenStatus:
[18002.228381] [GYRO][PANASONIC] EWTZMU2_GetOpenStatus:
[18003.479350] PM: suspend entry 2015-05-11 12:06:24.986408282 UTC
[18003.516188] Freezing user space processes ...
[18003.526138] [GYRO][PANASONIC] EWTZMU2_GetOpenStatus:wait OK
[18003.534165] (elapsed 0.009 seconds) done.
[18003.537278] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[18003.545823] Suspending console(s) (use no_console_suspend to debug)
[18003.553972] [BATT] htc_battery_prepare: passing time:170652 ms, alarm will be triggered after 3430 sec.(suspend_highfreq_check_reason=0x0, htc_batt_info.state=0x6), batt_temp=374, sensor0_temp=0 at 18003055387229 (2015-05-11 12:06:25.060994183 UTC)
[18003.555620] msm_fb_ext_suspend: Turning off HPD circuitry
[18003.559130] [FLT]TPS tps61310_suspend:
[18003.559130] [FLT]TPS flashlight_turn_off
[18003.559741] [GYRO][PANASONIC] Gyro sys off on:g_status=0 off_status=1
[18003.559771] [GYRO][PANASONIC] GyroB sys off on:g_status=0 off_status=1
[18003.559771] [GSNR] Gsensor disable
[18003.559771] [GSNR][BMA250] BMA_set_mode: mode = 0x01
[18003.576344] [USB] OTG PM suspend
[18003.609367] [BATT][BMS] cc_uah = 72410uAh, raw->cc = 1030269, cc = 16974441 after subtracting 0
[18003.609367] [BATT][BMS] pm8921_bms_suspend: BMS_TOLERANCES=0x2f
[18003.610740] PM: suspend of devices complete after 55.360 msecs
[18003.611564] PM: late suspend of devices complete after 0.823 msecs
[18003.612999] PM: noirq suspend of devices complete after 1.403 msecs
[18003.612999] Disabling non-boot CPUs ...
[18003.613457] msm_pm_enter
[18003.613457] msm_pm_enter: power collapse
[18003.613457] msm_mpm_irqs_detectable: cannot monitor 000000,00000000,00000000,00000000,00000000,00000000,00020000,00000000,00000000,00000000,00000000,00000000,00000000,00000000
[18003.613457] msm_pm_enter: return
[18003.614891] PM: noirq resume of devices complete after 1.312 msecs
[18003.615715] wakeup wake lock: bam_dmux_wakelock
[18003.616753] PM: early resume of devices complete after 0.762 msecs
[18003.618706] [BATT][BMS] cc_uah = 72855uAh, raw->cc = 10499d7, cc = 17078743 after subtracting 0
[18003.618706] [BATT][BMS] pm8921_bms_resume: BMS_TOLERANCES=0x2f
[18003.620079] [USB] OTG PM resume
[18003.620202] [GSNR] Gsensor enable
[18003.620202] [GSNR][BMA250] BMA_set_mode: mode = 0x00
[18003.623864] [COMP][AKM8975] akm8975_resume: (m, a, t, mv) = (0x0, 0x0, 0x0, 0x0)
[18003.623864] [GYRO][PANASONIC] Gyro sys on on:g_status=0 off_status=0
[18003.623864] [GYRO][PANASONIC] GyroB sys off on:g_status=0 off_status=0
[18003.623894] [FLT]TPS tps61310_resume:
[18003.625848] msm_fb_ext_resume: Turning on HPD circuitry
[18003.626092] PM: resume of devices complete after 9.308 msecs
[18003.628900] [BATT] htc_battery_complete: sr_time_period=121949 ms; total passing time=292601 ms.htc_batt_info.state=0x2, batt_temp=355, sensor0_temp=0 at 18003130309446 (2015-05-11 12:08:27.003479085 UTC)
[18003.845656] Restarting tasks ... done.
[18003.866684] PM: suspend exit 2015-05-11 12:08:27.241231020 UTC
[18003.880388] suspend: exit suspend, ret = 0 (2015-05-11 12:08:27.254953790 UTC)
[18004.062350] [COMP][AKM8975] AKECS_GetOpenStatus:
[18004.352935] [GYRO][PANASONIC] EWTZMU2_GetOpenStatus:
COMP is for compass and GYRO for the gyroscope.
Would it be possible for someone to build a kernel without the gyro driver so that I can use it during a few days for testing? And maybe also another one without the compass driver ?
Click to expand...
Click to collapse
@intervigil confirmed this is a known CM bug that the Compass/Gyro causes reboots on Ville
This is a separate issue from the ROM side stuff @fatboyslimerr
I'll add this issue to the OP though thanks for reminding me
I'm waiting for @fatboyslimerr to confirm is a minor modification I made might've fixed Compass
javelinanddart said:
@intervigil confirmed this is a known CM bug that the Compass/Gyro causes reboots on Ville
This is a separate issue from the ROM side stuff @fatboyslimerr
I'll add this issue to the OP though thanks for reminding me
I'm waiting for @fatboyslimerr to confirm is a minor modification I made might've fixed Compass
Click to expand...
Click to collapse
Good news then
kdd998 said:
Good news then
Click to expand...
Click to collapse
Not fixed unfortunetely
javelinanddart said:
@intervigil confirmed this is a known CM bug that the Compass/Gyro causes reboots on Ville
This is a separate issue from the ROM side stuff @fatboyslimerr
I'll add this issue to the OP though thanks for reminding me
I'm waiting for @fatboyslimerr to confirm is a minor modification I made might've fixed Compass
Click to expand...
Click to collapse
That is a bug haunting Ville for ages...since long time ago users are reporting reboots while using maps or similar apps (I had it too several times in the past but now I'm not using maps/nav so often)
Sent from nowhere over the air...
Rapier said:
That is a bug haunting Ville for ages...since long time ago users are reporting reboots while using maps or similar apps (I had it too several times in the past but now I'm not using maps/nav so often)
Sent from nowhere over the air...
Click to expand...
Click to collapse
Yeah I heard from @intervigil
It's mostly compass apps
I've used Google Maps with no issues.
Unfortunately that's not the only issue
Phone seems to be rebooting when in deep sleep mode
Yep, still having reboots during sleep. Google maps does work fine, device gets seriously hot but it works fine. 3rd party compass apps cause reboots after awhile.
fatboyslimerr said:
Yep, still having reboots during sleep. Google maps does work fine, device gets seriously hot but it works fine. 3rd party compass apps cause reboots after awhile.
Click to expand...
Click to collapse
Device getting seriously hot is thermald issue
Why I used showp's thermal in a nutshell: Never had my ville not feel cold to the touch
Not that I have ville anymore ofc....
Since 2 days, I've been using cm12.1 nightly from the 15th. Now back on hboot 2.15 and last officially pushed (for international region) radio by HTC: 1.11.
I discovered the quick toggle for the compass and disabled its usage (it must be relatively recent). So far: not one reboot related to GPS
I had 2 reboots while setting up all my apps but didn't take the opportunity to get a logcat or kmesg. It did not occur since.
kdd998 said:
Since 2 days, I've been using cm12.1 nightly from the 15th. Now back on hboot 2.15 and last officially pushed (for international region) radio by HTC: 1.11.
I discovered the quick toggle for the compass and disabled its usage (it must be relatively recent). So far: not one reboot related to GPS
I had 2 reboots while setting up all my apps but didn't take the opportunity to get a logcat or kmesg. It did not occur since.
Click to expand...
Click to collapse
Sweet!
IDK about the apps thing
Related
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Patches got merged to CM7
Will be included from nightly 27 onwards. Thread is about to be closed. Use nightly thread for further discussion if any.
Achievment earned: RIVER RUNS RED (write in red on first post of a thread with at least 50 pages)
Build #9 contains Kali's latest kernel plus the 2 patches from hrkfdn about the aic3254 dsp chip. no other tweaks involvled, since i like kali's fast and simple work.
get build #9 here - md5: cc9372655750994cddfd12460dcdcb8b
http://postkreative.eu/mad/mad-batfix-B9-signed.zip
http://uberfail.org/mad/mad-batfix-B9-signed.zip
mirrors by phunkycow - thanks a bunch!
just flash this .zip file from recovery. reflash it each time you installed a new nightly build. #6 and newer contains a cleanup-function to remove older deprecated files from system. reported to work with cm6
no workaround needed anymore with #9
Now that we seem to have reached the final version - thanks to you all and your feedback - without it, it would have been much harder to trace down all issues.
FAQ
Q: Where has the CHANGELOG gone?
A: Move to the top of 2nd post - just scroll down a bit.
Q: Do i need anthing else but the latest patch?
A: No. Except for a cm7 RC or nightly rom installed.
Q: Why do i need to reflash after a new nightly?
A: Because we cannot backup the boot image. So once you flash a nightly/RC, you also get its kernel.
Q: Whats this FM-Radio thing i read about?
A: One discussed way to solve the battery drain in cm7 nigthlies and future RC's would be to use hrkfdn's patches and disable all fm-radio support (not only the apk file, but also the libs and framework). This patch is bypassing disabling FM-Radio and still doing its job. Result of quiet some work.
Q: Will this patch work with other roms?
A: Sense based roms dont need it at all. Non sense roms could use the patch on their kernel, but its not sure if this kernel runs with other roms. You can either try it, or ask in your kernel thread to include the patches. But, this is not final/stable yet. Guranteed to work with CM7, reported to work with CM6.
Q: When will this be in CM7 nightlies?
A: When all issues are solved. It seems thats the case with #8 - so expect nightly integration soon.
Known Issues in #9
None yet.
Monitor Status of DSP Chip
get gscript light free from market
start it, menu -> add script
use "dmesg aic" as title
leave "Needs SU?" checked
write "dmesg | grep -i aic | grep -v suspend | grep -v resume | tail -n 25" into the lower command box and save
back in adw: menu -> add -> shortcuts -> GScript Lite -> dmesg aic
This results in one-click-to-check-homescreen-shortcut
Sample dmesg output
Code:
<6>[ 106.647766] aic3254_ioctl: index 13 for 40047313
<6>[ 106.647949] aic3254_set_config: table(0x40047313) index(13)
<6>[ 106.648071] aic3254_set_config: enable rx
<6>[ 106.648498] aic3254_config: size = 15
<6>[ 106.649475] aic3254_config: size = 11
<6>[ 122.602355] aic3254_ioctl: index 29 for 40047313
<6>[ 122.602508] aic3254_set_config: table(0x40047313) index(29)
<6>[ 122.602722] aic3254_config: size = 8
<6>[ 122.603973] aic3254_set_config: disable rx
<6>[ 122.604095] aic3254_powerdown: power off AIC3254
<6>[ 122.604217] aic3254_config: size = 32
at first, the dsp is enabled (enable rx) when i started a mp3 - then the dsp chip is powered off again when i stopped the playback. this power off should occur each time, you stop using sound playback or microphone.
requested feedback:
are there situations, when power off does not work? when you for example have to invoke the old "voice dial" workaround to make poweroff appear again?
Closing comments
build #9 should be the final version. if no more issues arise in the next 48 hours, i will integrate it into cm7 nightlies.
in case you wanna use #5 again, i made a copy of the old opening post below this post, including downloads and instructions.
happy battery life
mad
changelog
#9: remove AicBootFix.apk from app-drawer and list of applications. its secret now!
#8: added final(?) AicBootFix.apk, removed old bootfix, removed suspend/resume messages, added hopes this is the final version without issues
#7: reverted the latest patch of hrkfdn on behalf of himself. this kernel now only contains the first and second spi_aic3254.c patches.
#6: switched to hrkfdn's patches - added aicbootfix - looking forward to keep fm enabled.
#5: no need to use workaround anymore - modified power daemon and kernel driver take care of it. just flash .zip file once - will add itself to cm's auto backup facility.
#4: stoped logcat spam. opened an own thread, since cm7-ace-nightly started beeing the wrong place now.
#3: addind missing wifi module of #2
#2: added kernel and status - decreased ioctl time from 60s to 20s
#1: initial release
archive of old bat fix / method - build #5 - do not use unless you got good reason
This thread/patch aims to fix the battery drain all non-sense ace roms currently have. As soon as this is tested and working for everyone without issues, it will be merged into cm7 and probably also to other roms.
update 2011/03/11: sorry for being away two days. was unforseen. whats the status? hrkfdn started developing a own patch to the aic driver. by now, it seems much better than my solution. it still got an issue with fm radio on boot - but once that is figured out, that patch will be superior to my solution and probably make its way to nightly. until then, have fun with #5 - but dont expect further development here.
This patch contains a kernel, which is based on kali's cm7 kernel. in fact, its absolutly the same, just the driver for the AIC3254 dsp chip is changed.
get build #5 here - md5: f7c7b01a47266b26b8a01f2fc853cfbe
http://www.filesonic.com/file/178617251/mad-#5-aic3254pd_signed.zip
phunkycow's mirrors: http://postkreative.eu/mad/mad-5-aic3254pd_signed.zip / http://uberfail.org/mad/mad-5-aic3254pd_signed.zip - thanks phunky!
old work around after boot not needed anymore. just flash and smile.
to get the current power status:
Code:
[[email protected] xbin]$ adb shell aic3254pd status
Power status of aic3254 chip: OFF
same in terminal emulator on phone:
Code:
localhost / # aic3254pd status
Power status of aic3254 chip: OFF
this is a typical "adb logcat | grep -i aic":
Code:
[ 340.841369] aic3254_set_config: enable tx
[ 340.841766] aic3254_config: size = 12
[ 349.698486] aic3254_powerdown: power off AIC3254
[ 349.698638] aic3254_config: size = 32
[ 381.205322] aic3254_ioctl: Query for AIC3254_POWERSTATUS returned 0 (OFF)
[ 498.071563] aic3254_ioctl: Query for AIC3254_POWERSTATUS returned 0 (OFF)
this is the desired output - since OFF means less battery drain. if you only see ON but never OFF (even though no apps using speaker/microphone), leave feedback.
note: unmodified kernel cannot keep track of power status and init status. flash on non official cm7 roms on your own risk
measurements with battery monitor widget showed, for cm7 the battery drain drops from 11-15mA to 1-5mA to the level, sense roms in standby reach.
regards
mad
I don't have a mirror but I'll seed this until you update: torrent.
Thanks a lot, this made me try CM7
EDIT: I see you are updating but, anyway - the torrent is #4.
#5 might be the last - working on sending the stuff google voice search sends automatic on startup
need feedback: anyone notices, auto-power-down doesnt work anymore after it worked once?
do you need to start voice search again to get power down working?
I'm on cm7, latest nightly. flashed latest version battery fix however even after using voice search, terminal always shows the aic3254 chip as on?
Sent from my Desire HD using Tapatalk
Good on U!
Sent from my DHD Gingerbread
mad-murdock said:
#5 might be the last - working on sending the stuff google voice search sends automatic on startup
need feedback: anyone notices, auto-power-down doesnt work anymore after it worked once?
do you need to start voice search again to get power down working?
Click to expand...
Click to collapse
Noticed. Activated back on some time later.
Hey thanks so much for the patch !
However, when i try to enter command in terminal emulator, i have access denied ???
Do you know why ???
But when i tap dmesg | grep AIC3254, i have this after voice search activation :
Result:
<6>[ 366.089080] aic3254_powerdown: power off AIC3254
<6>[ 426.296417] aic3254_powerdown: power off AIC3254
<6>[ 486.500854] aic3254_powerdown: power off AIC3254
<6>[ 546.708404] aic3254_powerdown: power off AIC3254
<6>[ 606.913177] aic3254_powerdown: power off AIC3254
Cheers
Type in su, enter. Then type in the aic3254 status code.
Sent from my Desire HD using Tapatalk
alexmason14 said:
Type in su, enter. Then type in the aic3254 status code.
Sent from my Desire HD using Tapatalk
Click to expand...
Click to collapse
Oh thanks a lot
Sent from my Desire HD using XDA Premium App
I can replicate the autoswitching on of aic3254pd by playing music through headphones using the android music player..
I don t understand how to apply this patch sorry .... Just flash via CWM 3.0.0.6 and restart ?
sonydesouza said:
Hey thanks so much for the patch !
However, when i try to enter command in terminal emulator, i have access denied ???
Do you know why ???
But when i tap dmesg | grep AIC3254, i have this after voice search activation :
Result:
<6>[ 366.089080] aic3254_powerdown: power off AIC3254
<6>[ 426.296417] aic3254_powerdown: power off AIC3254
<6>[ 486.500854] aic3254_powerdown: power off AIC3254
<6>[ 546.708404] aic3254_powerdown: power off AIC3254
<6>[ 606.913177] aic3254_powerdown: power off AIC3254
Cheers
Click to expand...
Click to collapse
this is what you want to see! dsp chip powers itself down when unused. when you hear a sound, you should see another power off short after.
better do the aic3254pd status command described above
I don't have google voice installed, so I activate power off with built-in voice dialer. Works perfect for me.
Sent from my Desire HD using XDA Apppt
Great work, thanks! Here is some info from my testing, hope it's useful.
I installed mad-#4-aic3254pd_signed.zip from recovery, rebooted then waited
a while without doing anything with the phone (no power button, no touch).
Here is what I got:
/cygdrive/c/xxx: adb shell aic3254pd status
Power status of aic3254 chip: ON
/cygdrive/c/xxx: adb shell dmesg | grep aic3254_
<6>[ 5.092376] spi_aic3254_init
<6>[ 5.092590] spi_aic3254_probe
<6>[ 9.520355] aic3254_ioctl: parameters(64, 1024, 806041a0)
<6>[ 9.521087] aic3254_config: size = 23
<6>[ 9.524627] aic3254_config: size = 1
<6>[ 9.524963] aic3254_ioctl: update table(64,1024) successfully
<6>[ 9.526031] aic3254_ioctl: parameters(64, 1024, 806341a8)
<6>[ 9.526733] aic3254_ioctl: update table(64,1024) successfully
<6>[ 10.349945] aic3254_ioctl: parameters(24, 16384, 806641b4)
<6>[ 10.351898] aic3254_ioctl: update table(24,16384) successfully
<6>[ 10.370605] aic3254_ioctl: index 23 for 40047321
<6>[ 10.370697] aic3254_set_config: table(0x40047321) index(23)
<6>[ 10.370910] aic3254_set_config: miniDSP command len = 32
<6>[ 10.371002] aic3254_set_config: rx mode 29, tx mode 29
<6>[ 10.371124] aic3254_config: size = 32
<6>[ 10.372253] aic3254_set_config: configure minidsp done
<6>[ 10.372406] aic3254_ioctl: index 15 for 40047312
<6>[ 10.372619] aic3254_set_config: table(0x40047312) index(15)
<6>[ 10.372711] aic3254_set_config: enable tx
<6>[ 10.373138] aic3254_config: size = 23
<6>[ 10.373626] aic3254_config: size = 20
<6>[ 470.774963] aic3254_ioctl: Query for AIC3254_POWERSTATUS returned 1 (ON)
After this I used Google voice and then the power button to turn off the screen:
/cygdrive/c/xxxb: adb shell aic3254pd status
Power status of aic3254 chip: OFF
/cygdrive/c/xxx: adb shell dmesg | grep aic3254_
...
<6>[ 470.774963] aic3254_ioctl: Query for AIC3254_POWERSTATUS returned 1 (ON)
<6>[ 608.652496] aic3254_ioctl: index 1 for 40047321
<6>[ 608.652709] aic3254_set_config: table(0x40047321) index(1)
<6>[ 608.652801] aic3254_set_config: miniDSP command len = 32
<6>[ 608.653015] aic3254_set_config: rx mode 29, tx mode 15
<6>[ 608.653106] aic3254_config: size = 32
<6>[ 608.658111] aic3254_config: size = 23
<6>[ 608.659820] aic3254_config: size = 20
<6>[ 608.660278] aic3254_set_config: configure minidsp done
<6>[ 608.660614] aic3254_ioctl: index 29 for 40047312
<6>[ 608.660705] aic3254_set_config: table(0x40047312) index(29)
<6>[ 608.660919] aic3254_set_config: enable tx
<6>[ 608.661315] aic3254_config: size = 12
<6>[ 608.733917] aic3254_ioctl: index 23 for 40047321
<6>[ 608.734008] aic3254_set_config: table(0x40047321) index(23)
<6>[ 608.734222] aic3254_set_config: miniDSP command len = 32
<6>[ 608.734313] aic3254_set_config: rx mode 29, tx mode 29
<6>[ 608.734436] aic3254_config: size = 32
<6>[ 608.737457] aic3254_set_config: configure minidsp done
<6>[ 608.737670] aic3254_ioctl: index 15 for 40047312
<6>[ 608.737792] aic3254_set_config: table(0x40047312) index(15)
<6>[ 608.737976] aic3254_set_config: enable tx
<6>[ 608.738372] aic3254_config: size = 23
<6>[ 608.738922] aic3254_config: size = 20
<6>[ 614.000122] aic3254_ioctl: index 13 for 40047313
<6>[ 614.000396] aic3254_set_config: table(0x40047313) index(13)
<6>[ 614.000549] aic3254_set_config: enable rx
<6>[ 614.001068] aic3254_config: size = 15
<6>[ 614.001892] aic3254_config: size = 11
<6>[ 616.998382] aic3254_ioctl: index 1 for 40047321
<6>[ 616.998565] aic3254_set_config: table(0x40047321) index(1)
<6>[ 616.998687] aic3254_set_config: miniDSP command len = 32
<6>[ 616.998931] aic3254_set_config: rx mode 13, tx mode 15
<6>[ 616.999359] aic3254_config: size = 32
<6>[ 617.001770] aic3254_config: size = 15
<6>[ 617.006561] aic3254_config: size = 11
<6>[ 617.011535] aic3254_config: size = 23
<6>[ 617.013336] aic3254_config: size = 20
<6>[ 617.059783] aic3254_set_config: configure minidsp done
<6>[ 617.059906] aic3254_ioctl: index 29 for 40047312
<6>[ 617.059936] aic3254_set_config: table(0x40047312) index(29)
<6>[ 617.059936] aic3254_set_config: enable tx
<6>[ 617.059967] aic3254_config: size = 12
<6>[ 617.269744] aic3254_ioctl: index 29 for 40047313
<6>[ 617.269744] aic3254_set_config: table(0x40047313) index(29)
<6>[ 617.269744] aic3254_set_config: enable rx
<6>[ 617.269744] aic3254_config: size = 8
<6>[ 627.686737] aic3254_powerdown: power off AIC3254
<6>[ 627.686859] aic3254_config: size = 32
<3>[ 627.794860] aic3254_config: 3254 power down procedure ,flag 0x24=0x00(0x88)
<6>[ 1173.502197] aic3254_ioctl: Query for AIC3254_POWERSTATUS returned 0 (OFF)
After google voice search and chipset off:
# logcat | grep -i aic
I/AudioHardwareMSM7X30( 1206): aic3254_configure: sound effect (Original)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 1)
I/AudioHardwareMSM7X30( 1206): aic3254_configure: sound effect (Original)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 1)
I/AudioHardwareMSM7X30( 1206): aic3254_configure: sound effect (Recording)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 1, 1)
I/AudioHardwareMSM7X30( 1206): aic3254: change tx mode to 15
I/AudioHardwareMSM7X30( 1206): aic3254_configure: sound effect (Recording)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 1, 1)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 1, 0)
I/AudioHardwareMSM7X30( 1206): aic3254: change rx mode to 13
E/HTC Acoustic( 1206): cannot open codec aic3254 device -1
I/AudioHardwareMSM7X30( 1206): aic3254_configure: sound effect (Recording)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 0)
E/AudioHardwareMSM7X30( 1206): cannot open codec aic3254 device -1
I/AudioHardwareMSM7X30( 1206): aic3254_configure: sound effect (Original)
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 0)
I/AudioHardwareMSM7X30( 1206): aic3254: change tx mode to 29
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 1)
I/AudioHardwareMSM7X30( 1206): aic3254: change rx mode to 29
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 0)
I/AudioHardwareMSM7X30( 1206): aic3254: change rx mode to 13
I/AudioHardwareMSM7X30( 1206): do_aic3254_control (1, 0, 1)
I/AudioHardwareMSM7X30( 1206): aic3254: change rx mode to 29
Sent from my Desire HD using Tapatalk
No complaint here, just reporting so others know.
I flashed CM7 RC2, but it was still necessary to flash mad-#4-aic3254pd_signed.zip again after that and use Google voice to enable the power off of the aic3254.
Can someone explain in easy dummy guide style how to turn off voice after patching this fix. Thanks
Sent from my Desire HD using XDA App
Chezbel said:
No complaint here, just reporting so others know.
I flashed CM7 RC2, but it was still necessary to flash mad-#4-aic3254pd_signed.zip again after that and use Google voice to enable the power off of the aic3254.
Click to expand...
Click to collapse
FYI, things work the same as above for #14
shah_jee said:
Can someone explain in easy dummy guide style how to turn off voice after patching this fix. Thanks
Click to expand...
Click to collapse
I'm assuming that you used Google search and then clicked the microphone. When you are done speaking it should just turn off. If that doesn't help then can you provide more info about what you did and what problem you see.
I noticed some time ago that every few days or few weeks the Android 2.2 restarts on Optimus T. I searched and found lots of complaints (seems like a problem with Android in general?) but no solution. I wrote a Python script to try to track down this problem, and kept it running in SL4A:
Code:
import android
droid = android.Android()
import os, time
while (1):
print os.system("ps >/sdcard/ps.log; date > /sdcard/date.log; dmesg > /sdcard/dmesg.log")
time.sleep(1)
I ran it and after it restarted, I checked the files to see what it was doing right before crashing and rebooting. Among the dmesg I found a lot of repeating messages, one section looked a bit suspicious, where freezing tasks failed:
Code:
<4>[318167.964203] [Accelerometer] accel_power_on() : Power On
<4>[318167.972857] Restarting tasks ... done.
<6>[318167.999805] suspend: exit suspend, ret = -16 (2012-05-19 00:57:54.801113344 UTC)
<6>[318169.465067] PM: Syncing filesystems ... done.
<4>[318169.659290] Freezing user space processes ...
<3>[318169.670165] Freezing of tasks aborted after 0.01 seconds (699 tasks refusing to freeze):
<4>[318169.670712]
<4>[318169.670723] Restarting tasks ... done.
<6>[318169.691207] suspend: exit suspend, ret = -16 (2012-05-19 00:57:56.492516690 UTC)
<6>[318169.909787] PM: Syncing filesystems ... done.
<4>[318170.179340] Freezing user space processes ... (elapsed 0.01 seconds) done.
<4>[318170.190343] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<4>[318170.190720] Suspending console(s) (use no_console_suspend to debug)
<4>[318170.191713] [Accelerometer] accel_power_off() : Power Off
<4>[318170.191745] [Ecompass] ecom_power_set() : Power Off
<7>[318170.192597] msmrtc_tod_proc_result: 05/19/2012 00:57:56 (05)
<7>[318170.193368] msmrtc_tod_proc_result: 05/19/2012 00:57:56 (05)
<7>[318170.193928] msmrtc_tod_proc_result: 05/19/2012 00:57:56 (05)
<7>[318170.194657] msmrtc_tod_proc_result: 05/19/2012 00:57:56 (05)
<6>[318170.195345] LGE: Android Vibrator Driver Suspend
<7>[318170.195373] <6>[msm_battery] msm_batt_suspend()...
<6>[318170.209093] thunderg_pwrsink_suspend_noirq: configure gpio for suspend
<6>[318170.209093] wakeup wake lock: rpcrotuer_smd_xprt
<6>[318170.209387] thunderg_pwrsink_resume_noirq: configure gpio for resume
<7>[318170.217893] <6>[msm_battery] msm_batt_resume()...
<6>[318170.219265] LGE: Android Vibrator Driver Resume
<7>[318170.220772] msmrtc_tod_proc_result: 05/19/2012 00:57:56 (05)
<7>[318170.222005] msmrtc_tod_proc_result: 05/19/2012 00:57:56 (05)
<4>[318170.222082] [Ecompass] ecom_power_set() : Power On
<4>[318170.224318] [Accelerometer] accel_power_on() : Power On
<4>[318170.230735] Restarting tasks ... done.
<6>[318170.252233] suspend: exit suspend, ret = 0 (2012-05-19 00:57:57.053883355 UTC)
<6>[318170.324958] PM: Syncing filesystems ... done.
<4>[318170.405000] Freezing user space processes ... (elapsed 0.03 seconds) done.
<4>[318170.442000] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<4>[318170.443337] Suspending console(s) (use no_console_suspend to debug)
<4>[318170.446660] [Accelerometer] accel_power_off() : Power Off
<4>[318170.446785] [Ecompass] ecom_power_set() : Power Off
Are these anything related to random reboots, or is there a better way to diagnose what's wrong here?
Bump - any ideas? I have read that other phones have similar restart problems.
Well, I think this is a quite old post but recently I got same problem and I need log for debug too...
zhangxiao83 said:
Well, I think this is a quite old post but recently I got same problem and I need log for debug too...
Click to expand...
Click to collapse
Then provide a log.
Android Marshmallow Doze Settings Editor
Requires Root
This app is a simple editor of the settings or parameters which affect the operation of Doze.
If no root is available then it will offer an ADB command that will modify the doze settings.
Because there is no root on open it will always load the default settings.
Changelog - v6.0
You can now add your own custom profiles.
Added tuhinxp04's profile
Bugfix - No longer crashes when device settings unavailable. Will change to non root mode.
Bugfix - Info screen now shows default in current display type
Bugfix - Info screen now shows location accuracy with meters
Changelog - v5.0
New built in profiles
Bugfix - Back arrow in settings not closing activity
The next post contains descriptions of each parameter.
Source Code
https://github.com/p0isonra1n/Doze-Settings-Editor
Disclaimer
I accept no responsibility for any outcome that this app may cause. Use at your own risk.
Parameter Descriptions
These are all direct from the Doze source code.
Inactive Timeout - inactive_to
This is the time, after becoming inactive, at which we start looking at the motion sensor to determine if the device is being left alone. We don't do this immediately after going inactive just because we don't want to be continually running the significant motion sensor whenever the screen is off.
Sensing Timeout - sensing_to
If we don't receive a callback from AnyMotion in this amount of time + locating_to, we will change from STATE_SENSING to STATE_INACTIVE, and any AnyMotion callbacks while not in STATE_SENSING will be ignored.
Locating Timeout - locating_to
This is how long we will wait to try to get a good location fix before going in to idle mode.
Location Accuracy - location_accuracy
The desired maximum accuracy (in meters) we consider the location to be good enough to go on to idle. We will be trying to get an accuracy fix at least this good or until locating_to expires.
Motion Inactive Timeout - motion_inactive_to
This is the time, after seeing motion, that we wait after becoming inactive from that until we start looking for motion again.
Idle After Inactive Timeout - idle_after_inactive_to
This is the time, after the inactive timeout elapses, that we will wait looking for significant motion until we truly consider the device to be idle.
Idle Pending Timeout - idle_pending_to
This is the initial time, after being idle, that we will allow ourself to be back in the IDLE_PENDING state allowing the system to run normally until we return to idle.
Max Idle Pending Timeout - max_idle_pending_to
Maximum pending idle timeout (time spent running) we will be allowed to use.
Idle Pending Factor - idle_pending_factor
Scaling factor to apply to current pending idle timeout each time we cycle through that state.
Idle Timeout - idle_to
This is the initial time that we want to sit in the idle state before waking up again to return to pending idle and allowing normal work to run.
Max Idle Timeout - max_idle_to
Maximum idle duration we will be allowed to use.
Idle Factor - idle_factor
Scaling factor to apply to current idle timeout each time we cycle through that state.
Min Time to Alarm - min_time_to_alarm
This is the minimum time we will allow until the next upcoming alarm for us to actually go in to idle mode.
Max Temp App Whitelist Duration - max_temp_app_whitelist_duration
Max amount of time to temporarily whitelist an app when it receives a high tickle.
MMS Temp App Whitelist Duration - mms_temp_app_whitelist_duration
Amount of time we would like to whitelist an app that is receiving an MMS.
SMS Temp App Whitelist Duration - sms_temp_app_whitelist_duration
Amount of time we would like to whitelist an app that is receiving an SMS.
Extra Infomation
Difference: Doze and App Standby (developer.android.com)
Some tests and issues: code.google.com
Requires root.... so.... source code?
Going to play with this on my Oneplus one for some time.
Thanks for your work m8.
9THX!
Does it show the default numbers or does it read out the current settings?
E.g. can we see what is changed with aggressive doze from greenify?
Edit: aggressive doze seems not edit directly these strings ...
----------------------------------------------------------------------------------------------
note:
whitelist is only for app Standby!
Difference: Doze and App Standby (developer.android.com)
Some tests and issues: code.google.com
Some add links:
Power Management (source.android.com)
Doze and App Standby (developer.android.com)
Doze steps (xda)
Understanding what Doze mode means for your app - Pro-tip by +Joanna Smith (G+)
time explanation in more simple english (xda)
what we found out:
*timeout means not max. time - so the system check only from time to time if there are timeouts over, then it will stop - this is not exactly triggered (only linux sw timer)
** if e.g. sensing_timeout = 0 it will stop sensing after the next control cycle (SystemClock Interrupt AlarmTime) - although it is 0, it will check the motion sensor for few seconds
*idle mode (doze) stops if
**idle_to is reached or
**phone detect any significant motion (!)
**some tests from @italia0101
idle def (source code):
Code:
/** Device is in the idle state, trying to stay asleep as much as possible. */
Device idle controller (deviceidle) dump options:
(adb shell dumpsys battery unplug)
Code:
adb shell dumpsys deviceidle -h
Device idle controller (deviceidle) dump options:
[-h] [CMD]
-h: print this help text.
Commands:
step
Immediately step to next state, without waiting for alarm.
force-idle
Force directly into idle mode, regardless of other device state.
[B] Use "step" to get out.[/B]
disable
Completely disable device idle mode.
enable
Re-enable device idle mode after it had previously been disabled.
enabled
Print 1 if device idle mode is currently enabled, else 0.
whitelist
Print currently whitelisted apps.
whitelist [package ...]
Add (prefix with +) or remove (prefix with -) packages.
tempwhitelist [package ..]
Temporarily place packages in whitelist for 10 seconds.
[GUIDE][ADB]Easiest How to use adb, logcat, etc for noobs and newbies
adb shell dumpsys deviceidle - output:
Code:
adb shell dumpsys deviceidle
Settings:
inactive_to=+30m0s0ms
sensing_to=+4m0s0ms
locating_to=+30s0ms
location_accuracy=20.0m
motion_inactive_to=+10m0s0ms
idle_after_inactive_to=+30m0s0ms
idle_pending_to=+5m0s0ms
max_idle_pending_to=+10m0s0ms
idle_pending_factor=2.0
idle_to=+60m0s0ms
max_idle_to=+6h0m0s0ms
idle_factor=2.0
min_time_to_alarm=+60m0s0ms
max_temp_app_whitelist_duration=+5m0s0ms
mms_temp_app_whitelist_duration=+60s0ms
sms_temp_app_whitelist_duration=+20s0ms
Whitelist (except idle) system apps:
com.android.providers.downloads
com.android.vending
com.google.android.gms
Whitelist system apps:
com.google.android.gms
Whitelist (except idle) all app ids:
10008
10011
10020
Whitelist all app ids:
10011
mEnabled=true
mForceIdle=false
mSigMotionSensor={Sensor name="Significant Motion Detector", vendor="QTI", version=1, type=17, maxRange=1.0, resolution=1.0, power=0.3999939, minDelay=-1}
mCurDisplay=Display id 0: DisplayInfo{"Integrierter Bildschirm", uniqueId "local:0", app 1080 x 1823, real 1080 x 1920, largest app 1835 x 1769, smallest app 1080 x 1026, mode 1, defaultMode 1, modes [{id=1, width=1080, height=1920, fps=60.0}], rotation 0, density 360 (442.451 x 443.345) dpi, layerStack 0, appVsyncOff 7500000, presDeadline 12666667, type BUILT_IN, state OFF, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}, DisplayMetrics{density=2.25, width=1080, height=1823, scaledDensity=2.25, xdpi=442.451, ydpi=443.345}, isValid=true
mScreenOn=false
mCharging=false
mSigMotionActive=false
mSensing=false mNotMoving=false
mLocating=false mHaveGps=false mLocated=false
mState=INACTIVE
mInactiveTimeout=+5m0s0ms
mNextAlarmTime=+4m57s175ms
MOTION_INACTIVE_TIMEOUT
Code:
@Override
public void onTrigger(TriggerEvent event) {
synchronized (DeviceIdleController.this) {
active = false;
motionLocked();
}
}
@Override
public void onSensorChanged(SensorEvent event) {
synchronized (DeviceIdleController.this) {
mSensorManager.unregisterListener(this, mMotionSensor);
active = false;
motionLocked();
}
}
void motionLocked() {
// The motion sensor will have been disabled at this point
handleMotionDetectedLocked(mConstants.[B]MOTION_INACTIVE_TIMEOUT[/B], "motion");
}
void handleMotionDetectedLocked(long timeout, String type) {
// The device is not yet active, so we want to go back to the pending idle
// state to wait again for no motion. Note that we only monitor for motion
// after moving out of the inactive state, so no need to worry about that.
if (mState != STATE_ACTIVE) {
scheduleReportActiveLocked(type, Process.myUid());
mState = STATE_ACTIVE;
[B]mInactiveTimeout = timeout; [/B]
EventLogTags.writeDeviceIdle(mState, type);
becomeInactiveIfAppropriateLocked();
}
}
void becomeInactiveIfAppropriateLocked() {
if (((!mScreenOn && !mCharging) || mForceIdle) && mEnabled && mState == STATE_ACTIVE) {
// Screen has turned off; we are now going to become inactive and start
// waiting to see if we will ultimately go idle.
mState = STATE_INACTIVE;
resetIdleManagementLocked();
scheduleAlarmLocked([B]mInactiveTimeout[/B], false);
EventLogTags.writeDeviceIdle(mState, "no activity");
}
}
void scheduleAlarmLocked(long delay, boolean idleUntil) {
mNextAlarmTime = SystemClock.elapsedRealtime() + delay;
if (idleUntil) {
mAlarmManager.setIdleUntil(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
} else {
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
}
}
SENISING_TIMEOUT
Code:
switch (mState) {
case STATE_INACTIVE:
// We have now been inactive long enough, it is time to start looking
// for motion and sleep some more while doing so.
...
break;
case STATE_IDLE_PENDING:
mState = STATE_SENSING;
EventLogTags.writeDeviceIdle(mState, "step");
scheduleSensingAlarmLocked(mConstants.[B]SENSING_TIMEOUT[/B]);
cancelSensingAlarmLocked();
cancelLocatingLocked();
mAnyMotionDetector.checkForAnyMotion();
mNotMoving = false;
mLocated = false;
mLastGenericLocation = null;
mLastGpsLocation = null;
break;
case STATE_SENSING:
...
}
void scheduleAlarmLocked(long delay, boolean idleUntil) {
mNextAlarmTime = SystemClock.elapsedRealtime() + delay;
if (idleUntil) {
mAlarmManager.setIdleUntil(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
} else {
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
}
}
// mAlarmManager.setIdleUntil * Schedule an idle-until alarm, which will keep the alarm manager idle until the given time.
// mAlarmManager.set * Schedule an alarm.; If the stated trigger time is in the past, the alarm will be triggered immediately.
//android/server/AnyMotionDetector.java
public AnyMotionDetector(AlarmManager am, PowerManager pm, Handler handler, SensorManager sm,
DeviceIdleCallback callback) {
mAlarmManager = am;
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mHandler = handler;
mSensorManager = sm;
mAccelSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mMeasurementInProgress = false;
mState = STATE_INACTIVE;
mCallback = callback;
mRunningStats = new RunningSignalStats();
mNumSufficientSamples = (int) Math.ceil(
((double)ORIENTATION_MEASUREMENT_DURATION_MILLIS / SAMPLING_INTERVAL_MILLIS));
}
private final class MotionListener extends TriggerEventListener
implements SensorEventListener {
...
}
private final SensorEventListener mListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
int status = RESULT_UNKNOWN;
synchronized (mLock) {
Vector3 accelDatum = new Vector3(SystemClock.elapsedRealtime(), event.values[0],
event.values[1], event.values[2]);
mRunningStats.[B]accumulate[/B](accelDatum);
// If we have enough samples, stop accelerometer data acquisition.
if (mRunningStats.getSampleCount() >= mNumSufficientSamples) {
status = stopOrientationMeasurementLocked();
}
}
if (status != RESULT_UNKNOWN) {
mCallback.onAnyMotionResult(status);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
private int stopOrientationMeasurementLocked() {
int status = RESULT_UNKNOWN;
if (mMeasurementInProgress) {
mSensorManager.unregisterListener(mListener);
mHandler.removeCallbacks(mMeasurementTimeout);
if (mWakeLock.isHeld()) {
mWakeLock.release();
}
long detectionEndTime = SystemClock.elapsedRealtime();
mMeasurementInProgress = false;
mPreviousGravityVector = mCurrentGravityVector;
mCurrentGravityVector = mRunningStats.getRunning[B]Average[/B]();
mRunningStats.reset();
status = getStationaryStatus();
if (status != RESULT_UNKNOWN) {
mState = STATE_INACTIVE;
} else {
/*
* Unknown due to insufficient measurements. Schedule another orientation
* measurement.
*/
Message msg = Message.obtain(mHandler, mSensorRestart);
msg.setAsynchronous(true);
mHandler.sendMessageDelayed(msg, ORIENTATION_MEASUREMENT_INTERVAL_MILLIS);
}
}
return status;
}
/*
* Updates mStatus to the current AnyMotion status.
*/
public int getStationaryStatus() {
if ((mPreviousGravityVector == null) || (mCurrentGravityVector == null)) {
return RESULT_UNKNOWN;
}
Vector3 previousGravityVectorNormalized = mPreviousGravityVector.normalized();
Vector3 currentGravityVectorNormalized = mCurrentGravityVector.normalized();
float angle = previousGravityVectorNormalized.angleBetween(currentGravityVectorNormalized);
if ((angle < [B]THRESHOLD_ANGLE[/B]) && (mRunningStats.getEnergy() < [B]THRESHOLD_ENERGY[/B])) {
return [B]RESULT_STATIONARY[/B];
} else if (Float.isNaN(angle)) {
/**
* Floating point rounding errors have caused the angle calcuation's dot product to
* exceed 1.0. In such case, we report RESULT_MOVED to prevent devices from rapidly
* retrying this measurement.
*/
return [B]RESULT_MOVED[/B];
}
long diffTime = mCurrentGravityVector.timeMillisSinceBoot -
mPreviousGravityVector.timeMillisSinceBoot;
if ([B]diffTime [/B]> [B]STALE_MEASUREMENT_TIMEOUT_MILLIS[/B]) {
return [B]RESULT_UNKNOWN[/B];
}
return [B]RESULT_MOVED[/B];
}
/** Current measurement state. */
private int mState;
/** Threshold angle in degrees beyond which the device is considered moving. */
private final float THRESHOLD_ANGLE = 2f;
/** Threshold energy above which the device is considered moving. */
private final float THRESHOLD_ENERGY = 5f;
/** The duration of the accelerometer orientation measurement. */
private static final long ORIENTATION_MEASUREMENT_DURATION_MILLIS = 2500;
/** The maximum duration we will collect accelerometer data. */
private static final long ACCELEROMETER_DATA_TIMEOUT_MILLIS = 3000;
/** The interval between accelerometer orientation measurements. */
private static final long ORIENTATION_MEASUREMENT_INTERVAL_MILLIS = 5000;
/**
* The duration in milliseconds after which an orientation measurement is considered
* too stale to be used.
*/
private static final int STALE_MEASUREMENT_TIMEOUT_MILLIS = 2 * 60 * 1000;
/** The accelerometer sampling interval. */
private static final int SAMPLING_INTERVAL_MILLIS = 40;
[B][/B]
/android/server/DeviceIdleController.java
motionLocked() https://android.googlesource.com/pl...android/server/DeviceIdleController.java#1402
scheduleAlarmLocked https://android.googlesource.com/pl...android/server/DeviceIdleController.java#1402
sensing scheduleAlarmLocked https://android.googlesource.com/pl...android/server/DeviceIdleController.java#1490
/android/hardware/Sensor.java
description of a significant motion trigger sensor (TYPE_SIGNIFICANT_MOTION = 17) https://android.googlesource.com/pl...er/core/java/android/hardware/Sensor.java#305
mPower: https://android.googlesource.com/pl...er/core/java/android/hardware/Sensor.java#721
SensorPrintString https://android.googlesource.com/pl...er/core/java/android/hardware/Sensor.java#848
/android/hardware/SensorManager.java
cancelTriggerSensor https://android.googlesource.com/pl...java/android/hardware/SensorManager.java#1534
/android/server/AnyMotionDetector.java
constant: https://android.googlesource.com/pl.../com/android/server/AnyMotionDetector.java#64
I think with the string sensing_to = 0 we could deaktivate any motion for doze.
Could that be right?
Im not sure if all settings (pic) make sense... :/
original:
test:
final:
I will try it (a better "aggressiv doze")
Are the numbers in this app in seconds?
Sent from my Nexus 6 using XDA Free mobile app
freebee269 said:
Are the numbers in this app in seconds?
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
Milliseconds e.g. 600000 means 10min
If you have greenify beta installed you might want to disable doze setting as it may affect this app changes.
Sent from my Nexus 6 using XDA Free mobile app
freebee269 said:
If you have greenify beta installed you might want to disable doze setting as it may affect this app changes.
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
I think greenify use such a code:
" adb shell dumpsys deviceidle force-idle" to (only!) force doze mode if screen goes off.
http://forum.xda-developers.com/nexus-6/general/doze-depth-t3234529
So I think we could combine both.
The command "dumpsys deviceidle disable" should disable Doze.
The app will read the current settings but will fall back to loading the defaults if it can't read the settings.
this is what i have so far. greenify uninstalled.
- inactive_to set to 600000 (10min) - the time i want my device to sit before it thinks about going into doze.
- locating_to set to 0 - going into idle (doze) right away
- sensing_to set to 0 - disabling motion and going into inactive right away
- location_accuracy not changed - doesnt matter because we are going into idle right away with locating_to set to 0
- motion_inactive_to set to 0 - disabling motion
- idle_after_inactive_to set to 0 - we are already waiting 10min with inactive_to, no need to wait any longer
- idle_pending_to set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- max_idle_pending set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- idle_to set to 1800000 (30min) - the time in idle before my phone can change to idle pending to check for updates
i wonder if these settings will revert to defaults if i reboot? if so, is there a way to automate these settings with initd?
They should stick through a reboot as they are saved in the global settings.
Mkkt Bkkt said:
Going to play with this on my Oneplus one for some time.
Thanks for your work m8.
Click to expand...
Click to collapse
which marshmallow rom are you using on 1+1 ? doze is marshmallow only JFYI
---------- Post added at 10:20 AM ---------- Previous post was at 10:14 AM ----------
freebee269 said:
this is what i have so far. greenify uninstalled.
- inactive_to set to 600000 (10min) - the time i want my device to sit before it thinks about going into doze.
- locating_to set to 0 - going into idle (doze) right away
- sensing_to set to 0 - disabling motion and going into inactive right away
- location_accuracy not changed - doesnt matter because we are going into idle right away with locating_to set to 0
- motion_inactive_to set to 0 - disabling motion
- idle_after_inactive_to set to 0 - we are already waiting 10min with inactive_to, no need to wait any longer
- idle_pending_to set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- max_idle_pending set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- idle_to set to 1800000 (30min) - the time in idle before my phone can change to idle pending to check for updates
i wonder if these settings will revert to defaults if i reboot? if so, is there a way to automate these settings with initd?
Click to expand...
Click to collapse
there will be tasker integration i'm sure and depending on ones skill it should be possible to set this up in tasker already, something like day and night profiles. this app will be a runner once people get aware of it. will replace amplify since doze in action beats amplify by far on my N6 and N5. Surprised how fast someone came up with such a thing even though it was clear from day one that it will happen LOL "CHAPEAU" to @p0isonra1n
would be interesting if it is possible to log the doze steps: (Doze - In depth)
*IDLE_PENDING
*SENSING
*IDLE
*IDLE_MAINTENANCE
to find out how doze exactly works with different settings
magnamentis said:
which marshmallow rom are you using on 1+1 ? doze is marshmallow only JFYI
---------- Post added at 10:20 AM ---------- Previous post was at 10:14 AM ----------
there will be tasker integration i'm sure and depending on ones skill it should be possible to set this up in tasker already, something like day and night profiles. this app will be a runner once people get aware of it. will replace amplify since doze in action beats amplify by far on my N6 and N5. Surprised how fast someone came up with such a thing even though it was clear from day one that it will happen LOL "CHAPEAU" to @p0isonra1n
Click to expand...
Click to collapse
I'm using experimental home build.
5% drain over 9hours of deep sleep.
6hours to 8hours SOT max. (Depends on usage..etc)
Mkkt Bkkt said:
I'm using experimental home build.
5% drain over 9hours of deep sleep.
6hours to 8hours SOT max. (Depends on usage..etc)
Click to expand...
Click to collapse
ok, thanks for the feedback
i get 1% drain in 9-10h idle with my nexus 5, 2-3% drain with nexus 6 due to LED always on and i think 5% is slightly on the high side depending.
the 1% on nexus 5 correlate with 0.09% awake which is an absolute record result. the N6 has not only LED always on but as well has wake gestures ( dt2w ) active at all times while the N5 switches that of off charger. unfortunately that tasker intent, albeit it works, cannot be used on N6 because for yet unknown reason it will cause a random reboot a minute or 2 after the intent was executed. still trying to get feedback from the kernel dev as to what could be the reason. congrates for having MM on OPO, my OPO is now used by my dad hence i wait a bit for things to settle until i shall flash MM on that device.
GeraldRudi said:
would be interesting if it is possible to log the doze steps: (Doze - In depth)
*IDLE_PENDING
*SENSING
*IDLE
*IDLE_MAINTENANCE
to find out how doze exactly works with different settings
Click to expand...
Click to collapse
The sequence starts with sensing and locating. Once those 2 timeouts have passed and have not been tripped then it goes to inactive. After inactive timeout passes then it goes into idle which is the actual doze. It periodically wakes itself from doze with idle pending setting for normal phone function then goes back into doze.
Sent from my Nexus 6 using XDA Free mobile app
I am using Cataclysm without root(office mail requirement) on my N6.
Is there a way that we can achieve this in TWRP?
Sent from my Nexus 6 using Tapatalk
Hi all,
Like the title says... I'm experiencing random reboots on my OnePlus One. (between 2-5 a day, depending on who knows what :s...)
It happens on all Rom/Kernel combo's. Tried the obvious stuff like clean wiping, flashing new rom and gapps, no apps installed but stock ones, custom kernel settings,
WakeLock app to keep "partial wakelock" running.
From what I've read in previous threads and other searches, it can be battery related, bad EFS partition, driver issue (wireless?), hardware, sync issue...
I don't have issues with wireless or data connection, IMEI and baseband show properly, battery condition is normal for age I guess (shows as 'good') and has average battery lifespan.
Apps don't seem to be the issue as the reboot shows OnePlus logo, which means a hard reboot so not triggered by an app.
Reboots happen while charging or not charging, does not make a difference.
I don't have any bootloops.
Last_kmsg logs show errors like this for unexpected reboots:
[13919.861019] Kernel panic - not syncing: Fatal exception
[13919.861082] CPU0: stopping
[13919.861159] [<c010e6d8>] (unwind_backtrace+0x0/0x144) from [<c010d494>] (handle_IPI+0x1c4/0x1e0)
[13919.861276] [<c010d494>] (handle_IPI+0x1c4/0x1e0) from [<c010065c>] (gic_handle_irq+0xcc/0x10c)
[13919.861394] [<c010065c>] (gic_handle_irq+0xcc/0x10c) from [<c01074c0>] (__irq_svc+0x40/0x74)
[13919.861508] Exception stack(0xed149db0 to 0xed149df8)
[13919.861573] 9da0: c1445eb4 00000001 00000001 00000000
[13919.861688] 9dc0: c1445eb0 00000000 c1445eb4 ed148000 ed10a000 c1445eb8 c01d93f0 cea5d560
[13919.861801] 9de0: 00000004 ed149dfc 00000002 c0d30e04 20000013 ffffffff
[13919.861871] [<c01074c0>] (__irq_svc+0x40/0x74) from [<c0d30e04>] (_raw_spin_lock+0x4c/0x60)
[13919.861992] [<c0d30e04>] (_raw_spin_lock+0x4c/0x60) from [<c0d2e504>] (__mutex_lock_slowpath+0xb8/0x1c8)
[13919.862111] [<c0d2e504>] (__mutex_lock_slowpath+0xb8/0x1c8) from [<c0d2e68c>] (mutex_lock+0x78/0x7c)
[13919.862231] [<c0d2e68c>] (mutex_lock+0x78/0x7c) from [<c01b7f7c>] (get_online_cpus+0x34/0x60)
[13919.862303] [<c01b7f7c>] (get_online_cpus+0x34/0x60) from [<c07a9624>] (boost_mig_sync_thread+0x110/0x284)
[13919.862425] [<c07a9624>] (boost_mig_sync_thread+0x110/0x284) from [<c01d8900>] (kthread+0xbc/0xc0)
[13919.862544] [<c01d8900>] (kthread+0xbc/0xc0) from [<c0108440>] (kernel_thread_exit+0x0/0x8)
[13919.862656] CPU1: stopping
[13919.862774] [<c010e6d8>] (unwind_backtrace+0x0/0x144) from [<c010d494>] (handle_IPI+0x1c4/0x1e0)
[13919.862891] [<c010d494>] (handle_IPI+0x1c4/0x1e0) from [<c010065c>] (gic_handle_irq+0xcc/0x10c)
[13919.863008] [<c010065c>] (gic_handle_irq+0xcc/0x10c) from [<c01074c0>] (__irq_svc+0x40/0x74)
[13919.863072] Exception stack(0xed14bdb0 to 0xed14bdf8)
[13919.863183] bda0: c1445eb4 00000002 00000001 00000000
[13919.863293] bdc0: c1445eb0 00000000 c1445eb4 ed14a000 ed10a500 c1445eb8 c01d93f0 cea67560
[13919.863358] bde0: 00000004 ed14bdfc 00000003 c0d30e04 20000013 ffffffff
[13919.863476] [<c01074c0>] (__irq_svc+0x40/0x74) from [<c0d30e04>] (_raw_spin_lock+0x4c/0x60)
[13919.863598] [<c0d30e04>] (_raw_spin_lock+0x4c/0x60) from [<c0d2e504>] (__mutex_lock_slowpath+0xb8/0x1c8)
[13919.863669] [<c0d2e504>] (__mutex_lock_slowpath+0xb8/0x1c8) from [<c0d2e68c>] (mutex_lock+0x78/0x7c)
[13919.863790] [<c0d2e68c>] (mutex_lock+0x78/0x7c) from [<c01b7f7c>] (get_online_cpus+0x34/0x60)
[13919.863915] [<c01b7f7c>] (get_online_cpus+0x34/0x60) from [<c07a9624>] (boost_mig_sync_thread+0x110/0x284)
[13919.864035] [<c07a9624>] (boost_mig_sync_thread+0x110/0x284) from [<00000000>] ( (null))
[13919.864159] CPU3: stopping
[13919.864410] [<c010e6d8>] (unwind_backtrace+0x0/0x144) from [<c010d494>] (handle_IPI+0x1c4/0x1e0)
[13919.864774] [<c010d494>] (handle_IPI+0x1c4/0x1e0) from [<c010065c>] (gic_handle_irq+0xcc/0x10c)
[13919.864989] [<c010065c>] (gic_handle_irq+0xcc/0x10c) from [<c01074c0>] (__irq_svc+0x40/0x74)
[13919.865332] Exception stack(0xed14fdb0 to 0xed14fdf8)
[13919.865673] fda0: c1445eb4 00000003 00000001 00000000
[13919.865874] fdc0: c1445eb0 00000000 c1445eb4 ed14e000 ed10d000 c1445eb8 c01d93f0 cea7b560
[13919.866215] fde0: 00000004 ed14fdfc 00000004 c0d30e04 20000013 ffffffff
[13919.866574] [<c01074c0>] (__irq_svc+0x40/0x74) from [<c0d30e04>] (_raw_spin_lock+0x4c/0x60)
[13919.866788] [<c0d30e04>] (_raw_spin_lock+0x4c/0x60) from [<c0d2e504>] (__mutex_lock_slowpath+0xb8/0x1c8)
[13919.867144] [<c0d2e504>] (__mutex_lock_slowpath+0xb8/0x1c8) from [<c0d2e68c>] (mutex_lock+0x78/0x7c)
[13919.867500] [<c0d2e68c>] (mutex_lock+0x78/0x7c) from [<c01b7f7c>] (get_online_cpus+0x34/0x60)
[13919.867862] [<c01b7f7c>] (get_online_cpus+0x34/0x60) from [<c07a9624>] (boost_mig_sync_thread+0x110/0x284)
[13919.868226] [<c07a9624>] (boost_mig_sync_thread+0x110/0x284) from [<c01d8900>] (kthread+0xbc/0xc0)
[13919.868444] [<c01d8900>] (kthread+0xbc/0xc0) from [<c0108440>] (kernel_thread_exit+0x0/0x8)
[13920.869188] wcnss crash shutdown 0
[13920.869263] Rebooting in 5 seconds..
[13925.870935] Going down for restart now
[13925.871695] Calling SCM to disable SPMI PMIC arbiter
Anyone faced this before and got it fixed? What did you do to solve it?
Interesting and I'm running an older Marshmallow (6.0.1 MOB31K Release 74) build (11.8) from Temasek that seems to have worked well for the last year, but now reboots sporadic. Nothing specific happens, in an app and then Wham reboot.
Noticed, one thing interesting...phone was charged with 80% and after reboot phone initially reported 13% and then did a shutdown. Mine may be a bad battery or software battery problems and/or needs a firmware update, but I'm not sure yet. Plan to check my software versions as noted in my screen cap, look at firmware updates for my original One Plus 1, and probably move on to LineageOS-15.1 or similar that provides newer features, better security, and hopefully more stability.
What version and build of software are you using, anything specific about that build besides our similar issues, and otherwise?
Thanks for the reply, Sorli...
bsorli said:
Interesting and I'm running an older Marshmallow (6.0.1 MOB31K Release 74) build (11.8) from Temasek that seems to have worked well for the last year, but now reboots sporadic. Nothing specific happens, in an app and then Wham reboot.
Noticed, one thing interesting...phone was charged with 80% and after reboot phone initially reported 13% and then did a shutdown. Mine may be a bad battery or software battery problems and/or needs a firmware update, but I'm not sure yet.
Click to expand...
Click to collapse
I'm pretty sure it's the battery.
Mr.Ak said:
I'm pretty sure it's the battery.
Click to expand...
Click to collapse
I'm thinking of changing the battery, but the AccuBattery app reports 77% health and 2,400 mAh estimated capacity, that's not that bad right? It's over 3 years old after all.
Firewalker1980 said:
I'm thinking of changing the battery, but the AccuBattery app reports 77% health and 2,400 mAh estimated capacity, that's not that bad right? It's over 3 years old after all.
Click to expand...
Click to collapse
It ain't necessary that Accubattery always reports accurately.You may use an usb meter for more accuracy.
SIM card dirt…
Wiping the terminal side of the sim card corrected my cell phone.
arisasensei said:
SIM card dirt…
Wiping the terminal side of the sim card corrected my cell phone.
Click to expand...
Click to collapse
Would you please, elaborate a bit more? What does SIM card dirt mean? How do I wipe the "terminal side of the SIM card"?
You mean physically? The contacts are dirty?
bsorli said:
Interesting and I'm running an older Marshmallow (6.0.1 MOB31K Release 74) build (11.8) from Temasek that seems to have worked well for the last year, but now reboots sporadic. Nothing specific happens, in an app and then Wham reboot.
Noticed, one thing interesting...phone was charged with 80% and after reboot phone initially reported 13% and then did a shutdown. Mine may be a bad battery or software battery problems and/or needs a firmware update, but I'm not sure yet. Plan to check my software versions as noted in my screen cap, look at firmware updates for my original One Plus 1, and probably move on to LineageOS-15.1 or similar that provides newer features, better security, and hopefully more stability.
What version and build of software are you using, anything specific about that build besides our similar issues, and otherwise?
Thanks for the reply, Sorli...
Click to expand...
Click to collapse
I have random reboots and noticed something similar with my battery one time.
I replaced my battery + charging port, and fresh wipe of latest LOS but I still have random reboots.
Any news? I think I will try custom ROMs next.
xinfernal said:
I have random reboots and noticed something similar with my battery one time.
I replaced my battery + charging port, and fresh wipe of latest LOS but I still have random reboots.
Any news? I think I will try custom ROMs next.
Click to expand...
Click to collapse
Sorry I haven't looked at my OnePlus One since I wiped, restored stock, and sold it a while ago. Wish I could be more help and I'm sure someone has tried a newer build and has something more stable today. Good luck! Sorli...
It could be PMIC problem - Capacitor problem , or if you are having CPU voltages set below its limits.
Edit-
BTW mine gone dead yesterday , i think it is PMIC problem because it only turns on when on charging.
and also there is a possibility that some capacitors are failing, the One is quite old now and capacitors may have degraded because of its well known thermal problems.
FYI- the capacitors are very important in any microcontroller or microprocessor, they provide ripple-free supply to the processor and they are also the most temperature sensitive elements.
Hello community,
I (and others) have some strange behaviour on my new A52s (A528B). After some minutes or an hour, the first (silver / little) 4 cores of the A55 snapdragon goes to fixed maximum frequency of 1804 MHz (not 100% usage, just frequency) and never releases again back to the minimum frequency. I'm im contact with Samsung since days but got no senseful answer until now. The problem can be reproduced in Safe mode/factory reset (checked with adb). I did a bunch of traces and I can drill it down to the Samsung argos CPU booster. This faulty call comes from UFS = File system in case of big transfers. But most times it's simply enough to make a screenshot with Power+Lower. Releasing the boosting frequency most times fails after this and max. frequency remains until next reboot:
Code:
not ok:
<6>[ 191.996499] [3: argosd: 3100] sec_argos:argos_pm_qos_notify() name:UFS, speed:598Mbps, prev level:0, request level:-1
<6>[ 191.996509] [3: argosd: 3100] sec_argos:argos_freq_lock() update cpu freq 0
<6>[ 191.996514] [3: argosd: 3100] set_freq_limit: cflm: id(3) freq(0)
<6>[ 191.996519] [3: argosd: 3100] cflm_freq_decision: input: type(3), min(0), max(0)
<6>[ 191.996530] [3: argosd: 3100] cflm_update_current_freq: current freq: s(1804800 ~ 1804800), g(691200 ~ 2400000), p(806400 ~ 2400000)
ok:
<6>[ 46.281795] [3: argosd: 3100] sec_argos:argos_pm_qos_notify() name:UFS, speed:521Mbps, prev level:0, request level:-1
<6>[ 46.281806] [3: argosd: 3100] sec_argos:argos_freq_lock() update cpu freq -1
<6>[ 46.281811] [3: argosd: 3100] set_freq_limit: cflm: id(3) freq(-1)
<6>[ 46.281816] [3: argosd: 3100] cflm_freq_decision: input: type(3), min(-1), max(0) CFLM_ARGOS = 3, /* argos */
<6>[ 46.281895] [3: argosd: 3100] cflm_update_current_freq: current freq: s(691200 ~ 1804800), g(691200 ~ 2400000), p(806400 ~ 2400000)
What is your opion about this ? Maybe a software or hardware fault ? Is this maybe an expected behaviour ? Should I return or repair the phone ? BTW the battery life time is 1-2 days with 6h SOT @ 120Hz, sounds good to me. But I'm not sure if more energy is wasted than necessary and if the CPUs could be damaged over time. Any opion and reaction - maybe by an kernel developer/expert - would be great.
Some info:
Firmware/kernel A528BXXS1AUHA on phone has signature from 2019 = "S", at https://opensource.samsung.com/ firmware A528BXXU1AUH3 U=2021 exists, I don't understand this why
Code:
config ARGOS
bool "Throughput monitoring Feature"
default n
help
This option enables monitoring the data throughput and doing several actions for
enhancing the performance such as adjusting the CPU freqency, allocating the tasks
to the appropriate CPU and so on
[email protected] {
net_boost,label = "UFS";
net_boost,node = [00];
net_boost,sysnode = "/sys/class/sec/ufs/transferred_cnt";
net_boost,table_size = <0x1>;
net_boost,table = <0x320 0x0 0x0 0xdc500 0x0 0x0 0x0 0x0 0x0 0x0>; 320 = 800 dc500 = 902400
};
Also, I don't know a possibility to use root/twrp on it, it doesn't exist. So I can't change the governor/set the frequencies manually. Userspace governor is not present on the phone.
Thank you so much for any reaction !