LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 00/15] stm class/intel_th: Updates for v6.10
@ 2024-04-29 13:01 Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 01/15] stm class: Fix a double free in stm_register_device() Alexander Shishkin
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman; +Cc: linux-kernel, Alexander Shishkin

Hi Greg,

Here are the patches I have for the next cycle. The bulk of them are new
PCI IDs. Besides that, there are cosmetic changes, one actual bugfix and
a new feature added to the SyS-T protocol driver that uses a specially
designated format for ftrace data. I re-added Uwe's patch converting
platform device's remove: dropping it was a brainfart on my part.
Please consider applying. Thanks!

Alexander Shishkin (6):
  intel_th: pci: Add Granite Rapids support
  intel_th: pci: Add Granite Rapids SOC support
  intel_th: pci: Add Sapphire Rapids SOC support
  intel_th: pci: Add Meteor Lake-S support
  intel_th: pci: Add Meteor Lake-S CPU support
  intel_th: pci: Add Lunar Lake support

Colin Ian King (1):
  intel_th: Remove redundant initialization of pointer outp

Dan Carpenter (1):
  stm class: Fix a double free in stm_register_device()

Li Zhijian (1):
  intel_th: Convert sprintf/snprintf to sysfs_emit

Mikhail Lappo (3):
  stm class: Add source type
  stm class: Propagate source type to protocols
  stm class: sys-t: Improve ftrace source handling

Randy Dunlap (1):
  intel_th: msu: Fix kernel-doc warnings

Ricardo B. Marliere (1):
  intel_th: Constify the struct device_type usage

Uwe Kleine-König (1):
  intel_th: Convert to platform remove callback returning void

 drivers/hwtracing/intel_th/acpi.c |  6 +-
 drivers/hwtracing/intel_th/core.c |  8 +--
 drivers/hwtracing/intel_th/gth.c  |  8 +--
 drivers/hwtracing/intel_th/msu.c  | 12 +++-
 drivers/hwtracing/intel_th/pci.c  | 30 ++++++++++
 drivers/hwtracing/intel_th/sth.c  |  2 +-
 drivers/hwtracing/stm/console.c   |  1 +
 drivers/hwtracing/stm/core.c      | 19 ++++---
 drivers/hwtracing/stm/ftrace.c    |  1 +
 drivers/hwtracing/stm/heartbeat.c |  1 +
 drivers/hwtracing/stm/p_basic.c   |  3 +-
 drivers/hwtracing/stm/p_sys-t.c   | 93 ++++++++++++++++++++++++++++---
 drivers/hwtracing/stm/stm.h       |  2 +-
 include/linux/stm.h               | 12 ++++
 14 files changed, 164 insertions(+), 34 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v1 01/15] stm class: Fix a double free in stm_register_device()
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 02/15] stm class: Add source type Alexander Shishkin
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Dan Carpenter, Amelie Delaunay, Andy Shevchenko,
	Alexander Shishkin

From: Dan Carpenter <dan.carpenter@linaro.org>

The put_device(&stm->dev) call will trigger stm_device_release() which
frees "stm" so the vfree(stm) on the next line is a double free.

Fixes: 389b6699a2aa ("stm class: Fix stm device initialization order")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
---
 drivers/hwtracing/stm/core.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c
index 534fbefc7f6a..20895d391562 100644
--- a/drivers/hwtracing/stm/core.c
+++ b/drivers/hwtracing/stm/core.c
@@ -868,8 +868,11 @@ int stm_register_device(struct device *parent, struct stm_data *stm_data,
 		return -ENOMEM;
 
 	stm->major = register_chrdev(0, stm_data->name, &stm_fops);
-	if (stm->major < 0)
-		goto err_free;
+	if (stm->major < 0) {
+		err = stm->major;
+		vfree(stm);
+		return err;
+	}
 
 	device_initialize(&stm->dev);
 	stm->dev.devt = MKDEV(stm->major, 0);
@@ -913,10 +916,8 @@ int stm_register_device(struct device *parent, struct stm_data *stm_data,
 err_device:
 	unregister_chrdev(stm->major, stm_data->name);
 
-	/* matches device_initialize() above */
+	/* calls stm_device_release() */
 	put_device(&stm->dev);
-err_free:
-	vfree(stm);
 
 	return err;
 }
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 02/15] stm class: Add source type
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 01/15] stm class: Fix a double free in stm_register_device() Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 03/15] stm class: Propagate source type to protocols Alexander Shishkin
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Mikhail Lappo, Alexander Shishkin, Andy Shevchenko

From: Mikhail Lappo <miklelappo@gmail.com>

