All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
To: hdegoede@redhat.com, markgross@kernel.org
Cc: platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Subject: [PATCH 0/7]  Add TPMI support
Date: Wed,  1 Feb 2023 17:07:31 -0800	[thread overview]
Message-ID: <20230202010738.2186174-1-srinivas.pandruvada@linux.intel.com> (raw)

The TPMI (Topology Aware Register and PM Capsule Interface) provides a
flexible, extendable and PCIe enumerable MMIO interface for PM features.

For example Intel Speed Select Technology (Intel SST) can replace all
mailbox commands with direct MMIO access. This reduces latency for
SST commands and also defines an architectural interface which will
persist for several next generations.

Also Intel RAPL (Running Average Power Limit) provides a MMIO
interface using TPMI. This has advantage over traditional MSR
(Model Specific Register) interface, where a thread needs to be scheduled
on the target CPU to read or write. Also the RAPL features vary between
CPU models, and hence lot of model specific code. Here TPMI provides an
architectural interface by providing hierarchical tables and fields,
which will not need any model specific implementation.

Same value is for Intel Uncore frequency where MSR interface can't
be used because of multiple domains.

The TPMI interface uses a PCI VSEC structure to expose the location of
MMIO region, which is handled by Intel VSEC driver. Intel VSEC driver is
already present in upstream kernel.

This series contains the base driver, which parses TPMI MMIO region
and creates device nodes for supported features. The current set of
PM feature support includes, Intel Speed Select, RAPL, Uncore frequency
scaling.

The first there patches updates Intel VSEC driver to add TPMI VSEC ID
and enhance to reuse the code.
The next three patches adds TPMI base driver support.
The last patch adds MAINTAINERS entry.

The TPMI documentation can be downloaded from:
https://github.com/intel/tpmi_power_management

This series cleanly applies on 6.2-rc1.

Srinivas Pandruvada (7):
  platform/x86/intel/vsec: Add TPMI ID
  platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux()
  platform/x86/intel/vsec: Support private data
  platform/x86/intel: Intel TPMI enumeration driver
  platform/x86/intel/tpmi: Process CPU package mapping
  platform/x86/intel/tpmi: ADD tpmi external interface for tpmi feature
    drivers
  MAINTAINERS: Add entry for TPMI driver

 MAINTAINERS                         |   6 +
 drivers/platform/x86/intel/Kconfig  |  13 +
 drivers/platform/x86/intel/Makefile |   4 +
 drivers/platform/x86/intel/tpmi.c   | 415 ++++++++++++++++++++++++++++
 drivers/platform/x86/intel/vsec.c   |  21 +-
 drivers/platform/x86/intel/vsec.h   |   6 +
 include/linux/intel_tpmi.h          |  30 ++
 7 files changed, 490 insertions(+), 5 deletions(-)
 create mode 100644 drivers/platform/x86/intel/tpmi.c
 create mode 100644 include/linux/intel_tpmi.h

-- 
2.31.1


             reply	other threads:[~2023-02-02  1:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-02  1:07 Srinivas Pandruvada [this message]
2023-02-02  1:07 ` [PATCH 1/7] platform/x86/intel/vsec: Add TPMI ID Srinivas Pandruvada
2023-02-02  1:07 ` [PATCH 2/7] platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux() Srinivas Pandruvada
2023-02-02  1:07 ` [PATCH 3/7] platform/x86/intel/vsec: Support private data Srinivas Pandruvada
2023-02-02  1:07 ` [PATCH 4/7] platform/x86/intel: Intel TPMI enumeration driver Srinivas Pandruvada
2023-02-02  1:07 ` [PATCH 5/7] platform/x86/intel/tpmi: Process CPU package mapping Srinivas Pandruvada
2023-02-02  1:07 ` [PATCH 6/7] platform/x86/intel/tpmi: ADD tpmi external interface for tpmi feature drivers Srinivas Pandruvada
2023-02-02  1:07 ` [PATCH 7/7] MAINTAINERS: Add entry for TPMI driver Srinivas Pandruvada
2023-02-06 12:50   ` Hans de Goede
2023-02-06 12:49 ` [PATCH 0/7] Add TPMI support Hans de Goede
2023-02-06 12:55   ` Hans de Goede
2023-02-06 13:29     ` srinivas pandruvada
2023-02-10  8:04   ` srinivas pandruvada
2023-02-10 14:24     ` Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230202010738.2186174-1-srinivas.pandruvada@linux.intel.com \
    --to=srinivas.pandruvada@linux.intel.com \
    --cc=hdegoede@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markgross@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.