Battery Status - Something funky happening

I'll keep this as brief as possible:
Skylake Laptop, Big Sur 11.5.2, OpenCore 0.7.3 and related. I'm using VirtualSMC, SMCBatteryManager, and have several SSDT patches including SSDT-EC-USBX.

My laptop doesn't have any EC it seems, according to my SSDT and my DSDT shows there is a standard, single battery device called BAT1 with the usual _BIF and _BST methods.

Right now, my battery indicator DOES work, until the charge hits 100%. Once the battery says "I'm full" the status will freeze there until reboot. It's like ACPI just halts giving updates.

The other issue is when I DO change the battery state (plug/unplug the power) the status takes between 30-60 seconds to actually update.

The battery life itself is awesome, that's not an issue. It's just problematic to have the laptop charge fully and then say it's at 100% charge until it dies.

What I've tried:
Using RehabMan's ACPIBatteryManager (Doesn't work, no updates whatsoever, though the icon does show up)
Using ECEnabler (which afaik only allows MacOS to read byte sizes larger than 8 bytes, shouldn't apply here)
I even tried using clover instead but even after converting, the system just doesn't want to boot. That and I'd like to stick with OpenCore if possible.

I would happily manually create battery patches (I've been reading the ACPI programming manual, the language itself isn't too difficult) but most guides reference using the EC which my DSDT simply doesn't have. I don't have two batteries, and the actual code for BAT1 seems pretty straightforward.

I fear it's a bug with SMCBatteryManager itself (Since again, the battery status DOES work but the polling is slow and stops completely when the battery state hits full)

I have no idea where to go from here. I've been looking at other laptop battery patches and SSDT's, but nothing is screamingly obvious yet, and I was hoping for suggestions.

submitted by /u/enigmahack
[link] [comments]