Currently kernel HW tracing infrastrtucture and specifically its SyS-T
part treats all source data in the same way. Treating and encoding
different trace data sources differently might allow decoding software
to make use of e.g. ftrace event ids by converting them to a SyS-T
message catalog.

The solution is to keep source type stored within stm_source_data
structure to allow different handling by stm output/protocol.
Currently we only differentiate between STM_USER and STM_FTRACE sources.

Signed-off-by: Mikhail Lappo <miklelappo@gmail.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/stm/console.c   |  1 +
 drivers/hwtracing/stm/ftrace.c    |  1 +
 drivers/hwtracing/stm/heartbeat.c |  1 +
 include/linux/stm.h               | 12 ++++++++++++
 4 files changed, 15 insertions(+)

diff --git a/drivers/hwtracing/stm/console.c b/drivers/hwtracing/stm/console.c
index a00f65e21747..097a00ac43a7 100644
--- a/drivers/hwtracing/stm/console.c
+++ b/drivers/hwtracing/stm/console.c
@@ -22,6 +22,7 @@ static struct stm_console {
 	.data	= {
 		.name		= "console",
 		.nr_chans	= 1,
+		.type		= STM_USER,
 		.link		= stm_console_link,
 		.unlink		= stm_console_unlink,
 	},
diff --git a/drivers/hwtracing/stm/ftrace.c b/drivers/hwtracing/stm/ftrace.c
index 3bb606dfa634..a7cea7ea0163 100644
--- a/drivers/hwtracing/stm/ftrace.c
+++ b/drivers/hwtracing/stm/ftrace.c
@@ -23,6 +23,7 @@ static struct stm_ftrace {
 	.data	= {
 		.name		= "ftrace",
 		.nr_chans	= STM_FTRACE_NR_CHANNELS,
+		.type		= STM_FTRACE,
 		.link		= stm_ftrace_link,
 		.unlink		= stm_ftrace_unlink,
 	},
diff --git a/drivers/hwtracing/stm/heartbeat.c b/drivers/hwtracing/stm/heartbeat.c
index 81d7b21d31ec..e9496fe97baa 100644
--- a/drivers/hwtracing/stm/heartbeat.c
+++ b/drivers/hwtracing/stm/heartbeat.c
@@ -78,6 +78,7 @@ static int stm_heartbeat_init(void)
 		}
 
 		stm_heartbeat[i].data.nr_chans	= 1;
+		stm_heartbeat[i].data.type	= STM_USER;
 		stm_heartbeat[i].data.link	= stm_heartbeat_link;
 		stm_heartbeat[i].data.unlink	= stm_heartbeat_unlink;
 		hrtimer_init(&stm_heartbeat[i].hrtimer, CLOCK_MONOTONIC,
diff --git a/include/linux/stm.h b/include/linux/stm.h
index 3b22689512be..2fcbef9608f6 100644
--- a/include/linux/stm.h
+++ b/include/linux/stm.h
@@ -30,6 +30,16 @@ enum stp_packet_flags {
 	STP_PACKET_TIMESTAMPED	= 0x2,
 };
 
+/**
+ * enum stm_source_type - STM source driver
+ * @STM_USER: any STM trace source
+ * @STM_FTRACE: ftrace STM source
+ */
+enum stm_source_type {
+	STM_USER,
+	STM_FTRACE,
+};
+
 struct stp_policy;
 
 struct stm_device;
@@ -106,6 +116,7 @@ struct stm_source_device;
  * @name:	device name, will be used for policy lookup
  * @src:	internal structure, only used by stm class code
  * @nr_chans:	number of channels to allocate
+ * @type:	type of STM source driver represented by stm_source_type
  * @link:	called when this source gets linked to an STM device
  * @unlink:	called when this source is about to get unlinked from its STM
  *
@@ -117,6 +128,7 @@ struct stm_source_data {
 	struct stm_source_device *src;
 	unsigned int		percpu;
 	unsigned int		nr_chans;
+	unsigned int		type;
 	int			(*link)(struct stm_source_data *data);
 	void			(*unlink)(struct stm_source_data *data);
 };
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 03/15] stm class: Propagate source type to protocols
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 01/15] stm class: Fix a double free in stm_register_device() Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 02/15] stm class: Add source type Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 04/15] stm class: sys-t: Improve ftrace source handling Alexander Shishkin
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Mikhail Lappo, Alexander Shishkin, Andy Shevchenko

From: Mikhail Lappo <miklelappo@gmail.com>

Pass stm source type via stm_write() to allow different handling on
protocol level.

