Mario Limonciello
e4678483f9
platform/x86/amd: pmc: Add a workaround for an s0i3 issue on Cezanne
...
Cezanne platforms under the right circumstances have a synchronization
problem where attempting to enter s2idle may fail if the x86 cores are
put into HLT before hardware resume from the previous attempt has
completed.
To avoid this issue add a 10-20ms delay before entering s2idle another
time. This workaround will only be applied on interrupts that wake the
hardware but don't break the s2idle loop.
Cc: stable@vger.kernel.org # 6.1
Cc: "Mahapatra, Rajib" <Rajib.Mahapatra@amd.com >
Cc: "Raul Rangel" <rrangel@chromium.org >
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20221116154341.13382-1-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-12-07 15:27:49 +01:00
Shyam Sundar S K
6412518f5c
platform/x86/amd: pmc: Add new ACPI ID AMDI0009
...
Add new a new ACPI ID AMDI0009 used by upcoming AMD platform to the pmc
supported list of devices.
Cc: stable@vger.kernel.org # 6.0
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com >
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20221109083346.361603-1-Shyam-sundar.S-k@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-11-15 16:49:41 +01:00
Mario Limonciello
a5b5fb0fc4
platform/x86/amd: pmc: Remove more CONFIG_DEBUG_FS checks
...
commit b37fe34c83 ("platform/x86/amd: pmc: remove CONFIG_DEBUG_FS
checks") removed most CONFIG_DEBUG_FS checks, but there were some
left that were reported to cause compile test failures.
Remove the remaining checks, and also the unnecessary CONFIG_SUSPEND
used in the same place.
Reported-by: liyupeng@zbhlos.com
Fixes: b37fe34c83 ("platform/x86/amd: pmc: remove CONFIG_DEBUG_FS checks")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216679
Link: https://lore.kernel.org/r/20221108023323.19304-1-mario.limonciello@amd.com
Cc: stable@vger.kernel.org
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-11-15 12:36:49 +01:00
Mario Limonciello
0b6e6e149c
platform/x86/amd: pmc: Read SMU version during suspend on Cezanne systems
...
commit b0c07116c8 ("platform/x86: amd-pmc: Avoid reading SMU version at
probe time") adjusted the behavior for amd-pmc to avoid reading the SMU
version at startup but rather on first use to improve boot time.
However the SMU version is also used to decide whether to place a timer
based wakeup in the OS_HINT message. If the idlemask hasn't been read
before this message was sent then the SMU version will not have been
cached.
Ensure the SMU version has been read before deciding whether or not to
run this codepath.
Cc: stable@vger.kernel.org # 6.0
Reported-by: You-Sheng Yang <vicamo.yang@canonical.com >
Tested-by: Anson Tsao <anson.tsao@amd.com >
Fixes: b0c07116c8 ("platform/x86: amd-pmc: Avoid reading SMU version at probe time")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20221020113749.6621-2-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-10-24 11:27:35 +02:00
Mario Limonciello
c928df03bd
platform/x86/amd: pmc: Dump idle mask during "check" stage instead
...
The idle mask is dumped during the "prepare" and "restore" stage
right now, which helps to demonstrate issues only related to the
first s2idle entry.
If the system has entered s2idle once, but was woken up never
breaking the s2idle loop but also never went back to sleep we
might still have another issue to deal with however.
Move the dynamic debugging message here so that we'll catch it on
each iteration.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216516
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20220929215042.745-1-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-10-03 09:39:55 +02:00
Shyam Sundar S K
b37fe34c83
platform/x86/amd: pmc: remove CONFIG_DEBUG_FS checks
...
Since linux/debugfs.h already has the stubs for the used debugfs
functions when debugfs is not enabled, remove the #ifdef CONFIG_DEBUG_FS
checks.
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com >
Link: https://lore.kernel.org/r/20220922175608.630046-1-Shyam-sundar.S-k@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-09-27 15:17:09 +02:00
Nathan Chancellor
9af48b2626
platform/x86/amd: pmc: Fix build without debugfs
...
Without CONFIG_DEBUG_FS, the following build error occurs:
drivers/platform/x86/amd/pmc.c:984:17: error: use of undeclared identifier 'pmc_groups'; did you mean 'set_groups'?
.dev_groups = pmc_groups,
^~~~~~~~~~
set_groups
./include/linux/cred.h:65:13: note: 'set_groups' declared here
extern void set_groups(struct cred *, struct group_info *);
^
drivers/platform/x86/amd/pmc.c:984:17: error: incompatible pointer types initializing 'const struct attribute_group **' with an expression of type 'void (struct cred *, struct group_info *)' [-Werror,-Wincompatible-pointer-types]
.dev_groups = pmc_groups,
^~~~~~~~~~
2 errors generated.
pmc_groups was only defined inside a CONFIG_DEBUG_FS block but
commit 7f1ea75d49 ("platform/x86/amd: pmc: Add sysfs files for SMU")
intended for these sysfs files to be available outside of debugfs.
Shuffle the necessary functions out of the CONFIG_DEBUG_FS block so that
the file always builds.
Fixes: 7f1ea75d49 ("platform/x86/amd: pmc: Add sysfs files for SMU")
Signed-off-by: Nathan Chancellor <nathan@kernel.org >
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20220922153100.324922-1-nathan@kernel.org
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-09-22 17:42:25 +02:00
Mario Limonciello
7f1ea75d49
platform/x86/amd: pmc: Add sysfs files for SMU
...
The CPU/APU SMU FW version and program is currently discoverable by
turning on dynamic debugging or examining debugfs for the amdgpu
driver. To make this more discoverable, create a dedicated sysfs
file for it that userspace can parse without debugging enabled.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20220914141850.259-1-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-09-19 13:48:38 +02:00
Mario Limonciello
db55fb8a06
platform/x86/amd: pmc: Add an extra STB message for checking s2idle entry
...
The `check` callback is run right before the cores are put into HLT.
This will allow checking synchronization problems with other software
that writes into the STB.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20220829162953.5947-5-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-09-09 17:37:41 +02:00
Mario Limonciello
90bec2855c
platform/x86/amd: pmc: Always write to the STB
...
The kernel parameter `enable_stb` currently gates the access to the STB
from debugfs and also controls whether the kernel writes events to the
STB.
Even if not accessing STB data from the kernel it's useful to have this
data stored to review the STB. So in suspend/resume always write it.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20220829162953.5947-4-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-09-09 17:37:41 +02:00
Mario Limonciello
e24faabf5f
platform/x86/amd: pmc: Add defines for STB events
...
Currently `amd-pmc` has two events, but just adds one to the first to
distinguish the second. Add a clear definition what these events mean.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com >
Link: https://lore.kernel.org/r/20220829162953.5947-3-mario.limonciello@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-09-09 17:37:41 +02:00
Shyam Sundar S K
035c8a91a1
platform/x86/amd/pmc: Add new platform support
...
PMC driver can be supported on a new upcoming platform.
Add this information to the support list.
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com >
Link: https://lore.kernel.org/r/20220630050324.3780654-2-Shyam-sundar.S-k@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-07-08 16:44:21 +02:00
Shyam Sundar S K
221b8b21c3
platform/x86/amd/pmc: Add new acpi id for PMC controller
...
New version of PMC controller will have a separate ACPI id, add that
to the support list.
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com >
Link: https://lore.kernel.org/r/20220630050324.3780654-1-Shyam-sundar.S-k@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-07-08 16:44:21 +02:00
Shyam Sundar S K
ef233eafe5
platform/x86: Move AMD platform drivers to separate directory
...
Currently, AMD supported platform drivers are grouped under generic "x86"
folder structure. Move the current drivers (amd-pmc and amd_hsmp) to a
separate directory. This would also mean the newer driver submissions to
pdx86 subsystem in the future will also land in AMD specific directory.
Reviewed-by: Naveen Krishna Chatradhi <NaveenKrishna.Chatradhi@amd.com >
Tested-by: Suma Hegde <suma.hegde@amd.com >
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com >
Link: https://lore.kernel.org/r/20220608193212.2827257-1-Shyam-sundar.S-k@amd.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Hans de Goede <hdegoede@redhat.com >
2022-06-22 11:57:55 +02:00