Re: [PATCH v6 5/5] platform/x86: bitland-mifs-wmi: Add per-machine ops table

From: Martiya Aryan Mehr

Date: Wed Nov 11 2026 - 06:56:03 EST


Hi Anton,

I hope you're doing well.

I'm following up on the previous discussions and patches regarding the
"bitland-mifs-wmi" driver and its support for the Xiaomi Redmi Book
Pro 16 2024 (TM2309).

First of all, thank you for the time and effort you've put into
investigating this laptop's firmware and improving the driver. I
really appreciate your work.

I wanted to ask about the current development status and what we can
expect in the coming kernel releases.

I have a few questions:

1. Current development status and upstream integration

How is the development progressing at the moment? Have the relevant
patches been accepted or merged into the upstream Linux kernel, or are
they still under review and development?

Do you have an idea of when these improvements might become available
in stable kernel releases and eventually in Arch Linux's official
kernel packages?

2. Battery charge limit (80% charging protection)

One of the most important features for me is proper battery charge protection.

Will the driver eventually support the 80% charge limit correctly on
the TM2309, similar to how it works in Windows?

More specifically, will we be able to enable the limit, keep the
battery at approximately 80% while the laptop remains plugged in, and
have charging resume only when the battery level drops below the
firmware's configured threshold?

I'd also like to know whether this feature will be exposed through a
proper Linux interface rather than relying on potentially unsafe WMI
commands.

3. Platform performance profiles

Will all four performance profiles eventually be properly supported on
this laptop?

- Low Power
- Balanced
- Performance (Turbo)
- Max Power (Geek)

Will these profiles work correctly through "power-profiles-daemon" and
the standard KDE power management interface?

I'm particularly interested in whether Turbo will work on both AC
power and battery, and whether Max Power will be available as a
separate, explicitly selectable option.

4. Fan control and hardware monitoring

Are there any plans to investigate proper fan speed monitoring and fan
control, GPU mode, keyboard backlight control, and CPU temperature
reporting on this model?

I understand that some of these features may not be implemented in the
current firmware WMI interface, but I'd like to know whether
alternative methods are being considered.

5. Thermald and CPU power limits

I noticed the discussion about MMIO PL1 and MSR PL1 in the
TM2309/TM2307 reports.

Is this issue being investigated? Can we expect the performance
profiles to apply the correct CPU power limits consistently,
particularly under sustained workloads?

6. Suspend and resume reliability

Are there any known issues with suspend/resume related to the new
profile mappings, particularly the reported problem involving a stale
QFAN value of 0?

Will this be addressed as part of the upcoming patches?

Finally, I want to let you know that I'm happy to help with testing on
my own Redmi Book Pro 16 2024.

If there are patches, test builds, diagnostic commands, logs, or
specific tests that would be useful, I'd be glad to run them and
report the results. I can also test different scenarios on AC power
and battery and provide any required hardware or firmware information.

My goal is to help make Linux work as well as possible on this laptop,
so that we can eventually have a reliable and fully functional
experience without having to rely on Windows for these hardware
features.

Thank you again for your work and for helping improve Linux support
for these Xiaomi laptops.

Best regards,
Martiya

