summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2017-05-01 13:58:06 -0500
committerPatrick Williams <patrick@stwcx.xyz>2017-05-01 13:58:08 -0500
commit4fa6338099fab321035f4d6ec5a666b8762404b2 (patch)
tree44cfc164d593cc70fc9fc319b8796c244ed74543
parent62286ef3f79f461dfdb9dd24d751e8742891e726 (diff)
downloadtalos-openbmc-4fa6338099fab321035f4d6ec5a666b8762404b2.tar.gz
talos-openbmc-4fa6338099fab321035f4d6ec5a666b8762404b2.zip
linux-obmc: bump 4.7 version
Brad Bishop (1): drivers/fsi: Add FSI SBEFIFO driver Christopher Bostic (1): drivers/fsi: Increase delay before sampling input on SDA Edward A. James (6): drivers: fsi: Increase clock delays drivers/fsi: Change interrupt handler device traversal. drivers/fsi: Look for Hub sourced IRQs drivers/fsi: Scan for hub link IRQ sources drivers/fsi: Set IRQ masks along hub path drivers: fsi: Fix hub unregistration Joel Stanley (1): ARM: aspeed: witherspoon: Take UART1 out of reset KenChenIEC (1): ARM: dts: aspeed: Modify Laanyang BMC device tree Change-Id: I59c0653d15af5bda2cb6b46d670088b85b1745ea Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
-rw-r--r--meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc1
-rw-r--r--meta-phosphor/common/recipes-kernel/linux/linux-obmc/v3-0001-drivers-fsi-Increase-delay-before-sampling-input-.patch195
-rw-r--r--meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.7.bb2
3 files changed, 1 insertions, 197 deletions
diff --git a/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc b/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc
index c26f4afb2..78da46967 100644
--- a/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc
+++ b/meta-phosphor/common/recipes-kernel/linux/linux-obmc.inc
@@ -10,7 +10,6 @@ KSRC ?= "git://github.com/openbmc/linux;protocol=git;branch=${KBRANCH}"
SRC_URI = "${KSRC}"
SRC_URI += "file://phosphor-gpio-keys.scc"
SRC_URI += "file://phosphor-gpio-keys.cfg"
-SRC_URI += "file://v3-0001-drivers-fsi-Increase-delay-before-sampling-input-.patch"
LINUX_VERSION_EXTENSION ?= "-${SRCREV}"
diff --git a/meta-phosphor/common/recipes-kernel/linux/linux-obmc/v3-0001-drivers-fsi-Increase-delay-before-sampling-input-.patch b/meta-phosphor/common/recipes-kernel/linux/linux-obmc/v3-0001-drivers-fsi-Increase-delay-before-sampling-input-.patch
deleted file mode 100644
index affb74592..000000000
--- a/meta-phosphor/common/recipes-kernel/linux/linux-obmc/v3-0001-drivers-fsi-Increase-delay-before-sampling-input-.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From d100e52bdaef13d3f9aab162719919f660111479 Mon Sep 17 00:00:00 2001
-From: Christopher Bostic <cbostic@linux.vnet.ibm.com>
-Date: Fri, 17 Mar 2017 16:00:48 -0500
-Subject: [PATCH linux dev-4.7 v3] drivers/fsi: Increase delay before sampling
- input on SDA
-To: joel@jms.id.au
-Cc: openbmc@lists.ozlabs.org
-
-During high cpu loads the SDA in line can shift relative to the
-clock signal which can corrupt the received input data. Slow
-down the time to sample input to account for this.
-
-Add sysfs files to adjust the three main openfsi protocol timing
-values: clock delay; sample delay; clock off time.
-
-Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
----
-v3 - Add sysfs files to adjust protocol timings
-
-v2 - Increase delay for SDA in sampling only.
-
- - Decrease the original delay for SDA sampling from 1us to 200ns
----
- drivers/fsi/fsi-master-gpio.c | 107 ++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 103 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c
-index a8976d5..0907977 100644
---- a/drivers/fsi/fsi-master-gpio.c
-+++ b/drivers/fsi/fsi-master-gpio.c
-@@ -14,6 +14,7 @@
- #include "fsi-master.h"
-
- #define FSI_GPIO_STD_DLY 1 /* Standard pin delay in nS */
-+#define FSI_GPIO_SDA_IN_DLY 200 /* Wait to sample SDA line, in nS */
- #define FSI_ECHO_DELAY_CLOCKS 16 /* Number clocks for echo delay */
- #define FSI_PRE_BREAK_CLOCKS 50 /* Number clocks to prep for break */
- #define FSI_BREAK_CLOCKS 256 /* Number of clocks to issue break */
-@@ -65,6 +66,10 @@
-
- static DEFINE_SPINLOCK(fsi_gpio_cmd_lock); /* lock around fsi commands */
-
-+static int clock_delay = FSI_GPIO_STD_DLY;
-+static int clock_off_time = FSI_GPIO_STD_DLY;
-+static int sample_delay = FSI_GPIO_SDA_IN_DLY;
-+
- struct fsi_master_gpio {
- struct fsi_master master;
- struct gpio_desc *gpio_clk;
-@@ -86,9 +91,11 @@ static void clock_toggle(struct fsi_master_gpio *master, int count)
- int i;
-
- for (i = 0; i < count; i++) {
-- ndelay(FSI_GPIO_STD_DLY);
-+ udelay(clock_delay / 1000);
-+ ndelay(clock_delay % 1000);
- gpiod_set_value(master->gpio_clk, 0);
-- ndelay(FSI_GPIO_STD_DLY);
-+ udelay(clock_off_time / 1000);
-+ ndelay(clock_off_time % 1000);
- gpiod_set_value(master->gpio_clk, 1);
- }
- }
-@@ -97,7 +104,8 @@ static int sda_in(struct fsi_master_gpio *master)
- {
- int in;
-
-- ndelay(FSI_GPIO_STD_DLY);
-+ udelay(sample_delay / 1000);
-+ ndelay(sample_delay % 1000);
- in = gpiod_get_value(master->gpio_data);
- return in ? 1 : 0;
- }
-@@ -497,10 +505,77 @@ static ssize_t store_scan(struct device *dev,
-
- static DEVICE_ATTR(scan, 0200, NULL, store_scan);
-
-+static ssize_t clock_delay_show(struct device *dev,
-+ struct device_attribute *attr, char *buf)
-+{
-+ return snprintf(buf, PAGE_SIZE - 1, "%u\n", clock_delay);
-+}
-+
-+static ssize_t clock_delay_store(struct device *dev,
-+ struct device_attribute *attr,
-+ const char *buf, size_t count)
-+{
-+ int rc;
-+ unsigned long val = 0;
-+
-+ rc = kstrtoul(buf, 0, &val);
-+ clock_delay = val;
-+
-+ return count;
-+}
-+
-+DEVICE_ATTR(clock_delay, S_IRUGO | S_IWUSR, clock_delay_show,
-+ clock_delay_store);
-+
-+static ssize_t clock_off_time_show(struct device *dev,
-+ struct device_attribute *attr, char *buf)
-+{
-+ return snprintf(buf, PAGE_SIZE - 1, "%u\n", clock_off_time);
-+}
-+
-+static ssize_t clock_off_time_store(struct device *dev,
-+ struct device_attribute *attr,
-+ const char *buf, size_t count)
-+{
-+ int rc;
-+ unsigned long val = 0;
-+
-+ rc = kstrtoul(buf, 0, &val);
-+ clock_off_time = val;
-+
-+ return count;
-+}
-+
-+DEVICE_ATTR(clock_off_time, S_IRUGO | S_IWUSR, clock_off_time_show,
-+ clock_off_time_store);
-+
-+static ssize_t sample_delay_show(struct device *dev,
-+ struct device_attribute *attr, char *buf)
-+{
-+ return snprintf(buf, PAGE_SIZE - 1, "%u\n", sample_delay);
-+}
-+
-+static ssize_t sample_delay_store(struct device *dev,
-+ struct device_attribute *attr,
-+ const char *buf, size_t count)
-+{
-+ int rc;
-+ unsigned long val = 0;
-+
-+ rc = kstrtoul(buf, 0, &val);
-+ sample_delay = val;
-+
-+ return count;
-+}
-+
-+DEVICE_ATTR(sample_delay, S_IRUGO | S_IWUSR, sample_delay_show,
-+ sample_delay_store);
-+
- static int fsi_master_gpio_probe(struct platform_device *pdev)
- {
- struct fsi_master_gpio *master;
- struct gpio_desc *gpio;
-+ int rc;
-
- master = devm_kzalloc(&pdev->dev, sizeof(*master), GFP_KERNEL);
- if (!master)
-@@ -548,8 +623,29 @@ static int fsi_master_gpio_probe(struct platform_device *pdev)
- master->master.send_break = fsi_master_gpio_break;
- master->master.link_enable = fsi_master_gpio_link_enable;
- platform_set_drvdata(pdev, master);
-+ rc = device_create_file(&pdev->dev, &dev_attr_clock_off_time);
-+ if (rc)
-+ goto done;
-+ rc = device_create_file(&pdev->dev, &dev_attr_clock_delay);
-+ if (rc)
-+ goto rem_clock_off;
-+ rc = device_create_file(&pdev->dev, &dev_attr_sample_delay);
-+ if (rc)
-+ goto rem_clock_delay;
-+ rc = device_create_file(&pdev->dev, &dev_attr_scan);
-+ if (rc)
-+ goto rem_sample_delay;
-
-- return device_create_file(&pdev->dev, &dev_attr_scan);
-+ return rc;
-+
-+rem_sample_delay:
-+ device_remove_file(&pdev->dev, &dev_attr_sample_delay);
-+rem_clock_delay:
-+ device_remove_file(&pdev->dev, &dev_attr_clock_delay);
-+rem_clock_off:
-+ device_remove_file(&pdev->dev, &dev_attr_clock_off_time);
-+done:
-+ return rc;
- }
-
-
-@@ -576,6 +672,9 @@ static int fsi_master_gpio_remove(struct platform_device *pdev)
- devm_gpiod_put(&pdev->dev, master->gpio_mux);
- }
- fsi_master_unregister(&master->master);
-+ device_remove_file(&pdev->dev, &dev_attr_clock_off_time);
-+ device_remove_file(&pdev->dev, &dev_attr_clock_delay);
-+ device_remove_file(&pdev->dev, &dev_attr_sample_delay);
- device_remove_file(&pdev->dev, &dev_attr_scan);
-
- return 0;
---
-1.8.2.2
-
diff --git a/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.7.bb b/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.7.bb
index d573957c4..485ba7311 100644
--- a/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.7.bb
+++ b/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.7.bb
@@ -1,6 +1,6 @@
KBRANCH ?= "dev-4.7"
LINUX_VERSION ?= "4.7.10"
-SRCREV="b6e95d08c1fd39409fe0d127007a4166024fc8e7"
+SRCREV="912e689d0b12445025dab6053825c81e7777bcd3"
require linux-obmc.inc
OpenPOWER on IntegriCloud