linux/drivers
Rafael J. Wysocki 24030742a7 cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores
commit f5c8cf2a49 upstream.

Commit 46573fd636 ("cpufreq: intel_pstate: hybrid: Rework HWP
calibration") attempted to use the information from CPPC (the nominal
performance in particular) to obtain the scaling factor allowing the
frequency to be computed if the HWP performance level of the given CPU
is known or vice versa.

However, it turns out that on some platforms this doesn't work, because
the CPPC information on them does not align with the contents of the
MSR_HWP_CAPABILITIES registers.

This basically means that the only way to make intel_pstate work on all
of the hybrid platforms to date is to use the observation that on all
of them the scaling factor between the HWP performance levels and
frequency for P-cores is 78741 (approximately 100000/1.27).  For
E-cores it is 100000, which is the same as for all of the non-hybrid
"core" platforms and does not require any changes.

Accordingly, make intel_pstate use 78741 as the scaling factor between
HWP performance levels and frequency for P-cores on all hybrid platforms
and drop the dependency of the HWP calibration code on CPPC.

Fixes: 46573fd636 ("cpufreq: intel_pstate: hybrid: Rework HWP calibration")
Reported-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tested-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: 5.15+ <stable@vger.kernel.org> # 5.15+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-03 23:59:12 +09:00
..
accessibility tty: the rest, stop using tty_schedule_flip() 2022-07-29 17:25:32 +02:00
acpi ACPI: video: Force backlight native for more TongFang devices 2022-10-29 10:12:58 +02:00
amba
android binder: remove inaccurate mmap_assert_locked() 2022-09-23 14:15:49 +02:00
ata ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS 2022-10-29 10:12:54 +02:00
atm atm: idt77252: fix use-after-free bugs caused by tst_timer 2022-08-25 11:40:15 +02:00
auxdisplay
base arm64: topology: move store_cpu_topology() to shared code 2022-10-26 12:34:22 +02:00
bcma
block nbd: Fix hung when signal interrupts nbd_start_device_ioctl() 2022-10-26 12:35:47 +02:00
bluetooth Bluetooth: btintel: Mark Intel controller to support LE_STATES quirk 2022-10-26 12:35:35 +02:00
bus bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe() 2022-08-17 14:23:10 +02:00
cdrom
char hwrng: imx-rngc - Moving IRQ handler registering after imx_rngc_irq_mask_clear() 2022-10-26 12:35:24 +02:00
clk clk: bcm2835: Round UART input clock up 2022-10-26 12:35:52 +02:00
clocksource clocksource/drivers/ixp4xx: remove EXPORT_SYMBOL_GPL from ixp4xx_timer_setup() 2022-07-07 17:53:32 +02:00
comedi comedi: vmk80xx: fix expression for tx buffer size 2022-06-22 14:22:03 +02:00
connector
counter
cpufreq cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores 2022-11-03 23:59:12 +09:00
cpuidle
crypto crypto: cavium - prevent integer overflow loading firmware 2022-10-26 12:35:28 +02:00
cxl cxl/port: Hold port reference until decoder release 2022-07-12 16:34:58 +02:00
dax devdax: Fix soft-reservation memory description 2022-09-28 11:11:57 +02:00
dca
devfreq PM / devfreq: exynos-ppmu: Fix refcount leak in of_get_devfreq_events 2022-07-07 17:53:27 +02:00
dio
dma dmaengine: ti: k3-udma: Reset UDMA_CHAN_RT byte counters to prevent overflow 2022-10-26 12:35:46 +02:00
dma-buf udmabuf: Set ubuf->sg = NULL if the creation of sg table fails 2022-10-26 12:35:39 +02:00
edac EDAC/ghes: Set the DIMM label unconditionally 2022-08-03 12:03:55 +02:00
eisa
extcon extcon: Modify extcon device to be created after driver data is set 2022-06-14 18:36:22 +02:00
firewire
firmware firmware: google: Test spinlock on panic path to avoid lockups 2022-10-26 12:35:15 +02:00
fpga fpga: prevent integer overflow in dfl_feature_ioctl_set_irq() 2022-10-26 12:35:07 +02:00
fsi fsi: core: Check error number after calling ida_simple_get 2022-10-26 12:35:17 +02:00
gnss
gpio gpio: rockchip: request GPIO mux to pinctrl when setting direction 2022-10-26 12:34:26 +02:00
gpu drm/vc4: Add module dependency on hdmi-codec 2022-10-29 10:12:55 +02:00
greybus
hid HID: magicmouse: Do not set BTN_MOUSE on double report 2022-10-29 10:12:55 +02:00
hsi HSI: omap_ssi_port: Fix dma_map_sg error check 2022-10-26 12:35:05 +02:00
hv Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region 2022-09-28 11:11:55 +02:00
hwmon hwmon/coretemp: Handle large core ID value 2022-10-29 10:12:54 +02:00
hwspinlock
hwtracing coresight: etm4x: avoid build failure with unrolled loops 2022-08-25 11:40:35 +02:00
i2c i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter 2022-10-29 10:12:54 +02:00
i3c
idle intel_idle: Disable IBRS during long idle 2022-07-23 12:54:04 +02:00
iio iio: adxl372: Fix unsafe buffer attributes 2022-11-03 23:59:12 +09:00
infiniband RDMA/rxe: Fix resize_finish() in rxe_queue.c 2022-10-26 12:35:16 +02:00
input Input: xpad - fix wireless 360 controller breaking after suspend 2022-10-15 07:59:04 +02:00
interconnect interconnect: imx: fix max_node_id 2022-08-17 14:23:53 +02:00
iommu iommu/vt-d: Clean up si_domain in the init_dmars() error path 2022-10-29 10:12:57 +02:00
ipack
irqchip irqchip/tegra: Fix overflow implicit truncation warnings 2022-08-25 11:40:32 +02:00
isdn mISDN: fix use-after-free bugs in l1oip timer handlers 2022-10-26 12:34:47 +02:00
leds leds: lm3601x: Don't use mutex after it was destroyed 2022-10-26 12:34:39 +02:00
macintosh macintosh/adb: fix oob read in do_adb_query() function 2022-08-11 13:07:54 +02:00
mailbox mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg 2022-10-26 12:35:21 +02:00
mcb
md dm: remove unnecessary assignment statement in alloc_dev() 2022-10-29 10:12:56 +02:00
media media: venus: dec: Handle the case where find_format fails 2022-10-29 10:12:55 +02:00
memory memory: of: Fix refcount leak bug in of_lpddr3_get_ddr_timings() 2022-10-26 12:34:58 +02:00
memstick memstick/ms_block: Fix a memory leak 2022-08-17 14:23:50 +02:00
message
mfd mfd: sm501: Add check for platform_driver_register() 2022-10-26 12:35:18 +02:00
misc misc: ocxl: fix possible refcount leak in afu_ioctl() 2022-10-26 12:35:07 +02:00
mmc mmc: core: Add SD card quirk for broken discard 2022-10-29 10:12:58 +02:00
most
mtd mtd: rawnand: marvell: Use correct logic for nand-keep-config 2022-11-03 23:59:11 +09:00
mux
net can: kvaser_usb: Fix possible completions during init_completion 2022-11-03 23:59:10 +09:00
nfc nfc: pn533: Fix use-after-free bugs caused by pn532_cmd_timeout 2022-08-31 17:16:38 +02:00
ntb NTB: ntb_tool: uninitialized heap data in tool_fn_write() 2022-08-25 11:40:14 +02:00
nubus
nvdimm nvdimm: Fix badblocks clear off-by-one error 2022-07-07 17:53:24 +02:00
nvme nvmet: fix workqueue MEM_RECLAIM flushing dependency 2022-10-29 10:12:56 +02:00
nvmem nvmem: core: Fix memleak in nvmem_register() 2022-10-26 12:34:23 +02:00
of of: fdt: fix off-by-one error in unflatten_dt_nodes() 2022-09-23 14:15:46 +02:00
opp opp: Fix error check in dev_pm_opp_attach_genpd() 2022-08-17 14:24:01 +02:00
parisc parisc: ccio-dma: Add missing iounmap in error path in ccio_probe() 2022-09-23 14:15:48 +02:00
parport
pci PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge 2022-10-26 12:34:24 +02:00
pcmcia pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards 2022-06-14 18:36:02 +02:00
perf perf/arm_pmu_platform: fix tests for platform_get_irq() failure 2022-09-20 12:39:45 +02:00
phy phy: qualcomm: call clk_disable_unprepare in the error handling 2022-10-26 12:35:14 +02:00
pinctrl pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback 2022-10-26 12:34:26 +02:00
platform platform/x86: msi-laptop: Change DMI match / alias strings to fix module autoloading 2022-10-26 12:35:40 +02:00
pnp
power power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type() 2022-10-26 12:35:47 +02:00
powercap powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue 2022-10-26 12:35:30 +02:00
pps
ps3
ptp
pwm pwm: lpc18xx: Fix period handling 2022-08-17 14:23:16 +02:00
rapidio
ras
regulator regulator: core: Prevent integer underflow 2022-10-26 12:35:35 +02:00
remoteproc remoteproc: sysmon: Wait for SSCTL service to come up 2022-08-17 14:24:09 +02:00
reset reset: imx7: Fix the iMX8MP PCIe PHY PERST support 2022-10-05 10:39:40 +02:00
rpmsg rpmsg: qcom: glink: replace strncpy() with strscpy_pad() 2022-10-12 09:53:28 +02:00
rtc rtc: rx8025: fix 12/24 hour mode detection on RX-8035 2022-08-17 14:22:53 +02:00
s390 s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup 2022-09-28 11:11:54 +02:00
sbus
scsi scsi: lpfc: Fix memory leak in lpfc_create_port() 2022-10-29 10:12:56 +02:00
sh
siox
slimbus slimbus: qcom-ngd-ctrl: allow compile testing without QCOM_RPROC_COMMON 2022-10-26 12:35:14 +02:00
soc soc/tegra: fuse: Drop Kconfig dependency on TEGRA20_APB_DMA 2022-10-26 12:35:00 +02:00
soundwire soundwire: intel: fix error handling on dai registration issues 2022-10-26 12:35:48 +02:00
spi spi: Ensure that sg_table won't be used after being freed 2022-10-26 12:34:48 +02:00
spmi spmi: pmic-arb: correct duplicate APID to PPID mapping logic 2022-10-26 12:35:19 +02:00
ssb
staging media: ipu3-imgu: Fix NULL pointer dereference in active selection access 2022-10-29 10:12:54 +02:00
target target: remove an incorrect unmap zeroes data deduction 2022-06-09 10:22:47 +02:00
tc
tee tee: fix compiler warning in tee_shm_register() 2022-09-15 11:30:03 +02:00
thermal thermal: intel_powerclamp: Use first online CPU as control_cpu 2022-10-26 12:35:56 +02:00
thunderbolt thunderbolt: Add back Intel Falcon Ridge end-to-end flow control workaround 2022-10-26 12:35:34 +02:00
tty serial: 8250: Fix restoring termios speed after suspend 2022-10-26 12:35:15 +02:00
uio
usb xhci: Remove device endpoints from bandwidth list when freeing the device 2022-11-03 23:59:11 +09:00
vdpa vdpa/ifcvf: fix the calculation of queuepair 2022-10-05 10:39:43 +02:00
vfio vfio/type1: Unpin zero pages 2022-09-15 11:30:02 +02:00
vhost vhost/vsock: Use kvmalloc/kvfree for larger packets. 2022-10-26 12:34:47 +02:00
video fbdev: smscufx: Fix several use-after-free bugs 2022-11-03 23:59:12 +09:00
virt vboxguest: Do not use devm for irq 2022-08-25 11:40:33 +02:00
virtio virtio_mmio: Restore guest page size on resume 2022-07-21 21:24:33 +02:00
visorbus
vlynq
vme
w1
watchdog watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe() 2022-08-17 14:24:11 +02:00
xen xen/gntdev: Accommodate VMA splitting 2022-10-26 12:34:24 +02:00
zorro
Kconfig
Makefile