Xi Pardee
438aef8270
platform/x86:intel/pmc: Add support to show ltr_ignore value
...
Add a column in ltr_show output to show if the IP has been ignored.
A mutex lock is used to protect the critical section as other processes
might try to write to the LTR ignore register at the same time.
Signed-off-by: Xi Pardee <xi.pardee@intel.com >
Link: https://lore.kernel.org/r/20240624203218.2428475-6-xi.pardee@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-08 10:43:41 +03:00
Xi Pardee
4455e2b1c8
platform/x86:intel/pmc: Move pmc assignment closer to first usage
...
Move pmc variable assignment closer to the conditional statement of
its first use for better readability.
Signed-off-by: Xi Pardee <xi.pardee@linux.intel.com >
Link: https://lore.kernel.org/r/20240624203218.2428475-5-xi.pardee@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-08 10:43:35 +03:00
Xi Pardee
a57a94d185
platform/x86:intel/pmc: Convert index variables to be unsigned
...
Convert the index variables type to unsigned to avoid confusion and
errors.
Signed-off-by: Xi Pardee <xi.pardee@intel.com >
Link: https://lore.kernel.org/r/20240624203218.2428475-4-xi.pardee@linux.intel.com
[ij: Converted also pmc_core_lpm_get_arr_size() to return unsigned int]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-08 10:42:45 +03:00
Xi Pardee
6d413a1f60
platform/x86:intel/pmc: Simplify mutex usage with cleanup helpers
...
Use macros defined in cleanup.h to automate the mutex lock/unlock flow.
Signed-off-by: Xi Pardee <xi.pardee@intel.com >
Link: https://lore.kernel.org/r/20240624203218.2428475-3-xi.pardee@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-08 10:37:56 +03:00
Xi Pardee
40fdf3f623
platform/x86:intel/pmc: Use the return value of pmc_core_send_msg
...
Use the return value of pmc_core_send_msg() directly instead of
assigning another code when an error occurs.
Signed-off-by: Xi Pardee <xi.pardee@intel.com >
Link: https://lore.kernel.org/r/20240624203218.2428475-2-xi.pardee@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-08 10:37:53 +03:00
Devin Bayer
4bf1ea3fc9
platform/x86: asus-wmi: support the disable camera LED on F10 of Zenbook 2023
...
Adds a sysfs entry for the LED on F10 above the crossed out camera icon
on 2023 Zenbooks.
Signed-off-by: Devin Bayer <dev@doubly.so >
Link: https://lore.kernel.org/r/20240628084603.217106-1-dev@doubly.so
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-06 16:40:01 +03:00
Ilpo Järvinen
cf25477c52
Merge branch 'pdx86/platform-drivers-x86-lenovo-c630' into review-ilpo
2024-07-06 11:40:29 +03:00
Dmitry Baryshkov
ec7c0f3415
platform: arm64: lenovo-yoga-c630: select AUXILIARY_BUS
...
Add missing selection of AUXILIARY_BUS as the driver uses aux bus to
create subdevices.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202406260704.roVRkyPi-lkp@intel.com/
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/20240626-yoga-fix-aux-v1-1-6aaf9099b18e@linaro.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-07-06 11:39:14 +03:00
Armin Wolf
618ba6abfc
platform/x86: wmi: Add bus ABI documentation
...
Add documentation for the WMI bus sysfs interface so userspace
applications can use it to access additional data about WMI devices.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Armin Wolf <W_Armin@gmx.de >
Link: https://lore.kernel.org/r/20240624173116.31314-3-W_Armin@gmx.de
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-24 20:36:13 +03:00
Armin Wolf
12046f8c77
platform/x86: wmi: Add driver_override support
...
Add support for forcing the WMI driver core to bind
a certain WMI driver to a WMI device. This will be
necessary to support generic WMI drivers without an
ID table
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Armin Wolf <W_Armin@gmx.de >
Link: https://lore.kernel.org/r/20240624173116.31314-2-W_Armin@gmx.de
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-24 20:36:08 +03:00
Ilpo Järvinen
4261031484
Merge branch 'pdx86/platform-drivers-x86-lenovo-c630' into review-ilpo
2024-06-24 19:06:28 +03:00
Dmitry Baryshkov
13bbe1c83b
platform/arm64: build drivers even on non-ARM64 platforms
...
The Kconfig for platforms/arm64 has 'depends on ARM64 || COMPILE_TEST'.
However due to Makefile having just obj-$(CONFIG_ARM64) the subdir will
not be descended for !ARM64 platforms and thus the drivers won't get
built. This breaks modular builds of other driver drivers which depend
on arm64 platform drivers.
Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Fixes: 363c8aea25 ("platform: Add ARM64 platform directory")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/20240624-ucsi-yoga-ec-driver-v9-1-53af411a9bd6@linaro.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-24 18:22:15 +03:00
Tero Kristo
7b3ffe0d81
platform/x86/intel-uncore-freq: Use generic helpers for current frequency
...
Use the generic sysfs helpers for reading the current frequency also,
and remove the custom ones.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-8-tero.kristo@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:46:17 +03:00
Tero Kristo
b2cc9f908a
platform/x86/intel-uncore-freq: Rename the sysfs helper macro names
...
The macros to create sysfs entries are going to be used for other
attributes in addition to current min/max frequencies only, so rename
these to be more generic.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-7-tero.kristo@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:46:12 +03:00
Tero Kristo
d766abfbea
platform/x86/intel-uncore-freq: Get rid of uncore_read_freq driver API
...
Get rid of uncore_read_freq driver API. Instead, add a new entry to the
enumerated read interface and use this.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-6-tero.kristo@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:46:07 +03:00
Tero Kristo
69207a0f17
platform/x86/intel-uncore-freq: Use uncore_index with read_control_freq
...
Use the enumerated index for selecting the uncore driver parameter to
read, instead of reading everything. This is done in preparation to
expand the API to access more parameters later.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-5-tero.kristo@linux.intel.com
[ij: Removed underscores from variable names]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:45:21 +03:00
Tero Kristo
90583374f1
platform/x86/intel-uncore-freq: Get rid of magic min_max argument
...
Get rid of the hardcoded / magic min_max argument from internal APIs.
Instead, use an enumerated index value for it.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-4-tero.kristo@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:35:19 +03:00
Tero Kristo
4babdbdce6
platform/x86/intel-uncore-freq: Get rid of magic values
...
Get rid of any magic bitmasks from the code. Define proper macros for
these, and use the bitfield operations to access them.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-3-tero.kristo@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:35:17 +03:00
Tero Kristo
36f7004552
platform/x86/intel-uncore-freq: Re-arrange bit masks
...
Rename the various bitmasks from the 'UNCORE_GENMASK_*' to
'UNCORE_*_MASK', and re-order them based on the register they reside in.
No functional change intended.
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240617060708.892981-2-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-18 12:35:13 +03:00
Ilpo Järvinen
fe899f8910
Merge branch 'pdx86/platform-drivers-x86-lenovo-c630' into review-ilpo
2024-06-18 11:20:08 +03:00
Dmitry Baryshkov
5e5f2f92cc
platform: arm64: add Lenovo Yoga C630 WOS EC driver
...
Lenovo Yoga C630 WOS is a laptop using Snapdragon 850 SoC. Like many
laptops it uses an embedded controller (EC) to perform various platform
operations, including, but not limited, to Type-C port control or power
supply handlng.
Add the driver for the EC, that creates devices for UCSI and power
supply devices.
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/20240614-yoga-ec-driver-v7-2-9f0b9b40ae76@linaro.org
[ij: added #include <linux/cleanup.h>]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-14 12:51:30 +03:00
Bjorn Andersson
5958448d8e
dt-bindings: platform: Add Lenovo Yoga C630 EC
...
Add binding for the Embedded Controller found in the Qualcomm
Snapdragon-based Lenovo Yoga C630.
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/20240614-yoga-ec-driver-v7-1-9f0b9b40ae76@linaro.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-14 12:37:47 +03:00
Tony Luck
490d573b5a
platform/x86/intel/ifs: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Reviewed-by: Jithu Joseph <jithu.joseph@intel.com >
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240611171455.352536-1-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-12 11:16:22 +03:00
Thomas Weißschuh
dd637f5cd5
platform/x86: dell-pc: avoid double free and invalid unregistration
...
If platform_profile_register() fails it does kfree(thermal_handler) and
leaves the pointer value around.
Any call to thermal_cleanup() will try to kfree(thermal_handler) again.
This will happen right away in dell_init().
In addition, platform_profile_remove() will be called although no
profile is registered.
NULL out the thermal_handler, so thermal_cleanup() avoids the double free.
Fixes: 996ad41298 ("platform/x86: dell-pc: Implement platform_profile")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net >
Reviewed-by: Lyndon Sanche <lsanche@lyndeno.ca >
Link: https://lore.kernel.org/r/20240604-dell-pc-double-free-v1-1-6d81255b2a44@weissschuh.net
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-07 16:18:35 +03:00
Andy Shevchenko
4894c364d5
platform/x86: thinkpad_acpi: Use 2-argument strscpy()
...
Use 2-argument strscpy(), which is not only shorter but also provides
an additional check that destination buffer is an array.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20240602090244.1666360-7-andy.shevchenko@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 14:51:44 +03:00
Andy Shevchenko
31edc07e4f
platform/x86: think-lmi: Use 2-argument strscpy()
...
Use 2-argument strscpy(), which is not only shorter but also provides
an additional check that destination buffer is an array.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20240602090244.1666360-6-andy.shevchenko@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 14:51:42 +03:00
Andy Shevchenko
9a3291e930
platform/x86: serial-multi-instantiate: Use 2-argument strscpy()
...
Use 2-argument strscpy(), which is not only shorter but also provides
an additional check that destination buffer is an array.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20240602090244.1666360-5-andy.shevchenko@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 14:51:40 +03:00
Andy Shevchenko
914d906aec
platform/x86: intel: chtwc_int33fe: Use 2-argument strscpy()
...
Use 2-argument strscpy(), which is not only shorter but also provides
an additional check that destination buffer is an array.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20240602090244.1666360-4-andy.shevchenko@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 14:51:38 +03:00
Andy Shevchenko
c5288cda69
platform/x86: hp: hp-bioscfg: Use 2-argument strscpy()
...
Use 2-argument strscpy(), which is not only shorter but also provides
an additional check that destination buffer is an array.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20240602090244.1666360-3-andy.shevchenko@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 14:51:36 +03:00
Andy Shevchenko
057e025a4f
platform/x86: asus-tf103c-dock: Use 2-argument strscpy()
...
Use 2-argument strscpy(), which is not only shorter but also provides
an additional check that destination buffer is an array.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240602090244.1666360-2-andy.shevchenko@gmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 14:51:24 +03:00
Tony Luck
d30f57b741
platform/x86: intel_scu_wdt: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-10-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:13 +03:00
Tony Luck
a42f41466f
platform/x86: intel_speed_select_if: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-9-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:12 +03:00
Tony Luck
568e639a61
platform/x86: intel-uncore-freq: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-8-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:09 +03:00
Tony Luck
12929ac3ef
platform/x86: intel_ips: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-7-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:07 +03:00
Tony Luck
70a4fa3f4f
platform/x86: intel_turbo_max_3: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-6-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:05 +03:00
Tony Luck
fad21268dc
platform/x86: p2sb: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-5-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:02 +03:00
Tony Luck
5b3eaf10e2
x86/platform/atom: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Link: https://lore.kernel.org/r/20240531203706.233365-4-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:49:00 +03:00
Tony Luck
0ff9c76fda
platform/x86: intel_telemetry: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-3-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:48:58 +03:00
Tony Luck
33af65ad67
platform/x86/intel/pmc: Switch to new Intel CPU model defines
...
New CPU #defines encode vendor and family as well as model.
Signed-off-by: Tony Luck <tony.luck@intel.com >
Acked-by: Hans de Goede <hdegoede@redhat.com >
Link: https://lore.kernel.org/r/20240531203706.233365-2-tony.luck@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-06-03 09:48:55 +03:00
Tero Kristo
0da7a95448
doc: TPMI: Add entry for Performance Limit Reasons
...
Describe the new 'plr' (Performance Limit Reasons) directory contents under
the main TPMI debugfs folder.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Link: https://lore.kernel.org/r/20240527133400.483634-7-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:32:20 +03:00
Tero Kristo
9e9397a41b
platform/x86/intel/tpmi/plr: Add support for the plr mailbox
...
Add support for reading fine grained power limit reasons via the PLR
mailbox.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Link: https://lore.kernel.org/r/20240527133400.483634-6-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:32:18 +03:00
Tero Kristo
811f67c516
platform/x86/intel/tpmi: Add new auxiliary driver for performance limits
...
Add new auxiliary driver that exposes the SoC performance limit reasons
via debugfs interface.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Link: https://lore.kernel.org/r/20240527133400.483634-5-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:32:09 +03:00
Srinivas Pandruvada
17ca278045
platform/x86/intel: TPMI domain id and CPU mapping
...
Each TPMI power domain includes a group of CPUs. Several power
management settings in this case applicable to a group of CPUs.
There can be several power domains in a CPU package. So, provide
interfaces for:
- Get power domain id for a Linux CPU
- Get mask of Linux CPUs in a power domain
Hardware Punit uses different CPU numbering, which is not based on
APIC (Advanced Programmable Interrupt Controller) CPU numbering.
The Linux CPU numbering is based on APIC CPU numbering. Some PM features
like Intel Speed Select, the CPU core mask provided by the hardware is
based on the Punit CPU numbering. To use the core mask, this mask
needs to be converted to a Linux CPUs mask. So, provide interfaces for:
- Convert to a Linux CPU number from a Punit CPU number
- Convert to a Punit CPU number from a Linux CPU number
On each CPU online, MSR 0x54 is used to read the mapping and stores in
a per cpu array. Create a hash for faster searching of a Linux CPU number
from a Punit CPU number.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
[tero.kristo: minor updates]
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Link: https://lore.kernel.org/r/20240528073457.497816-1-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:31:23 +03:00
Tero Kristo
d36842bacf
platform/x86/intel/tpmi: Add API to get debugfs root
...
Add new API to get the debugfs root directory for TPMI. This allows any
TPMI devices to add their own debugfs items under the same directory
structure.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Link: https://lore.kernel.org/r/20240527133400.483634-3-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:28:19 +03:00
Tero Kristo
b44d79d6ba
platform/x86/intel/tpmi: Add support for performance limit reasons
...
Add TPMI ID 0x0C (Perf Limit Reasons) to the list of supported TPMI IDs.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com >
Link: https://lore.kernel.org/r/20240527133400.483634-2-tero.kristo@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:28:17 +03:00
Srinivas Pandruvada
2f9514f005
platform/x86: ISST: Use only TPMI interface when present
...
When the TPMI interface is present, use this interface instead of legacy.
On some systems legacy IO device is also present. Using both interfaces
together is confusing and may set the hardware in inconsistent state.
When TPMI interface is present, don't load legacy drivers.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Zhang Rui <rui.zhang@intel.com >
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Link: https://lore.kernel.org/r/20240531083554.1313110-4-srinivas.pandruvada@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:24:45 +03:00
Srinivas Pandruvada
3ea025fb4b
platform/x86: ISST: Avoid some SkyLake server models
...
Some SkyLake server variants don't support any SST functionality. No use
of providing any SST related interfaces on them.
All supported SkyLake servers provide mailbox interface via MSR. So check
for the presence of MSR 0xB0 and 0xB1. If not present don't load common
module.
Move defines for MSR_OS_MAILBOX_INTERFACE and MSR_OS_MAILBOX_DATA to
common header file to avoid duplicating them.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Link: https://lore.kernel.org/r/20240531083554.1313110-3-srinivas.pandruvada@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:24:43 +03:00
Srinivas Pandruvada
1630dc626c
platform/x86: ISST: Add model specific loading for common module
...
SST common module is loaded when model specific or TPMI SST driver
registers for services. There are model specific features used in SST
common modules which are checked with a CPU model list. So, this module
is model specific.
There are some use cases where loading the common module independently
only on the supported CPU models helps. The first use case is for
preventing SST TPMI module loading if the model specific features are
not implemented. The second use case for presenting information to
user space when SST is used in OOB (Out of Band) mode.
1.
With TPMI, SST interface is architectural. This means that no need to add
new PCI device IDs for new CPU models. This means that there can be lag
in adding CPU models for the model specific features in the common
module. For example, before adding CPU model to GRANITERAPIDS_D to
hpm_cpu_ids[], SST is still functional for some features and but will
get/set wrong data for features like SST-CP. This is because IOCTL
ISST_IF_GET_PHY_ID, will not give correct mapping for newer CPU models.
So adding explicit model check during load time will prevent such cases.
For unsupported CPU models, common driver will fail to load and hence
dependent modules will not be loaded.
2.
When the SST TPMI features are controlled by some OOB agent (not from OS
interface), even if the CPU model is supported, there will be no user
space interface available for tools as SST TPMI modules will not
be loaded. User space interface is registered when TPMI modules call
isst_if_cdev_register(). Even in this case user space orchestrator
software needs to get power domain information to schedule workload and
get/set turbo ratio limits. This information is exposed by the common
module using IOCTLs ISST_IF_GET_PHY_ID and ISST_IF_MSR_COMMAND
respectively. Since the user space MSR access can be locked, direct MSR
access from the user space is not an option using /dev/cpu/*/msr.
Converge all the existing model checks to one common place and
use driver data to differentiate. On successful model check
call isst_misc_reg().
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com >
Reviewed-by: Zhang Rui <rui.zhang@intel.com >
Link: https://lore.kernel.org/r/20240531083554.1313110-2-srinivas.pandruvada@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-31 16:24:41 +03:00
Lyndon Sanche
996ad41298
platform/x86: dell-pc: Implement platform_profile
...
Some Dell laptops support configuration of preset fan modes through
smbios tables.
If the platform supports these fan modes, set up platform_profile to
change these modes. If not supported, skip enabling platform_profile.
Signed-off-by: Lyndon Sanche <lsanche@lyndeno.ca >
Link: https://lore.kernel.org/r/20240529174843.13226-4-lsanche@lyndeno.ca
[ij: Adjust #includes into alphabetical order]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-30 11:29:15 +03:00
Lyndon Sanche
33245680ae
platform/x86: dell-smbios: Move request functions for reuse
...
Move the dell_send_request and dell_fill_request symbols into smbios-base
so that they can be used in multiple modules.
Signed-off-by: Lyndon Sanche <lsanche@lyndeno.ca >
Link: https://lore.kernel.org/r/20240529174843.13226-3-lsanche@lyndeno.ca
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com >
2024-05-30 11:26:01 +03:00