All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: linux-kernel@vger.kernel.org, tiwai@suse.de, broonie@kernel.org,
	vkoul@kernel.org, gregkh@linuxfoundation.org, jank@cadence.com,
	srinivas.kandagatla@linaro.org, slawomir.blauciak@intel.com,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	Sanyog Kale <sanyog.r.kale@intel.com>
Subject: [RFC PATCH 01/40] soundwire: add debugfs support
Date: Thu, 25 Jul 2019 18:39:53 -0500	[thread overview]
Message-ID: <20190725234032.21152-2-pierre-louis.bossart@linux.intel.com> (raw)
In-Reply-To: <20190725234032.21152-1-pierre-louis.bossart@linux.intel.com>

Add base debugfs mechanism for SoundWire bus by creating soundwire
root and master-N and slave-x hierarchy.

Also add SDW Slave SCP, DP0 and DP-N register debug file.

Registers not implemented will print as "XX"

Credits: this patch is based on an earlier internal contribution by
Vinod Koul, Sanyog Kale, Shreyas Nc and Hardik Shah. The main change
is the use of scnprintf to avoid known issues with snprintf.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 drivers/soundwire/Makefile    |   4 +-
 drivers/soundwire/bus.c       |   6 ++
 drivers/soundwire/bus.h       |  24 ++++++
 drivers/soundwire/bus_type.c  |   3 +
 drivers/soundwire/debugfs.c   | 156 ++++++++++++++++++++++++++++++++++
 drivers/soundwire/slave.c     |   1 +
 include/linux/soundwire/sdw.h |   4 +
 7 files changed, 197 insertions(+), 1 deletion(-)
 create mode 100644 drivers/soundwire/debugfs.c

diff --git a/drivers/soundwire/Makefile b/drivers/soundwire/Makefile
index fd99a831b92a..88990cac48a7 100644
--- a/drivers/soundwire/Makefile
+++ b/drivers/soundwire/Makefile
@@ -4,7 +4,9 @@
 #
 
 #Bus Objs
-soundwire-bus-objs := bus_type.o bus.o slave.o mipi_disco.o stream.o
+soundwire-bus-objs := bus_type.o bus.o slave.o mipi_disco.o stream.o \
+			debugfs.o
+
 obj-$(CONFIG_SOUNDWIRE_BUS) += soundwire-bus.o
 
 #Cadence Objs
diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c
index fe745830a261..5ad4109dc72f 100644
--- a/drivers/soundwire/bus.c
+++ b/drivers/soundwire/bus.c
@@ -49,6 +49,8 @@ int sdw_add_bus_master(struct sdw_bus *bus)
 		}
 	}
 
+	bus->debugfs = sdw_bus_debugfs_init(bus);
+
 	/*
 	 * Device numbers in SoundWire are 0 through 15. Enumeration device
 	 * number (0), Broadcast device number (15), Group numbers (12 and
@@ -109,6 +111,8 @@ static int sdw_delete_slave(struct device *dev, void *data)
 	struct sdw_slave *slave = dev_to_sdw_dev(dev);
 	struct sdw_bus *bus = slave->bus;
 
+	sdw_slave_debugfs_exit(slave->debugfs);
+
 	mutex_lock(&bus->bus_lock);
 
 	if (slave->dev_num) /* clear dev_num if assigned */
@@ -130,6 +134,8 @@ static int sdw_delete_slave(struct device *dev, void *data)
 void sdw_delete_bus_master(struct sdw_bus *bus)
 {
 	device_for_each_child(bus->dev, NULL, sdw_delete_slave);
+
+	sdw_bus_debugfs_exit(bus->debugfs);
 }
 EXPORT_SYMBOL(sdw_delete_bus_master);
 