The measure above should allow protocol level encoder to differentiate
and accordingly pack the messages. As an example SyS-T might get use of
ftrace message ID's and instead of applying regular header, pack them
as SyS-T catalog or SyS-T Structured Binary Data message to allow proper
decoding on the other side.

Signed-off-by: Mikhail Lappo <miklelappo@gmail.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/stm/core.c    | 8 ++++----
 drivers/hwtracing/stm/p_basic.c | 3 ++-
 drivers/hwtracing/stm/p_sys-t.c | 3 ++-
 drivers/hwtracing/stm/stm.h     | 2 +-
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c
index 20895d391562..ccf39a80dc4f 100644
--- a/drivers/hwtracing/stm/core.c
+++ b/drivers/hwtracing/stm/core.c
@@ -600,7 +600,7 @@ EXPORT_SYMBOL_GPL(stm_data_write);
 
 static ssize_t notrace
 stm_write(struct stm_device *stm, struct stm_output *output,
-	  unsigned int chan, const char *buf, size_t count)
+	  unsigned int chan, const char *buf, size_t count, struct stm_source_data *source)
 {
 	int err;
 
@@ -608,7 +608,7 @@ stm_write(struct stm_device *stm, struct stm_output *output,
 	if (!stm->pdrv)
 		return -ENODEV;
 
-	err = stm->pdrv->write(stm->data, output, chan, buf, count);
+	err = stm->pdrv->write(stm->data, output, chan, buf, count, source);
 	if (err < 0)
 		return err;
 
@@ -657,7 +657,7 @@ static ssize_t stm_char_write(struct file *file, const char __user *buf,
 
 	pm_runtime_get_sync(&stm->dev);
 
-	count = stm_write(stm, &stmf->output, 0, kbuf, count);
+	count = stm_write(stm, &stmf->output, 0, kbuf, count, NULL);
 
 	pm_runtime_mark_last_busy(&stm->dev);
 	pm_runtime_put_autosuspend(&stm->dev);
@@ -1299,7 +1299,7 @@ int notrace stm_source_write(struct stm_source_data *data,
 
 	stm = srcu_dereference(src->link, &stm_source_srcu);
 	if (stm)
-		count = stm_write(stm, &src->output, chan, buf, count);
+		count = stm_write(stm, &src->output, chan, buf, count, data);
 	else
 		count = -ENODEV;
 
diff --git a/drivers/hwtracing/stm/p_basic.c b/drivers/hwtracing/stm/p_basic.c
index 8980a6a5fd6c..5525c975cc6f 100644
--- a/drivers/hwtracing/stm/p_basic.c
+++ b/drivers/hwtracing/stm/p_basic.c
@@ -10,7 +10,8 @@
 #include "stm.h"
 
 static ssize_t basic_write(struct stm_data *data, struct stm_output *output,
-			   unsigned int chan, const char *buf, size_t count)
+			   unsigned int chan, const char *buf, size_t count,
+			   struct stm_source_data *source)
 {
 	unsigned int c = output->channel + chan;
 	unsigned int m = output->master;
diff --git a/drivers/hwtracing/stm/p_sys-t.c b/drivers/hwtracing/stm/p_sys-t.c
index 8254971c02e7..5b4b9f350ec1 100644
--- a/drivers/hwtracing/stm/p_sys-t.c
+++ b/drivers/hwtracing/stm/p_sys-t.c
@@ -285,7 +285,8 @@ sys_t_clock_sync(struct stm_data *data, unsigned int m, unsigned int c)
 }
 
 static ssize_t sys_t_write(struct stm_data *data, struct stm_output *output,
-			   unsigned int chan, const char *buf, size_t count)
+			   unsigned int chan, const char *buf, size_t count,
+			   struct stm_source_data *source)
 {
 	struct sys_t_output *op = output->pdrv_private;
 	unsigned int c = output->channel + chan;
diff --git a/drivers/hwtracing/stm/stm.h b/drivers/hwtracing/stm/stm.h
index a9be49fc7a6b..85dda6e0d10c 100644
--- a/drivers/hwtracing/stm/stm.h
+++ b/drivers/hwtracing/stm/stm.h
@@ -96,7 +96,7 @@ struct stm_protocol_driver {
 	const char	*name;
 	ssize_t		(*write)(struct stm_data *data,
 				 struct stm_output *output, unsigned int chan,
-				 const char *buf, size_t count);
+				 const char *buf, size_t count, struct stm_source_data *source);
 	void		(*policy_node_init)(void *arg);
 	int		(*output_open)(void *priv, struct stm_output *output);
 	void		(*output_close)(struct stm_output *output);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 04/15] stm class: sys-t: Improve ftrace source handling
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (2 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 03/15] stm class: Propagate source type to protocols Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 05/15] intel_th: Convert to platform remove callback returning void Alexander Shishkin
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Mikhail Lappo, Alexander Shishkin, Andy Shevchenko

From: Mikhail Lappo <miklelappo@gmail.com>

Package messages from ftrace source with SyS-T Structured Binary Data
(later SBD) header and 64-bit ID. This provides modification-free
compatibility between ftrace and SyS-T arguments structure by applying
0xFFFF mask on message ID.

This happens due to the fact that SBD and ftrace structures have the
same principle of data storage: <header><args binary blob>.

The headers are bit-to-bit compatible and both contain event/catalog ID
with the exception, that ftrace header contains more fields within 64
bits which needs to be masked during encoding process, since SBD
standard doesn't support mask of ID field.

        0       15  16   23  24     31  32   39  40  63
ftrace: <event_id>  <flags>  <preempt>  <-pid->  <---->
SBD:    <------- msg_id ------------------------------>

Signed-off-by: Mikhail Lappo <miklelappo@gmail.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/stm/p_sys-t.c | 90 ++++++++++++++++++++++++++++++---
 1 file changed, 83 insertions(+), 7 deletions(-)

diff --git a/drivers/hwtracing/stm/p_sys-t.c b/drivers/hwtracing/stm/p_sys-t.c
index 5b4b9f350ec1..1e75aa0025a3 100644
--- a/drivers/hwtracing/stm/p_sys-t.c
+++ b/drivers/hwtracing/stm/p_sys-t.c
@@ -20,6 +20,7 @@ enum sys_t_message_type {
 	MIPI_SYST_TYPE_RAW	= 6,
 	MIPI_SYST_TYPE_SHORT64,
 	MIPI_SYST_TYPE_CLOCK,
+	MIPI_SYST_TYPE_SBD,
 };
 
 enum sys_t_message_severity {
@@ -53,6 +54,19 @@ enum sys_t_message_string_subtype {
 	MIPI_SYST_STRING_PRINTF_64	= 12,
 };
 
+/**
+ * enum sys_t_message_sbd_subtype - SyS-T SBD message subtypes
+ * @MIPI_SYST_SBD_ID32: SBD message with 32-bit message ID
+ * @MIPI_SYST_SBD_ID64: SBD message with 64-bit message ID
+ *
+ * Structured Binary Data messages can send information of arbitrary length,
+ * together with ID's that describe BLOB's content and layout.
+ */
+enum sys_t_message_sbd_subtype {
+	MIPI_SYST_SBD_ID32 = 0,
+	MIPI_SYST_SBD_ID64 = 1,
+};
+
 #define MIPI_SYST_TYPE(t)		((u32)(MIPI_SYST_TYPE_ ## t))
 #define MIPI_SYST_SEVERITY(s)		((u32)(MIPI_SYST_SEVERITY_ ## s) << 4)
 #define MIPI_SYST_OPT_LOC		BIT(8)
@@ -75,6 +89,20 @@ enum sys_t_message_string_subtype {
 #define CLOCK_SYNC_HEADER	(MIPI_SYST_TYPES(CLOCK, TRANSPORT_SYNC)	| \
 				 MIPI_SYST_SEVERITY(MAX))
 
+/*
+ * SyS-T and ftrace headers are compatible to an extent that ftrace event ID
+ * and args can be treated as SyS-T SBD message with 64-bit ID and arguments
+ * BLOB right behind the header without modification. Bits [16:63] coming
+ * together with message ID from ftrace aren't used by SBD and must be zeroed.
+ *
+ *         0       15  16   23  24     31  32   39  40  63
+ * ftrace: <event_id>  <flags>  <preempt>  <-pid->  <----> <args>
+ * SBD:    <------- msg_id ------------------------------> <BLOB>
+ */
+#define SBD_HEADER (MIPI_SYST_TYPES(SBD, ID64) | \
+			 MIPI_SYST_SEVERITY(INFO)		| \
+			 MIPI_SYST_OPT_GUID)
+
 struct sys_t_policy_node {
 	uuid_t		uuid;
 	bool		do_len;
@@ -284,6 +312,59 @@ sys_t_clock_sync(struct stm_data *data, unsigned int m, unsigned int c)
 	return sizeof(header) + sizeof(payload);
 }
 
+static inline u32 sys_t_header(struct stm_source_data *source)
+{
+	if (source && source->type == STM_FTRACE)
+		return SBD_HEADER;
+	return DATA_HEADER;
+}
+
+static ssize_t sys_t_write_data(struct stm_data *data,
+				struct stm_source_data *source,
+				unsigned int master, unsigned int channel,
+				bool ts_first, const void *buf, size_t count)
+{
+	ssize_t sz;
+	const unsigned char nil = 0;
+
+	/*
+	 * Ftrace is zero-copy compatible with SyS-T SBD, but requires
+	 * special handling of first 64 bits. Trim and send them separately
+	 * to avoid damage on original ftrace buffer.
+	 */
+	if (source && source->type == STM_FTRACE) {
+		u64 compat_ftrace_header;
+		ssize_t header_sz;
+		ssize_t buf_sz;
+
+		if (count < sizeof(compat_ftrace_header))
+			return -EINVAL;
+
+		/* SBD only makes use of low 16 bits (event ID) from ftrace event */
+		compat_ftrace_header = *(u64 *)buf & 0xffff;
+		header_sz = stm_data_write(data, master, channel, false,
+					   &compat_ftrace_header,
+					   sizeof(compat_ftrace_header));
+		if (header_sz != sizeof(compat_ftrace_header))
+			return header_sz;
+
+		buf_sz = stm_data_write(data, master, channel, false,
+					buf + header_sz, count - header_sz);
+		if (buf_sz != count - header_sz)
+			return buf_sz;
+		sz = header_sz + buf_sz;
+	} else {
+		sz = stm_data_write(data, master, channel, false, buf, count);
+	}
+
+	if (sz <= 0)
+		return sz;
+
+	data->packet(data, master, channel, STP_PACKET_FLAG, 0, 0, &nil);
+
+	return sz;
+}
+
 static ssize_t sys_t_write(struct stm_data *data, struct stm_output *output,
 			   unsigned int chan, const char *buf, size_t count,
 			   struct stm_source_data *source)
@@ -291,8 +372,7 @@ static ssize_t sys_t_write(struct stm_data *data, struct stm_output *output,
 	struct sys_t_output *op = output->pdrv_private;
 	unsigned int c = output->channel + chan;
 	unsigned int m = output->master;
-	const unsigned char nil = 0;
-	u32 header = DATA_HEADER;
+	u32 header = sys_t_header(source);
 	u8 uuid[UUID_SIZE];
 	ssize_t sz;
 
@@ -349,11 +429,7 @@ static ssize_t sys_t_write(struct stm_data *data, struct stm_output *output,
 	}
 
 	/* DATA */
-	sz = stm_data_write(data, m, c, false, buf, count);
-	if (sz > 0)
-		data->packet(data, m, c, STP_PACKET_FLAG, 0, 0, &nil);
-
-	return sz;
+	return sys_t_write_data(data, source, m, c, false, buf, count);
 }
 
 static const struct stm_protocol_driver sys_t_pdrv = {
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 05/15] intel_th: Convert to platform remove callback returning void
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (3 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 04/15] stm class: sys-t: Improve ftrace source handling Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 06/15] intel_th: Constify the struct device_type usage Alexander Shishkin
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Uwe Kleine-König, Alexander Shishkin,
	Andy Shevchenko

