summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch')
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch145
1 files changed, 0 insertions, 145 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch
deleted file mode 100644
index c9844e1bd..000000000
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From a57f401058e452f9abb6f3233e7f2776af1e6b8d Mon Sep 17 00:00:00 2001
-From: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
-Date: Fri, 29 Jun 2018 11:00:02 -0700
-Subject: [PATCH] Add dump debug code into I2C drivers
-
-This commit enables dump debug of master and slave I2C drivers.
-This is only for downstream debug purpose so it shouldn't go to
-the upstream.
-
-Usage (in case of bus 5 for an example):
-echo 5 > /sys/module/i2c_aspeed/parameters/dump_debug_bus_id
-echo 1 > /sys/module/i2c_aspeed/parameters/dump_debug
-echo 5 > /sys/module/i2c_slave_mqueue/parameters/dump_debug_bus_id
-echo 1 > /sys/module/i2c_slave_mqueue/parameters/dump_debug
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
----
- drivers/i2c/busses/i2c-aspeed.c | 26 ++++++++++++++++++++++++++
- drivers/i2c/i2c-slave-mqueue.c | 24 ++++++++++++++++++++++++
- 2 files changed, 50 insertions(+)
-
-diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c
-index a7be6f24450b..c113ffa8d5df 100644
---- a/drivers/i2c/busses/i2c-aspeed.c
-+++ b/drivers/i2c/busses/i2c-aspeed.c
-@@ -169,6 +169,21 @@ struct aspeed_i2c_bus {
- #endif /* CONFIG_I2C_SLAVE */
- };
-
-+static bool dump_debug __read_mostly;
-+static int dump_debug_bus_id __read_mostly;
-+
-+#define I2C_HEX_DUMP(bus, addr, flags, buf, len) \
-+ do { \
-+ if (dump_debug && (bus)->adap.nr == dump_debug_bus_id) { \
-+ char dump_info[100] = {0,}; \
-+ snprintf(dump_info, sizeof(dump_info), \
-+ "bus_id:%d, addr:0x%02x, flags:0x%02x: ", \
-+ (bus)->adap.nr, addr, flags); \
-+ print_hex_dump(KERN_ERR, dump_info, DUMP_PREFIX_NONE, \
-+ 16, 1, buf, len, true); \
-+ } \
-+ } while (0)
-+
- static int aspeed_i2c_reset(struct aspeed_i2c_bus *bus);
-
- static int aspeed_i2c_recover_bus(struct aspeed_i2c_bus *bus)
-@@ -657,6 +672,7 @@ static int aspeed_i2c_master_xfer(struct i2c_adapter *adap,
- {
- struct aspeed_i2c_bus *bus = i2c_get_adapdata(adap);
- unsigned long time_left, flags;
-+ int i;
-
- spin_lock_irqsave(&bus->lock, flags);
- bus->cmd_err = 0;
-@@ -708,6 +724,11 @@ static int aspeed_i2c_master_xfer(struct i2c_adapter *adap,
- return -ETIMEDOUT;
- }
-
-+ for (i = 0; i < num; i++) {
-+ I2C_HEX_DUMP(bus, msgs[i].addr, msgs[i].flags,
-+ msgs[i].buf, msgs[i].len);
-+ }
-+
- return bus->master_xfer_result;
- }
-
-@@ -1079,6 +1100,11 @@ static struct platform_driver aspeed_i2c_bus_driver = {
- };
- module_platform_driver(aspeed_i2c_bus_driver);
-
-+module_param_named(dump_debug, dump_debug, bool, 0644);
-+MODULE_PARM_DESC(dump_debug, "debug flag for dump printing");
-+module_param_named(dump_debug_bus_id, dump_debug_bus_id, int, 0644);
-+MODULE_PARM_DESC(dump_debug_bus_id, "bus id for dump debug printing");
-+
- MODULE_AUTHOR("Brendan Higgins <brendanhiggins@google.com>");
- MODULE_DESCRIPTION("Aspeed I2C Bus Driver");
- MODULE_LICENSE("GPL v2");
-diff --git a/drivers/i2c/i2c-slave-mqueue.c b/drivers/i2c/i2c-slave-mqueue.c
-index 6014bca0ff2a..2c7a6038409c 100644
---- a/drivers/i2c/i2c-slave-mqueue.c
-+++ b/drivers/i2c/i2c-slave-mqueue.c
-@@ -21,6 +21,7 @@ struct mq_msg {
- struct mq_queue {
- struct bin_attribute bin;
- struct kernfs_node *kn;
-+ struct i2c_client *client;
-
- spinlock_t lock; /* spinlock for queue index handling */
- int in;
-@@ -31,6 +32,21 @@ struct mq_queue {
- struct mq_msg *queue;
- };
-
-+static bool dump_debug __read_mostly;
-+static int dump_debug_bus_id __read_mostly;
-+
-+#define I2C_HEX_DUMP(client, buf, len) \
-+ do { \
-+ if (dump_debug && \
-+ (client)->adapter->nr == dump_debug_bus_id) { \
-+ char dump_info[100] = {0,}; \
-+ snprintf(dump_info, sizeof(dump_info), \
-+ "bus_id:%d: ", (client)->adapter->nr); \
-+ print_hex_dump(KERN_ERR, dump_info, DUMP_PREFIX_NONE, \
-+ 16, 1, buf, len, true); \
-+ } \
-+ } while (0)
-+
- static int i2c_slave_mqueue_callback(struct i2c_client *client,
- enum i2c_slave_event event, u8 *val)
- {
-@@ -101,6 +117,7 @@ static ssize_t i2c_slave_mqueue_bin_read(struct file *filp,
- if (msg->len <= count) {
- ret = msg->len;
- memcpy(buf, msg->buf, ret);
-+ I2C_HEX_DUMP(mq->client, buf, ret);
- } else {
- ret = -EOVERFLOW; /* Drop this HUGE one. */
- }
-@@ -131,6 +148,8 @@ static int i2c_slave_mqueue_probe(struct i2c_client *client,
-
- BUILD_BUG_ON(!is_power_of_2(MQ_QUEUE_SIZE));
-
-+ mq->client = client;
-+
- buf = devm_kmalloc_array(dev, MQ_QUEUE_SIZE, MQ_MSGBUF_SIZE,
- GFP_KERNEL);
- if (!buf)
-@@ -212,6 +231,11 @@ static struct i2c_driver i2c_slave_mqueue_driver = {
- };
- module_i2c_driver(i2c_slave_mqueue_driver);
-
-+module_param_named(dump_debug, dump_debug, bool, 0644);
-+MODULE_PARM_DESC(dump_debug, "debug flag for dump printing");
-+module_param_named(dump_debug_bus_id, dump_debug_bus_id, int, 0644);
-+MODULE_PARM_DESC(dump_debug_bus_id, "bus id for dump debug printing");
-+
- MODULE_LICENSE("GPL v2");
- MODULE_AUTHOR("Haiyue Wang <haiyue.wang@linux.intel.com>");
- MODULE_DESCRIPTION("I2C slave mode for receiving and queuing messages");
---
-2.7.4
-