diff --git a/drivers/soundwire/bus.h b/drivers/soundwire/bus.h
index 3048ca153f22..06ac4adb0074 100644
--- a/drivers/soundwire/bus.h
+++ b/drivers/soundwire/bus.h
@@ -18,6 +18,30 @@ static inline int sdw_acpi_find_slaves(struct sdw_bus *bus)
 void sdw_extract_slave_id(struct sdw_bus *bus,
 			  u64 addr, struct sdw_slave_id *id);
 
+#ifdef CONFIG_DEBUG_FS
+struct dentry *sdw_bus_debugfs_init(struct sdw_bus *bus);
+void sdw_bus_debugfs_exit(struct dentry *d);
+struct dentry *sdw_slave_debugfs_init(struct sdw_slave *slave);
+void sdw_slave_debugfs_exit(struct dentry *d);
+void sdw_debugfs_init(void);
+void sdw_debugfs_exit(void);
+#else
+struct dentry *sdw_bus_debugfs_init(struct sdw_bus *bus)
+{ return NULL; }
+
+void sdw_bus_debugfs_exit(struct dentry *d) {}
+
+struct dentry *sdw_slave_debugfs_init(struct sdw_slave *slave)
+{ return NULL; }
+
+void sdw_slave_debugfs_exit(struct dentry *d) {}
+
+void sdw_debugfs_init(void) {}
+
+void sdw_debugfs_exit(void) {}
+
+#endif
+
 enum {
 	SDW_MSG_FLAG_READ = 0,
 	SDW_MSG_FLAG_WRITE,
diff --git a/drivers/soundwire/bus_type.c b/drivers/soundwire/bus_type.c
index 2655602f0cfb..4a465f55039f 100644
--- a/drivers/soundwire/bus_type.c
+++ b/drivers/soundwire/bus_type.c
@@ -6,6 +6,7 @@
 #include <linux/pm_domain.h>
 #include <linux/soundwire/sdw.h>
 #include <linux/soundwire/sdw_type.h>
+#include "bus.h"
 
 /**
  * sdw_get_device_id - find the matching SoundWire device id
@@ -177,11 +178,13 @@ EXPORT_SYMBOL_GPL(sdw_unregister_driver);
 
 static int __init sdw_bus_init(void)
 {
+	sdw_debugfs_init();
 	return bus_register(&sdw_bus_type);
 }
 
 static void __exit sdw_bus_exit(void)
 {
+	sdw_debugfs_exit();
 	bus_unregister(&sdw_bus_type);
 }
 
diff --git a/drivers/soundwire/debugfs.c b/drivers/soundwire/debugfs.c
new file mode 100644
index 000000000000..8d86e100516e
--- /dev/null
+++ b/drivers/soundwire/debugfs.c
@@ -0,0 +1,156 @@
+// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+// Copyright(c) 2017-19 Intel Corporation.
+
+#include <linux/device.h>
+#include <linux/debugfs.h>
+#include <linux/mod_devicetable.h>
+#include <linux/slab.h>
+#include <linux/soundwire/sdw.h>
+#include <linux/soundwire/sdw_registers.h>
+#include "bus.h"
+
+#ifdef CONFIG_DEBUG_FS
+struct dentry *sdw_debugfs_root;
+#endif
+
+struct dentry *sdw_bus_debugfs_init(struct sdw_bus *bus)
+{
+	struct dentry *d;
+	char name[16];
+
+	if (!sdw_debugfs_root)
+		return NULL;
+
+	/* create the debugfs master-N */
+	snprintf(name, sizeof(name), "master-%d", bus->link_id);
+	d = debugfs_create_dir(name, sdw_debugfs_root);
+
+	return d;
+}
+
+void sdw_bus_debugfs_exit(struct dentry *d)
+{
+	debugfs_remove_recursive(d);
+}
+
+#define RD_BUF (3 * PAGE_SIZE)
+
+static ssize_t sdw_sprintf(struct sdw_slave *slave,
+			   char *buf, size_t pos, unsigned int reg)
+{
+	int value;
+
+	value = sdw_read(slave, reg);
+
+	if (value < 0)
+		return scnprintf(buf + pos, RD_BUF - pos, "%3x\tXX\n", reg);
+	else
+		return scnprintf(buf + pos, RD_BUF - pos,
+				"%3x\t%2x\n", reg, value);
+}
+
+static ssize_t sdw_slave_reg_read(struct file *file, char __user *user_buf,
+				  size_t count, loff_t *ppos)
+{
+	struct sdw_slave *slave = file->private_data;
+	unsigned int reg;
+	char *buf;
+	ssize_t ret;
+	int i, j;
+
+	buf = kzalloc(RD_BUF, GFP_KERNEL);
+	if (!buf)
+		return -ENOMEM;
+
+	ret = scnprintf(buf, RD_BUF, "Register  Value\n");
+	ret += scnprintf(buf + ret, RD_BUF - ret, "\nDP0\n");
+
+	for (i = 0; i < 6; i++)
+		ret += sdw_sprintf(slave, buf, ret, i);
+
+	ret += scnprintf(buf + ret, RD_BUF - ret, "Bank0\n");
+	ret += sdw_sprintf(slave, buf, ret, SDW_DP0_CHANNELEN);
+	for (i = SDW_DP0_SAMPLECTRL1; i <= SDW_DP0_LANECTRL; i++)
+		ret += sdw_sprintf(slave, buf, ret, i);
+
+	ret += scnprintf(buf + ret, RD_BUF - ret, "Bank1\n");
+	ret += sdw_sprintf(slave, buf, ret,
+			SDW_DP0_CHANNELEN + SDW_BANK1_OFFSET);
+	for (i = SDW_DP0_SAMPLECTRL1 + SDW_BANK1_OFFSET;
+			i <= SDW_DP0_LANECTRL + SDW_BANK1_OFFSET; i++)
+		ret += sdw_sprintf(slave, buf, ret, i);
+
+	ret += scnprintf(buf + ret, RD_BUF - ret, "\nSCP\n");
+	for (i = SDW_SCP_INT1; i <= SDW_SCP_BANKDELAY; i++)
+		ret += sdw_sprintf(slave, buf, ret, i);
+	for (i = SDW_SCP_DEVID_0; i <= SDW_SCP_DEVID_5; i++)
+		ret += sdw_sprintf(slave, buf, ret, i);
+
+	ret += scnprintf(buf + ret, RD_BUF - ret, "Bank0\n");
+	ret += sdw_sprintf(slave, buf, ret, SDW_SCP_FRAMECTRL_B0);
+	ret += sdw_sprintf(slave, buf, ret, SDW_SCP_NEXTFRAME_B0);
+
+	ret += scnprintf(buf + ret, RD_BUF - ret, "Bank1\n");
+	ret += sdw_sprintf(slave, buf, ret, SDW_SCP_FRAMECTRL_B1);
+	ret += sdw_sprintf(slave, buf, ret, SDW_SCP_NEXTFRAME_B1);
+
+	for (i = 1; i < 14; i++) {
+		ret += scnprintf(buf + ret, RD_BUF - ret, "\nDP%d\n", i);
+		reg = SDW_DPN_INT(i);
+		for (j = 0; j < 6; j++)
+			ret += sdw_sprintf(slave, buf, ret, reg + j);
+
+		ret += scnprintf(buf + ret, RD_BUF - ret, "Bank0\n");
+		reg = SDW_DPN_CHANNELEN_B0(i);
+		for (j = 0; j < 9; j++)
+			ret += sdw_sprintf(slave, buf, ret, reg + j);
+
+		ret += scnprintf(buf + ret, RD_BUF - ret, "Bank1\n");
+		reg = SDW_DPN_CHANNELEN_B1(i);
+		for (j = 0; j < 9; j++)
+			ret += sdw_sprintf(slave, buf, ret, reg + j);
+	}
+
+	ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
+	kfree(buf);
+
+	return ret;
+}
+
+static const struct file_operations sdw_slave_reg_fops = {
+	.open = simple_open,
+	.read = sdw_slave_reg_read,
+	.llseek = default_llseek,
+};
+
+struct dentry *sdw_slave_debugfs_init(struct sdw_slave *slave)
+{
+	struct dentry *master;
+	struct dentry *d;
+	char name[32];
+
+	master = slave->bus->debugfs;
+
+	/* create the debugfs slave-name */
+	snprintf(name, sizeof(name), "%s", dev_name(&slave->dev));
+	d = debugfs_create_dir(name, master);
+
+	debugfs_create_file("registers", 0400, d, slave, &sdw_slave_reg_fops);
+
+	return d;
+}
+
+void sdw_slave_debugfs_exit(struct dentry *d)
+{
+	debugfs_remove_recursive(d);
+}
+
+void sdw_debugfs_init(void)
+{
+	sdw_debugfs_root = debugfs_create_dir("soundwire", NULL);
+}
+
+void sdw_debugfs_exit(void)
+{
+	debugfs_remove_recursive(sdw_debugfs_root);
+}
diff --git a/drivers/soundwire/slave.c b/drivers/soundwire/slave.c
index f39a5815e25d..34d8bb995f45 100644
--- a/drivers/soundwire/slave.c
+++ b/drivers/soundwire/slave.c
@@ -56,6 +56,7 @@ static int sdw_slave_add(struct sdw_bus *bus,
 		mutex_unlock(&bus->bus_lock);
 		put_device(&slave->dev);
 	}
