Bug 217947
Summary: | WARNING at drivers/acpi/platform_profile.c:74 in platform_profile_show() | ||
---|---|---|---|
Product: | Drivers | Reporter: | Jiri Slaby (jirislaby) |
Component: | Platform_x86 | Assignee: | drivers_platform_x86 (drivers_platform_x86) |
Status: | NEW --- | ||
Severity: | normal | CC: | mpearson-lenovo |
Priority: | P3 | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugzilla.suse.com/show_bug.cgi?id=1215602 | ||
Kernel Version: | Subsystem: | ||
Regression: | No | Bisected commit-id: | |
Attachments: | DSDT |
Description
Jiri Slaby
2023-09-25 09:12:13 UTC
Created attachment 305147 [details]
DSDT
Hi, Can I confirm this is on a T14s G3 AMD platform? Thanks for the detailed report - very helpful and very much appreciated. I'll need to reproduce this but I don't have one of these platforms myself so will need to ask a colleague for help. It looks like this line is causing problems on this platform: funcmode = (output >> DYTC_GET_FUNCTION_BIT) & 0xF; Normally that should return PSC mode (in this case - unless you have AMT mode, which you don't on that gen platform). But it's saying it is in standard mode instead....which is peculiar. The FW is doing something non-standard to other platforms. Do you still get the warning when: - you're in performance or low-power modes? - you're in lap mode? As a quick test could you try adding: /* Check if we are PSC mode, or have AMT enabled */ funcmode = (output >> DYTC_GET_FUNCTION_BIT) & 0xF; +if (funcmode == DYTC_FUNCTION_STD) + funcmode = DYTC_FUNCTION_PSC; To see if it behaves correctly please? I'll have to check with the FW team and find out why this change in behaviour...I suspect I need to do a kernel patch to better handle this AMT case though. Mark (In reply to Mark Pearson from comment #2) > Can I confirm this is on a T14s G3 AMD platform? Yes. > It looks like this line is causing problems on this platform: > funcmode = (output >> DYTC_GET_FUNCTION_BIT) & 0xF; > > Normally that should return PSC mode (in this case - unless you have AMT > mode, which you don't on that gen platform). > But it's saying it is in standard mode instead....which is peculiar. The FW > is doing something non-standard to other platforms. Interestingly, it happens only initially and during suspend. Other than that, it's in PSC mode likely. > Do you still get the warning when: > - you're in performance or low-power modes? I am on always in low-power mode. This notebook is crap, it's noisy and very hot in balanced or performance modes even when idling. > - you're in lap mode? What is that? > As a quick test could you try adding: > > /* Check if we are PSC mode, or have AMT enabled */ > funcmode = (output >> DYTC_GET_FUNCTION_BIT) & 0xF; > +if (funcmode == DYTC_FUNCTION_STD) > + funcmode = DYTC_FUNCTION_PSC; > > To see if it behaves correctly please? Will try. (In reply to Jiri Slaby from comment #3) > > As a quick test could you try adding: > > > > /* Check if we are PSC mode, or have AMT enabled */ > > funcmode = (output >> DYTC_GET_FUNCTION_BIT) & 0xF; > > +if (funcmode == DYTC_FUNCTION_STD) > > + funcmode = DYTC_FUNCTION_PSC; > > > > To see if it behaves correctly please? > > Will try. It only changes the error to EINVAL. 0xf is not handled as a correct state in PSC. BTW the first (bad) log: thinkpad_acpi: dytc_profile_refresh: err=-22 mmc=0 psc=1 mmc_get=0 funcmode=13 output=0x1f001 perfmode=15 subsequent refreshes (good): thinkpad_acpi: dytc_profile_refresh: err=0 mmc=0 psc=1 mmc_get=0 funcmode=13 output=0x20013d01 perfmode=3 Ah yeah - need to add: case DYTC_MODE_MMC_BALANCE: underneath case DYTC_MODE_PSC_BALANCE: in function convert_dytc_to_profile (same as is done for the MMC block above) I think that will cure that error. Still tracking down HW here :( Mark (In reply to Mark Pearson from comment #5) > Ah yeah - need to add: > case DYTC_MODE_MMC_BALANCE: > underneath > case DYTC_MODE_PSC_BALANCE: > in function convert_dytc_to_profile > (same as is done for the MMC block above) > > I think that will cure that error. Of course: dytc_profile_refresh: err=0 mmc=0 psc=1 mmc_get=0 funcmode=13 output=0x1f001 perfmode=15 OK - so (just to be sure) with those changes it is working correctly? Mark (In reply to Mark Pearson from comment #7) > OK - so (just to be sure) with those changes it is working correctly? It appears so. Gentle ping: any updates on this? Thanks for the ping - I had completely forgotten about this one. I'll check on the status. My notes (internal ticket LO-2242) say we're waiting on the FW team for a fix, they did do one version but it didn't work. I've no idea why it's taking so long. Mark |