diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2017-05-01 13:58:06 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-05-01 13:58:08 -0500 |
commit | 4fa6338099fab321035f4d6ec5a666b8762404b2 (patch) | |
tree | 44cfc164d593cc70fc9fc319b8796c244ed74543 | |
parent | 62286ef3f79f461dfdb9dd24d751e8742891e726 (diff) | |
download | talos-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>
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 |