platform/x86: thinkpad_acpi: Fix registration of tpacpi platform driver
The recent platform profile changes prevent the tpacpi platform driver
from registering. This error is seen in the kernel logs, and the
various tpacpi entries are not created:
[ 7550.642171] platform thinkpad_acpi: Resources present before probing
This happens because devm_platform_profile_register() is called before
tpacpi_pdev probes (thanks to Kurt Borja for identifying the root
cause).
For now revert back to the old platform_profile_register to fix the
issue. This is quick fix and will be re-implemented later as more
testing is needed for full solution.
Tested on X1 Carbon G12.
Fixes: 31658c916f
("platform/x86: thinkpad_acpi: Use devm_platform_profile_register()")
Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Reviewed-by: Kurt Borja <kuurtb@gmail.com>
Link: https://lore.kernel.org/r/20250211173620.16522-1-mpearson-lenovo@squebb.ca
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
parent
569617dbbd
commit
b3e127daca
1 changed files with 9 additions and 2 deletions
|
@ -10668,8 +10668,8 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
|
|||
"DYTC version %d: thermal mode available\n", dytc_version);
|
||||
|
||||
/* Create platform_profile structure and register */
|
||||
tpacpi_pprof = devm_platform_profile_register(&tpacpi_pdev->dev, "thinkpad-acpi",
|
||||
NULL, &dytc_profile_ops);
|
||||
tpacpi_pprof = platform_profile_register(&tpacpi_pdev->dev, "thinkpad-acpi-profile",
|
||||
NULL, &dytc_profile_ops);
|
||||
/*
|
||||
* If for some reason platform_profiles aren't enabled
|
||||
* don't quit terminally.
|
||||
|
@ -10687,8 +10687,15 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void dytc_profile_exit(void)
|
||||
{
|
||||
if (!IS_ERR_OR_NULL(tpacpi_pprof))
|
||||
platform_profile_remove(tpacpi_pprof);
|
||||
}
|
||||
|
||||
static struct ibm_struct dytc_profile_driver_data = {
|
||||
.name = "dytc-profile",
|
||||
.exit = dytc_profile_exit,
|
||||
};
|
||||
|
||||
/*************************************************************************
|
||||
|
|
Loading…
Add table
Reference in a new issue