From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

The .remove() callback for a platform driver returns an int which makes
many driver authors wrongly assume it's possible to do error handling by
returning an error code. However the value returned is ignored (apart
from emitting a warning) and this typically results in resource leaks.

To improve here there is a quest to make the remove callback return
void. In the first step of this quest all drivers are converted to
.remove_new(), which already returns void. Eventually after all drivers
are converted, .remove_new() will be renamed to .remove().

Trivially convert this driver from always returning zero in the remove
callback to the void returning variant.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/intel_th/acpi.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/hwtracing/intel_th/acpi.c b/drivers/hwtracing/intel_th/acpi.c
index 87f9024e4bbb..503620e9fd10 100644
--- a/drivers/hwtracing/intel_th/acpi.c
+++ b/drivers/hwtracing/intel_th/acpi.c
@@ -60,18 +60,16 @@ static int intel_th_acpi_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int intel_th_acpi_remove(struct platform_device *pdev)
+static void intel_th_acpi_remove(struct platform_device *pdev)
 {
 	struct intel_th *th = platform_get_drvdata(pdev);
 
 	intel_th_free(th);
-
-	return 0;
 }
 
 static struct platform_driver intel_th_acpi_driver = {
 	.probe		= intel_th_acpi_probe,
-	.remove		= intel_th_acpi_remove,
+	.remove_new	= intel_th_acpi_remove,
 	.driver		= {
 		.name			= DRIVER_NAME,
 		.acpi_match_table	= intel_th_acpi_ids,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 06/15] intel_th: Constify the struct device_type usage
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (4 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 05/15] intel_th: Convert to platform remove callback returning void Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 07/15] intel_th: Convert sprintf/snprintf to sysfs_emit Alexander Shishkin
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Ricardo B. Marliere, Alexander Shishkin,
	Andy Shevchenko

