diff options
author | Jason M. Bills <jason.m.bills@linux.intel.com> | 2020-12-08 00:45:20 +0300 |
---|---|---|
committer | Jason M. Bills <jason.m.bills@linux.intel.com> | 2020-12-10 01:15:05 +0300 |
commit | 82dbc15a05125a812c140a3c8cff81c366482229 (patch) | |
tree | 9c8f1ad262a2e281f20340cf8646aca6f8596044 /meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0030-Add-dump-debug-code-into-I2C-drivers.patch | |
parent | 8d6ae7f2a817751fad151168fa10ce28ee0869d8 (diff) | |
download | openbmc-82dbc15a05125a812c140a3c8cff81c366482229.tar.xz |
Update to internal 0.26
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
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.patch | 145 |
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 - |