+	slave->debugfs = sdw_slave_debugfs_init(slave);
 
 	return ret;
 }
diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h
index 3b231472464a..a49028e9d666 100644
--- a/include/linux/soundwire/sdw.h
+++ b/include/linux/soundwire/sdw.h
@@ -544,6 +544,7 @@ struct sdw_slave_ops {
  * @bus: Bus handle
  * @ops: Slave callback ops
  * @prop: Slave properties
+ * @debugfs: Slave debugfs
  * @node: node for bus list
  * @port_ready: Port ready completion flag for each Slave port
  * @dev_num: Device Number assigned by Bus
@@ -555,6 +556,7 @@ struct sdw_slave {
 	struct sdw_bus *bus;
 	const struct sdw_slave_ops *ops;
 	struct sdw_slave_prop prop;
+	struct dentry *debugfs;
 	struct list_head node;
 	struct completion *port_ready;
 	u16 dev_num;
@@ -731,6 +733,7 @@ struct sdw_master_ops {
  * @m_rt_list: List of Master instance of all stream(s) running on Bus. This
  * is used to compute and program bus bandwidth, clock, frame shape,
  * transport and port parameters
+ * @debugfs: Bus debugfs
  * @defer_msg: Defer message
  * @clk_stop_timeout: Clock stop timeout computed
  * @bank_switch_timeout: Bank switch timeout computed
@@ -750,6 +753,7 @@ struct sdw_bus {
 	struct sdw_bus_params params;
 	struct sdw_master_prop prop;
 	struct list_head m_rt_list;
+	struct dentry *debugfs;
 	struct sdw_defer defer_msg;
 	unsigned int clk_stop_timeout;
 	u32 bank_switch_timeout;
-- 
2.20.1


  reply	other threads:[~2019-07-25 23:41 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-25 23:39 [RFC PATCH 00/40] soundwire: updates for 5.4 Pierre-Louis Bossart
2019-07-25 23:39 ` Pierre-Louis Bossart [this message]
2019-07-25 22:15   ` [alsa-devel] [RFC PATCH 01/40] soundwire: add debugfs support Guennadi Liakhovetski
2019-07-26 13:43     ` Pierre-Louis Bossart
2019-07-26 13:43       ` Pierre-Louis Bossart
2019-07-26  9:22   ` Cezary Rojewski
2019-07-26 13:57     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-26 14:04   ` Greg KH
2019-07-26 15:29     ` Pierre-Louis Bossart
2019-07-25 23:39 ` [RFC PATCH 02/40] soundwire: cadence_master: add debugfs register dump Pierre-Louis Bossart
2019-07-25 23:39   ` Pierre-Louis Bossart
2019-07-26 14:09   ` Greg KH
2019-07-26 15:32     ` Pierre-Louis Bossart
2019-08-05  7:55   ` Sanyog Kale
2019-08-05 15:20     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:39 ` [RFC PATCH 03/40] soundwire: cadence_master: align debugfs to 8 digits Pierre-Louis Bossart
2019-07-26  9:38   ` Cezary Rojewski
2019-07-26 13:58     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 11:50   ` Vinod Koul
2019-07-25 23:39 ` [RFC PATCH 04/40] soundwire: intel: add debugfs register dump Pierre-Louis Bossart
2019-07-26  9:35   ` Cezary Rojewski
2019-07-26 14:00     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-26 14:11       ` Greg KH
2019-07-26 14:06   ` Greg KH
2019-07-26 14:09     ` Greg KH
2019-07-26 15:34     ` Pierre-Louis Bossart
2019-07-25 23:39 ` [RFC PATCH 05/40] soundwire: intel: move interrupt enable after interrupt handler registration Pierre-Louis Bossart
2019-08-02 11:53   ` Vinod Koul
2019-08-02 15:08     ` Pierre-Louis Bossart
2019-07-25 23:39 ` [RFC PATCH 06/40] soundwire: intel: prevent possible dereference in hw_params Pierre-Louis Bossart
2019-07-26  9:45   ` Cezary Rojewski
2019-07-26 14:02     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 11:55   ` Vinod Koul
2019-08-02 15:16     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 15:57       ` Vinod Koul
2019-08-02 16:52         ` Pierre-Louis Bossart
2019-08-02 17:37           ` Vinod Koul
2019-07-25 23:39 ` [RFC PATCH 07/40] soundwire: intel: fix channel number reported by hardware Pierre-Louis Bossart
2019-08-02 11:57   ` Vinod Koul
2019-08-02 15:18     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 08/40] soundwire: intel: remove BIOS work-arounds Pierre-Louis Bossart
2019-08-02 11:58   ` Vinod Koul
2019-07-25 23:40 ` [RFC PATCH 09/40] soundwire: cadence_master: fix usage of CONFIG_UPDATE Pierre-Louis Bossart
2019-07-25 22:23   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-25 22:23     ` Guennadi Liakhovetski
2019-07-26 14:05     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-26  2:11   ` Bard liao
2019-07-26 13:33     ` Pierre-Louis Bossart
2019-07-26  9:53   ` Cezary Rojewski
2019-07-26  9:54     ` Cezary Rojewski
2019-08-02 12:03   ` Vinod Koul
2019-08-02 15:18     ` Pierre-Louis Bossart
2019-08-05  8:51   ` Sanyog Kale
2019-07-25 23:40 ` [RFC PATCH 10/40] soundwire: cadence_master: remove useless wrapper Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 11/40] soundwire: cadence_master: simplify bus clash interrupt clear Pierre-Louis Bossart
2019-08-02 12:07   ` Vinod Koul
2019-07-25 23:40 ` [RFC PATCH 12/40] soundwire: cadence_master: revisit interrupt settings Pierre-Louis Bossart
2019-08-02 12:10   ` Vinod Koul
2019-08-02 15:23     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 13/40] soundwire: cadence_master: fix register definition for SLAVE_STATE Pierre-Louis Bossart
2019-08-02 12:12   ` Vinod Koul
2019-07-25 23:40 ` [RFC PATCH 14/40] soundwire: cadence_master: fix definitions for INTSTAT0/1 Pierre-Louis Bossart
2019-08-02 12:13   ` Vinod Koul
2019-07-25 23:40 ` [RFC PATCH 15/40] soundwire: cadence_master: handle multiple status reports per Slave Pierre-Louis Bossart
2019-07-25 22:31   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-25 22:31     ` Guennadi Liakhovetski
2019-07-26 14:09     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 12:20   ` Vinod Koul
2019-08-02 15:29     ` Pierre-Louis Bossart
2019-08-02 16:01       ` Vinod Koul
2019-08-02 16:41         ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 16/40] soundwire: cadence_master: improve startup sequence with link hw_reset Pierre-Louis Bossart
2019-07-26  7:22   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26 14:11     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 17/40] soundwire: bus: use runtime_pm_get_sync/pm when enabled Pierre-Louis Bossart
2019-07-26  7:39   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26  7:47     ` Jan Kotas
2019-07-26  8:22       ` Guennadi Liakhovetski
2019-07-26  8:33         ` Jan Kotas
2019-07-26  8:42           ` Guennadi Liakhovetski
2019-07-26 18:08   ` Pierre-Louis Bossart
2019-07-26 18:25     ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26 19:11       ` Andy Shevchenko
2019-07-26 19:08     ` Andy Shevchenko
2019-07-29 22:07       ` [alsa-devel] " Pierre-Louis Bossart
2019-07-30 11:21         ` Andy Shevchenko
2019-07-30 12:57           ` Pierre-Louis Bossart
2019-07-30 15:58             ` Andy Shevchenko
2019-07-30 15:59               ` Andy Shevchenko
2019-08-02 16:58   ` Vinod Koul
2019-08-02 17:20     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 18/40] soundwire: bus: split handling of Device0 events Pierre-Louis Bossart
2019-08-02 16:59   ` Vinod Koul
2019-07-25 23:40 ` [RFC PATCH 19/40] soundwire: bus: improve dynamic debug comments for enumeration Pierre-Louis Bossart
2019-08-02 17:00   ` Vinod Koul
2019-08-02 17:20     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 20/40] soundwire: prototypes for suspend/resume Pierre-Louis Bossart
2019-07-26 10:04   ` Cezary Rojewski
2019-07-26 14:15     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 17:03   ` Vinod Koul
2019-08-02 17:21     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 21/40] soundwire: export helpers to find row and column values Pierre-Louis Bossart
2019-07-26 14:43   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26 15:26     ` Pierre-Louis Bossart
2019-08-02 17:04       ` Vinod Koul
2019-08-05  9:39   ` Sanyog Kale
2019-08-05 15:27     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 22/40] soundwire: include mod_devicetable.h to avoid compiling warnings Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 23/40] soundwire: stream: fix disable sequence Pierre-Louis Bossart
2019-07-26 10:14   ` Cezary Rojewski
2019-07-26 14:17     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-26 14:51   ` Guennadi Liakhovetski
2019-07-26 15:05     ` Pierre-Louis Bossart
2019-08-05  9:56   ` Sanyog Kale
2019-08-05 15:33     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-05 16:32       ` Sanyog Kale
2019-08-05 19:12         ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 24/40] soundwire: cadence_master: use BIOS defaults for frame shape Pierre-Louis Bossart
2019-07-26 10:20   ` Cezary Rojewski
2019-07-26 14:22     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 17:10   ` Vinod Koul
2019-08-02 17:24     ` Pierre-Louis Bossart
2019-08-05 10:01   ` Sanyog Kale
2019-07-25 23:40 ` [RFC PATCH 25/40] soundwire: intel: use BIOS information to set clock dividers Pierre-Louis Bossart
2019-08-02 17:17   ` Vinod Koul
2019-08-02 17:29     ` Pierre-Louis Bossart
2019-08-05 10:28   ` Sanyog Kale
2019-08-05 15:40     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 26/40] soundwire: cadence_master: fix divider setting in clock register Pierre-Louis Bossart
2019-07-26  5:19   ` [alsa-devel] " Bard liao
2019-07-26  5:56     ` rander.wang
2019-07-26 14:24     ` Pierre-Louis Bossart
2019-08-02 17:19   ` Vinod Koul
2019-08-02 17:30     ` Pierre-Louis Bossart
2019-08-05 10:40   ` Sanyog Kale
2019-08-05 15:41     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 27/40] soundwire: Add Intel resource management algorithm Pierre-Louis Bossart
2019-07-26 11:07   ` Cezary Rojewski
2019-07-26 14:41     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-26 15:43   ` Guennadi Liakhovetski
2019-07-26 17:55     ` Pierre-Louis Bossart
2019-08-05 16:54   ` Sanyog Kale
2019-08-05 16:54     ` Sanyog Kale
2019-08-05 19:08     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-05 19:08       ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 28/40] soundwire: intel: handle disabled links Pierre-Louis Bossart
2019-08-05 16:57   ` Sanyog Kale
2019-08-05 19:18     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 29/40] soundwire: intel_init: add kernel module parameter to filter out links Pierre-Louis Bossart
2019-07-26 10:30   ` Cezary Rojewski
2019-07-26 14:43     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 30/40] soundwire: cadence_master: add kernel parameter to override interrupt mask Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 31/40] soundwire: intel: move shutdown() callback and don't export symbol Pierre-Louis Bossart
2019-07-26 10:38   ` Cezary Rojewski
2019-07-26 14:46     ` [alsa-devel] " Pierre-Louis Bossart
2019-08-02 17:28       ` Vinod Koul
2019-08-02 17:42         ` Pierre-Louis Bossart
2019-08-14 19:31         ` Pierre-Louis Bossart
2019-08-23  7:34           ` Vinod Koul
2019-08-23 15:57             ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 32/40] soundwire: intel: add helper for initialization Pierre-Louis Bossart
2019-07-26 10:42   ` Cezary Rojewski
2019-07-26 14:55     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 33/40] soundwire: intel: Add basic power management support Pierre-Louis Bossart
2019-07-26 10:50   ` Cezary Rojewski
2019-07-26 14:57     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 34/40] soundwire: intel: ignore disabled links for suspend/resume Pierre-Louis Bossart
2019-08-02 17:30   ` Vinod Koul
2019-08-02 17:44     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 35/40] soundwire: intel: export helper to exit reset Pierre-Louis Bossart
2019-07-26 15:52   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26 17:22     ` Pierre-Louis Bossart
2019-08-02 17:31   ` Vinod Koul
2019-08-02 17:44     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 36/40] soundwire: intel: disable interrupts on suspend Pierre-Louis Bossart
2019-07-26 15:55   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26 17:26     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 37/40] soundwire: cadence_master: add hw_reset capability in debugfs Pierre-Louis Bossart
2019-07-26 14:07   ` Greg KH
2019-07-26 15:01     ` [alsa-devel] " Pierre-Louis Bossart
2019-07-26 15:57   ` Guennadi Liakhovetski
2019-07-26 17:31     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 38/40] soundwire: cadence_master: make clock stop exit configurable on init Pierre-Louis Bossart
2019-07-26 16:02   ` [alsa-devel] " Guennadi Liakhovetski
2019-07-26 17:35     ` Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 39/40] soundwire: intel: add pm_runtime support Pierre-Louis Bossart
2019-07-25 23:40 ` [RFC PATCH 40/40] soundwire: intel: add delay on restart for enumeration Pierre-Louis Bossart
2019-07-26 11:14 ` [RFC PATCH 00/40] soundwire: updates for 5.4 Cezary Rojewski
2019-07-26 15:23   ` [alsa-devel] " Pierre-Louis Bossart

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=20190725234032.21152-2-pierre-louis.bossart@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jank@cadence.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sanyog.r.kale@intel.com \
    --cc=slawomir.blauciak@intel.com \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=tiwai@suse.de \
    --cc=vkoul@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.