From: "Ricardo B. Marliere" <ricardo@marliere.net>

Since commit aed65af1cc2f ("drivers: make device_type const"), the driver
core can properly handle constant struct device_type. Move the
intel_th_source_device_type, intel_th_output_device_type,
intel_th_switch_device_type and intel_th_device_type variables to be
constant structures as well, placing it into read-only memory which can not
be modified at runtime.

Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/intel_th/core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/hwtracing/intel_th/core.c b/drivers/hwtracing/intel_th/core.c
index cc7f879bb175..3511f3618f2d 100644
--- a/drivers/hwtracing/intel_th/core.c
+++ b/drivers/hwtracing/intel_th/core.c
@@ -180,7 +180,7 @@ static void intel_th_device_release(struct device *dev)
 	intel_th_device_free(to_intel_th_device(dev));
 }
 
-static struct device_type intel_th_source_device_type = {
+static const struct device_type intel_th_source_device_type = {
 	.name		= "intel_th_source_device",
 	.release	= intel_th_device_release,
 };
@@ -333,19 +333,19 @@ static struct attribute *intel_th_output_attrs[] = {
 
 ATTRIBUTE_GROUPS(intel_th_output);
 
-static struct device_type intel_th_output_device_type = {
+static const struct device_type intel_th_output_device_type = {
 	.name		= "intel_th_output_device",
 	.groups		= intel_th_output_groups,
 	.release	= intel_th_device_release,
 	.devnode	= intel_th_output_devnode,
 };
 
-static struct device_type intel_th_switch_device_type = {
+static const struct device_type intel_th_switch_device_type = {
 	.name		= "intel_th_switch_device",
 	.release	= intel_th_device_release,
 };
 
-static struct device_type *intel_th_device_type[] = {
+static const struct device_type *intel_th_device_type[] = {
 	[INTEL_TH_SOURCE]	= &intel_th_source_device_type,
 	[INTEL_TH_OUTPUT]	= &intel_th_output_device_type,
 	[INTEL_TH_SWITCH]	= &intel_th_switch_device_type,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 07/15] intel_th: Convert sprintf/snprintf to sysfs_emit
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (5 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 06/15] intel_th: Constify the struct device_type usage Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 08/15] intel_th: Remove redundant initialization of pointer outp Alexander Shishkin
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Li Zhijian, Alexander Shishkin, Andy Shevchenko

From: Li Zhijian <lizhijian@fujitsu.com>

Per filesystems/sysfs.rst, show() should only use sysfs_emit()
or sysfs_emit_at() when formatting the value to be returned to user space.

coccinelle complains that there are still a couple of functions that use
snprintf(). Convert them to sysfs_emit().

sprintf() will be converted as weel if they have.

Generally, this patch is generated by
make coccicheck M=<path/to/file> MODE=patch \
COCCI=scripts/coccinelle/api/device_attr_show.cocci

No functional change intended

Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/intel_th/gth.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/hwtracing/intel_th/gth.c b/drivers/hwtracing/intel_th/gth.c
index b3308934a687..3883f99fd5d5 100644
--- a/drivers/hwtracing/intel_th/gth.c
+++ b/drivers/hwtracing/intel_th/gth.c
@@ -154,9 +154,9 @@ static ssize_t master_attr_show(struct device *dev,
 	spin_unlock(&gth->gth_lock);
 
 	if (port >= 0)
-		count = snprintf(buf, PAGE_SIZE, "%x\n", port);
+		count = sysfs_emit(buf, "%x\n", port);
 	else
-		count = snprintf(buf, PAGE_SIZE, "disabled\n");
+		count = sysfs_emit(buf, "disabled\n");
 
 	return count;
 }
@@ -332,8 +332,8 @@ static ssize_t output_attr_show(struct device *dev,
 	pm_runtime_get_sync(dev);
 
 	spin_lock(&gth->gth_lock);
-	count = snprintf(buf, PAGE_SIZE, "%x\n",
-			 gth_output_parm_get(gth, oa->port, oa->parm));
+	count = sysfs_emit(buf, "%x\n",
+			   gth_output_parm_get(gth, oa->port, oa->parm));
 	spin_unlock(&gth->gth_lock);
 
 	pm_runtime_put(dev);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 08/15] intel_th: Remove redundant initialization of pointer outp
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (6 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 07/15] intel_th: Convert sprintf/snprintf to sysfs_emit Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 09/15] intel_th: msu: Fix kernel-doc warnings Alexander Shishkin
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Colin Ian King, Alexander Shishkin, Andy Shevchenko

From: Colin Ian King <colin.i.king@gmail.com>

The pointer outp is being initialized with a value that is never
read. All the reads of outp occur after outp has neen set to an
appropriate value rather than using the first value is initialized
with. The assignment is redundant and can be removed.

Cleans up clang scan warning:
drivers/hwtracing/intel_th/sth.c:73:15: warning: Value stored to
'outp' during its initialization is never read [deadcode.DeadStores]

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/intel_th/sth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/intel_th/sth.c b/drivers/hwtracing/intel_th/sth.c
index 9ca8c4e045f8..428f595a28a0 100644
--- a/drivers/hwtracing/intel_th/sth.c
+++ b/drivers/hwtracing/intel_th/sth.c
@@ -70,8 +70,8 @@ static ssize_t notrace sth_stm_packet(struct stm_data *stm_data,
 	struct sth_device *sth = container_of(stm_data, struct sth_device, stm);
 	struct intel_th_channel __iomem *out =
 		sth_channel(sth, master, channel);
-	u64 __iomem *outp = &out->Dn;
 	unsigned long reg = REG_STH_TRIG;
+	u64 __iomem *outp;
 
 #ifndef CONFIG_64BIT
 	if (size > 4)
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 09/15] intel_th: msu: Fix kernel-doc warnings
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (7 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 08/15] intel_th: Remove redundant initialization of pointer outp Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 10/15] intel_th: pci: Add Granite Rapids support Alexander Shishkin
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Randy Dunlap, Alexander Shishkin, Andy Shevchenko

From: Randy Dunlap <rdunlap@infradead.org>

Correct function comments to prevent kernel-doc warnings
found when using "W=1".

msu.c:77: warning: Function parameter or member 'msc' not described in 'msc_window'
msu.c:122: warning: bad line:
msu.c:760: warning: No description found for return value of 'msc_configure'
msu.c:1309: warning: Function parameter or member 'nr_pages' not described in 'msc_buffer_alloc'
msu.c:1309: warning: Function parameter or member 'nr_wins' not described in 'msc_buffer_alloc'
msu.c:1309: warning: Excess function parameter 'size' description in 'msc_buffer_alloc'
msu.c:1376: warning: No description found for return value of 'msc_buffer_free_unless_used'
msu.c:1444: warning: No description found for return value of 'msc_win_to_user'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hwtracing/intel_th/msu.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c
index 9621efe0e95c..be63d5b8f193 100644
--- a/drivers/hwtracing/intel_th/msu.c
+++ b/drivers/hwtracing/intel_th/msu.c
@@ -61,6 +61,7 @@ enum lockout_state {
  * @lo_lock:	lockout state serialization
  * @nr_blocks:	number of blocks (pages) in this window
  * @nr_segs:	number of segments in this window (<= @nr_blocks)
+ * @msc:	pointer to the MSC device
  * @_sgt:	array of block descriptors
  * @sgt:	array of block descriptors
  */
@@ -119,7 +120,6 @@ struct msc_iter {
  * @user_count:		number of users of the buffer
  * @mmap_count:		number of mappings
  * @buf_mutex:		mutex to serialize access to buffer-related bits
-
  * @enabled:		MSC is enabled
  * @wrap:		wrapping is enabled
  * @mode:		MSC operating mode
@@ -755,6 +755,8 @@ static int msc_win_set_lockout(struct msc_window *win,
  * Program storage mode, wrapping, burst length and trace buffer address
  * into a given MSC. Then, enable tracing and set msc::enabled.
  * The latter is serialized on msc::buf_mutex, so make sure to hold it.
+ *
+ * Return:	%0 for success or a negative error code otherwise.
  */
 static int msc_configure(struct msc *msc)
 {
@@ -1291,7 +1293,8 @@ static void msc_buffer_free(struct msc *msc)
 /**
  * msc_buffer_alloc() - allocate a buffer for MSC
  * @msc:	MSC device
- * @size:	allocation size in bytes
+ * @nr_pages:	number of pages for each window
+ * @nr_wins:	number of windows
  *
  * Allocate a storage buffer for MSC, depending on the msc::mode, it will be
  * either done via msc_buffer_contig_alloc() for SINGLE operation mode or
@@ -1370,6 +1373,9 @@ static int msc_buffer_unlocked_free_unless_used(struct msc *msc)
  * @msc:	MSC device
  *
  * This is a locked version of msc_buffer_unlocked_free_unless_used().
+ *
+ * Return:	0 on successful deallocation or if there was no buffer to
+ *		deallocate, -EBUSY if there are active users.
  */
 static int msc_buffer_free_unless_used(struct msc *msc)
 {
@@ -1438,6 +1444,8 @@ struct msc_win_to_user_struct {
  * @data:	callback's private data
  * @src:	source buffer
  * @len:	amount of data to copy from the source buffer
+ *
+ * Return:	>= %0 for success or -errno for error.
  */
 static unsigned long msc_win_to_user(void *data, void *src, size_t len)
 {
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 10/15] intel_th: pci: Add Granite Rapids support
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (8 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 09/15] intel_th: msu: Fix kernel-doc warnings Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 11/15] intel_th: pci: Add Granite Rapids SOC support Alexander Shishkin
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

Add support for the Trace Hub in Granite Rapids.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@kernel.org
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index 147d338c191e..beb4b2766aae 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -299,6 +299,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Granite Rapids */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0963),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Alder Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f),
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 11/15] intel_th: pci: Add Granite Rapids SOC support
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (9 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 10/15] intel_th: pci: Add Granite Rapids support Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 12/15] intel_th: pci: Add Sapphire " Alexander Shishkin
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

Add support for the Trace Hub in Granite Rapids SOC.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@kernel.org
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index beb4b2766aae..44c08db253d8 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -304,6 +304,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0963),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Granite Rapids SOC */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3256),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Alder Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f),
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 12/15] intel_th: pci: Add Sapphire Rapids SOC support
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (10 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 11/15] intel_th: pci: Add Granite Rapids SOC support Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 13/15] intel_th: pci: Add Meteor Lake-S support Alexander Shishkin
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