On Wed, Nov 11, 2026 at 3:10 PM Martiya Aryan Mehr <martiya.ar@xxxxxxxxx> wrote:
>
> Hi Anton,
>
> I hope you're doing well.
>
> I'm following up on the previous discussions and patches regarding the "bitland-mifs-wmi" driver and its support for the Xiaomi Redmi Book Pro 16 2024 (TM2309).
>
> First of all, thank you for the time and effort you've put into investigating this laptop's firmware and improving the driver. I really appreciate your work.
>
> I wanted to ask about the current development status and what we can expect in the coming kernel releases.
>
> I have a few questions:
>
> 1. Current development status and upstream integration
>
> How is the development progressing at the moment? Have the relevant patches been accepted or merged into the upstream Linux kernel, or are they still under review and development?
>
> Do you have an idea of when these improvements might become available in stable kernel releases and eventually in Arch Linux's official kernel packages?
>
> 2. Battery charge limit (80% charging protection)
>
> One of the most important features for me is proper battery charge protection.
>
> Will the driver eventually support the 80% charge limit correctly on the TM2309, similar to how it works in Windows?
>
> More specifically, will we be able to enable the limit, keep the battery at approximately 80% while the laptop remains plugged in, and have charging resume only when the battery level drops below the firmware's configured threshold?
>
> I'd also like to know whether this feature will be exposed through a proper Linux interface rather than relying on potentially unsafe WMI commands.
>
> 3. Platform performance profiles
>
> Will all four performance profiles eventually be properly supported on this laptop?
>
> - Low Power
> - Balanced
> - Performance (Turbo)
> - Max Power (Geek)
>
> Will these profiles work correctly through "power-profiles-daemon" and the standard KDE power management interface?
>
> I'm particularly interested in whether Turbo will work on both AC power and battery, and whether Max Power will be available as a separate, explicitly selectable option.
>
> 4. Fan control and hardware monitoring
>
> Are there any plans to investigate proper fan speed monitoring and fan control, GPU mode, keyboard backlight control, and CPU temperature reporting on this model?
>
> I understand that some of these features may not be implemented in the current firmware WMI interface, but I'd like to know whether alternative methods are being considered.
>
> 5. Thermald and CPU power limits
>
> I noticed the discussion about MMIO PL1 and MSR PL1 in the TM2309/TM2307 reports.
>
> Is this issue being investigated? Can we expect the performance profiles to apply the correct CPU power limits consistently, particularly under sustained workloads?
>
> 6. Suspend and resume reliability
>
> Are there any known issues with suspend/resume related to the new profile mappings, particularly the reported problem involving a stale QFAN value of 0?
>
> Will this be addressed as part of the upcoming patches?
>
> Finally, I want to let you know that I'm happy to help with testing on my own Redmi Book Pro 16 2024.
>
> If there are patches, test builds, diagnostic commands, logs, or specific tests that would be useful, I'd be glad to run them and report the results. I can also test different scenarios on AC power and battery and provide any required hardware or firmware information.
>
> My goal is to help make Linux work as well as possible on this laptop, so that we can eventually have a reliable and fully functional experience without having to rely on Windows for these hardware features.
>
> Thank you again for your work and for helping improve Linux support for these Xiaomi laptops.
>
> Best regards,
> Martiya
>
> On Fri, Oct 9, 2026, 1:36 AM Miloš Vlku <vlku.milos.fun@xxxxxxxxx> wrote:
>>
>> Hi Anton,
>>
>> Ran your questions on my TM2307 (kernel 7.2.9, for-next plus Chris's
>> GET-only change).
>>
>> On battery the driver refuses balanced-performance and performance, like
>> you said. But if I write the mode straight to QFAN, both 3 and 4 stick on
>> battery without complaint. So same as your TM2309 - the firmware is fine
>> with it and these boards don't really need the capability check.
>>
>> Fn+K only ever goes 1 -> 3 -> 2. I pressed it around twenty times while
>> watching QFAN and it never landed on 4. So I agree with your mapping:
>> performance should be Turbo (3), and full speed should be max-power so
>> nobody gets it by accident from the desktop slider.
>>
>> You're right about the suspend problem too. My patch didn't handle a
>> stale 0 at all, so it would have broken suspend the same way it did on
>> the TM2426. Reading 0 as balanced makes sense. Thanks for catching that.
>>
>> kb_mode reads back -EIO here on for-next, so your patch should hide it on
>> this board as well. I haven't built your patch yet though, so that's just
>> the precondition - happy to test it properly if another report helps.
>>
>> Command 0x10 looks the same as yours: subcommand 1 reads SOH1 and 2 is
>> bit 0 of LONL at 0xA4. The only difference is that subcommand 3 compares
>> ADPW against 100 instead of 140. That looks like the most this board can
>> take over USB-C: ADPW reads 100 with the stock 100 W charger on either
>> port, still 100 with a 160 W one, and 0 on battery. The ports report USB
>> PD 2.0, so no EPR. My limit is off (LONL 0, AFBC 100), SOH1 100.
>>
>> One more thing, since you use thermald: with int3400_thermal loaded,
>> thermald --adaptive sets the MMIO PL1 from the GDDV table here too (about
>> 25/50/90 W), but the CPU still drew 27 W because the MSR PL1 stayed at
>> 28 W. Restarting thermald puts it back to 28 W; profile changes don't.
>> With it opened after thermald starts, sustained load settles around 56 W
>> at 101 C, and balanced at 45 W. Does your MSR PL1 also read 28 W after
>> thermald starts?
>>
>> Happy to do the joint TM2307/TM2309 entry with you once Chris's series is
>> out - either way round is fine. I'll put my Tested-by on Chris's thread
>> rather than here.
>>
>> Thanks,
>> Milos