Add support for the Trace Hub in Sapphire Rapids SOC.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@kernel.org
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index 44c08db253d8..08c956fb4995 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -309,6 +309,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3256),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Sapphire Rapids SOC */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3456),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Alder Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f),
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 13/15] intel_th: pci: Add Meteor Lake-S support
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (11 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 12/15] intel_th: pci: Add Sapphire " Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 14/15] intel_th: pci: Add Meteor Lake-S CPU support Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 15/15] intel_th: pci: Add Lunar Lake support Alexander Shishkin
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

Add support for the Trace Hub in Meteor Lake-S.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@kernel.org
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index 08c956fb4995..7bb50d414027 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -289,6 +289,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7e24),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Meteor Lake-S */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7f26),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Raptor Lake-S */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 14/15] intel_th: pci: Add Meteor Lake-S CPU support
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (12 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 13/15] intel_th: pci: Add Meteor Lake-S support Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  2024-04-29 13:01 ` [PATCH v1 15/15] intel_th: pci: Add Lunar Lake support Alexander Shishkin
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

Add support for the Trace Hub in Meteor Lake-S CPU.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@kernel.org
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index 7bb50d414027..0db8ff9b1c48 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -294,6 +294,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7f26),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Meteor Lake-S CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xae24),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Raptor Lake-S */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v1 15/15] intel_th: pci: Add Lunar Lake support
  2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
                   ` (13 preceding siblings ...)
  2024-04-29 13:01 ` [PATCH v1 14/15] intel_th: pci: Add Meteor Lake-S CPU support Alexander Shishkin
@ 2024-04-29 13:01 ` Alexander Shishkin
  14 siblings, 0 replies; 16+ messages in thread
From: Alexander Shishkin @ 2024-04-29 13:01 UTC (permalink / raw
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

Add support for the Trace Hub in Lunar Lake.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@kernel.org
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index 0db8ff9b1c48..0d7b9839e5b6 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -324,6 +324,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x3456),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Lunar Lake */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa824),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Alder Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f),
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2024-04-29 13:02 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-29 13:01 [PATCH v1 00/15] stm class/intel_th: Updates for v6.10 Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 01/15] stm class: Fix a double free in stm_register_device() Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 02/15] stm class: Add source type Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 03/15] stm class: Propagate source type to protocols Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 04/15] stm class: sys-t: Improve ftrace source handling Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 05/15] intel_th: Convert to platform remove callback returning void Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 06/15] intel_th: Constify the struct device_type usage Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 07/15] intel_th: Convert sprintf/snprintf to sysfs_emit Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 08/15] intel_th: Remove redundant initialization of pointer outp Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 09/15] intel_th: msu: Fix kernel-doc warnings Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 10/15] intel_th: pci: Add Granite Rapids support Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 11/15] intel_th: pci: Add Granite Rapids SOC support Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 12/15] intel_th: pci: Add Sapphire " Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 13/15] intel_th: pci: Add Meteor Lake-S support Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 14/15] intel_th: pci: Add Meteor Lake-S CPU support Alexander Shishkin
2024-04-29 13:01 ` [PATCH v1 15/15] intel_th: pci: Add Lunar Lake support Alexander Shishkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).