From 40766321c4c36d31471fbcc095303f49251ea019 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Apr 12 2018 17:11:57 +0000 Subject: Disable tps65217-charger, fix for the BeagleBone boot failure, Further fix for ThunderX ZIP driver, fix olpc i686 config --- diff --git a/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch b/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch new file mode 100644 index 0000000..c1ef682 --- /dev/null +++ b/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch @@ -0,0 +1,58 @@ +From patchwork Tue Mar 27 17:47:04 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: clk: ti: fix flag space conflict with clkctrl clocks +From: Tero Kristo +X-Patchwork-Id: 10311335 +Message-Id: <1522172824-14094-1-git-send-email-t-kristo@ti.com> +To: , , + , , + +Cc: , +Date: Tue, 27 Mar 2018 20:47:04 +0300 + +The introduction of support for CLK_SET_RATE_PARENT flag for clkctrl +clocks used a generic clock flag, which causes a conflict with the +rest of the clkctrl flags, namely the NO_IDLEST flag. This can cause +boot failures on certain platforms where this flag is introduced, by +omitting the wait for the clockctrl module to be fully enabled before +proceeding with rest of the code. + +Fix this by moving all the clkctrl specific flags to their own bit-range. + +Signed-off-by: Tero Kristo +Fixes: 49159a9dc3da ("clk: ti: add support for CLK_SET_RATE_PARENT flag") +Reported-by: Christophe Lyon +Tested-by: Tony Lindgren +--- + drivers/clk/ti/clock.h | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h +index 90b86aa..b582780 100644 +--- a/drivers/clk/ti/clock.h ++++ b/drivers/clk/ti/clock.h +@@ -76,6 +76,11 @@ enum { + #define CLKF_CORE (1 << 9) + #define CLKF_J_TYPE (1 << 10) + ++/* CLKCTRL flags */ ++#define CLKF_SW_SUP BIT(5) ++#define CLKF_HW_SUP BIT(6) ++#define CLKF_NO_IDLEST BIT(7) ++ + #define CLK(dev, con, ck) \ + { \ + .lk = { \ +@@ -185,10 +190,6 @@ struct omap_clkctrl_data { + extern const struct omap_clkctrl_data dm814_clkctrl_data[]; + extern const struct omap_clkctrl_data dm816_clkctrl_data[]; + +-#define CLKF_SW_SUP BIT(0) +-#define CLKF_HW_SUP BIT(1) +-#define CLKF_NO_IDLEST BIT(2) +- + typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *); + + struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw, diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_CHARGER_TPS65217 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_CHARGER_TPS65217 index e77c2fc..629b850 100644 --- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_CHARGER_TPS65217 +++ b/configs/fedora/generic/arm/armv7/armv7/CONFIG_CHARGER_TPS65217 @@ -1 +1 @@ -CONFIG_CHARGER_TPS65217=m +# CONFIG_CHARGER_TPS65217 is not set diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_MFD_TPS65217 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_MFD_TPS65217 deleted file mode 100644 index 54a0618..0000000 --- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_MFD_TPS65217 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MFD_TPS65217=y diff --git a/configs/fedora/generic/x86/i686/CONFIG_MFD_CS5535 b/configs/fedora/generic/x86/i686/CONFIG_MFD_CS5535 index ac2f3c2..e3d2403 100644 --- a/configs/fedora/generic/x86/i686/CONFIG_MFD_CS5535 +++ b/configs/fedora/generic/x86/i686/CONFIG_MFD_CS5535 @@ -1 +1 @@ -CONFIG_MFD_CS5535=m +CONFIG_MFD_CS5535=y diff --git a/configs/fedora/generic/x86/i686PAE/CONFIG_MFD_CS5535 b/configs/fedora/generic/x86/i686PAE/CONFIG_MFD_CS5535 index ac2f3c2..e3d2403 100644 --- a/configs/fedora/generic/x86/i686PAE/CONFIG_MFD_CS5535 +++ b/configs/fedora/generic/x86/i686PAE/CONFIG_MFD_CS5535 @@ -1 +1 @@ -CONFIG_MFD_CS5535=m +CONFIG_MFD_CS5535=y diff --git a/crypto-testmgr-Allow-different-compression-results.patch b/crypto-testmgr-Allow-different-compression-results.patch new file mode 100644 index 0000000..c752770 --- /dev/null +++ b/crypto-testmgr-Allow-different-compression-results.patch @@ -0,0 +1,163 @@ +From patchwork Wed Apr 11 18:28:32 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: crypto: testmgr: Allow different compression results +From: Jan Glauber +X-Patchwork-Id: 10336001 +Message-Id: <20180411182832.27761-1-jglauber@cavium.com> +To: Herbert Xu +Cc: "David S . Miller" , + linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, + Mahipal Challa , + Balakrishna Bhamidipati , + Jan Glauber +Date: Wed, 11 Apr 2018 20:28:32 +0200 + +From: Mahipal Challa + +The following error is triggered by the ThunderX ZIP driver +if the testmanager is enabled: + +[ 199.069437] ThunderX-ZIP 0000:03:00.0: Found ZIP device 0 177d:a01a on Node 0 +[ 199.073573] alg: comp: Compression test 1 failed for deflate-generic: output len = 37 + +The reason for this error is the verification of the compression +results. Verifying the compression result only works if all +algorithm parameters are identical, in this case to the software +implementation. + +Different compression engines like the ThunderX ZIP coprocessor +might yield different compression results by tuning the +algorithm parameters. In our case the compressed result is +shorter than the test vector. + +We should not forbid different compression results but only +check that compression -> decompression yields the same +result. This is done already in the acomp test. Do something +similar for test_comp(). + +Signed-off-by: Mahipal Challa +Signed-off-by: Balakrishna Bhamidipati +[jglauber@cavium.com: removed unrelated printk changes, rewrote commit msg, + fixed whitespace and unneeded initialization] +Signed-off-by: Jan Glauber +--- + crypto/testmgr.c | 50 +++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 37 insertions(+), 13 deletions(-) + +diff --git a/crypto/testmgr.c b/crypto/testmgr.c +index af4a01c..627e82e 100644 +--- a/crypto/testmgr.c ++++ b/crypto/testmgr.c +@@ -1342,19 +1342,30 @@ static int test_comp(struct crypto_comp *tfm, + int ctcount, int dtcount) + { + const char *algo = crypto_tfm_alg_driver_name(crypto_comp_tfm(tfm)); ++ char *output, *decomp_output; + unsigned int i; +- char result[COMP_BUF_SIZE]; + int ret; + ++ output = kmalloc(COMP_BUF_SIZE, GFP_KERNEL); ++ if (!output) ++ return -ENOMEM; ++ ++ decomp_output = kmalloc(COMP_BUF_SIZE, GFP_KERNEL); ++ if (!decomp_output) { ++ kfree(output); ++ return -ENOMEM; ++ } ++ + for (i = 0; i < ctcount; i++) { + int ilen; + unsigned int dlen = COMP_BUF_SIZE; + +- memset(result, 0, sizeof (result)); ++ memset(output, 0, sizeof(COMP_BUF_SIZE)); ++ memset(decomp_output, 0, sizeof(COMP_BUF_SIZE)); + + ilen = ctemplate[i].inlen; + ret = crypto_comp_compress(tfm, ctemplate[i].input, +- ilen, result, &dlen); ++ ilen, output, &dlen); + if (ret) { + printk(KERN_ERR "alg: comp: compression failed " + "on test %d for %s: ret=%d\n", i + 1, algo, +@@ -1362,7 +1373,17 @@ static int test_comp(struct crypto_comp *tfm, + goto out; + } + +- if (dlen != ctemplate[i].outlen) { ++ ilen = dlen; ++ dlen = COMP_BUF_SIZE; ++ ret = crypto_comp_decompress(tfm, output, ++ ilen, decomp_output, &dlen); ++ if (ret) { ++ pr_err("alg: comp: compression failed: decompress: on test %d for %s failed: ret=%d\n", ++ i + 1, algo, -ret); ++ goto out; ++ } ++ ++ if (dlen != ctemplate[i].inlen) { + printk(KERN_ERR "alg: comp: Compression test %d " + "failed for %s: output len = %d\n", i + 1, algo, + dlen); +@@ -1370,10 +1391,11 @@ static int test_comp(struct crypto_comp *tfm, + goto out; + } + +- if (memcmp(result, ctemplate[i].output, dlen)) { +- printk(KERN_ERR "alg: comp: Compression test %d " +- "failed for %s\n", i + 1, algo); +- hexdump(result, dlen); ++ if (memcmp(decomp_output, ctemplate[i].input, ++ ctemplate[i].inlen)) { ++ pr_err("alg: comp: compression failed: output differs: on test %d for %s\n", ++ i + 1, algo); ++ hexdump(decomp_output, dlen); + ret = -EINVAL; + goto out; + } +@@ -1383,11 +1405,11 @@ static int test_comp(struct crypto_comp *tfm, + int ilen; + unsigned int dlen = COMP_BUF_SIZE; + +- memset(result, 0, sizeof (result)); ++ memset(decomp_output, 0, sizeof(COMP_BUF_SIZE)); + + ilen = dtemplate[i].inlen; + ret = crypto_comp_decompress(tfm, dtemplate[i].input, +- ilen, result, &dlen); ++ ilen, decomp_output, &dlen); + if (ret) { + printk(KERN_ERR "alg: comp: decompression failed " + "on test %d for %s: ret=%d\n", i + 1, algo, +@@ -1403,10 +1425,10 @@ static int test_comp(struct crypto_comp *tfm, + goto out; + } + +- if (memcmp(result, dtemplate[i].output, dlen)) { ++ if (memcmp(decomp_output, dtemplate[i].output, dlen)) { + printk(KERN_ERR "alg: comp: Decompression test %d " + "failed for %s\n", i + 1, algo); +- hexdump(result, dlen); ++ hexdump(decomp_output, dlen); + ret = -EINVAL; + goto out; + } +@@ -1415,11 +1437,13 @@ static int test_comp(struct crypto_comp *tfm, + ret = 0; + + out: ++ kfree(decomp_output); ++ kfree(output); + return ret; + } + + static int test_acomp(struct crypto_acomp *tfm, +- const struct comp_testvec *ctemplate, ++ const struct comp_testvec *ctemplate, + const struct comp_testvec *dtemplate, + int ctcount, int dtcount) + { diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 20c123d..a036d45 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -883,7 +883,7 @@ CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m CONFIG_CHARGER_TPS65090=m -CONFIG_CHARGER_TPS65217=m +# CONFIG_CHARGER_TPS65217 is not set CONFIG_CHARGER_TWL4030=m # CONFIG_CHASH_SELFTEST is not set # CONFIG_CHASH_STATS is not set @@ -3333,7 +3333,7 @@ CONFIG_MFD_TI_LMU=m # CONFIG_MFD_TIMBERDALE is not set # CONFIG_MFD_TPS65086 is not set CONFIG_MFD_TPS65090=y -CONFIG_MFD_TPS65217=y +# CONFIG_MFD_TPS65217 is not set CONFIG_MFD_TPS65218=m CONFIG_MFD_TPS6586X=y CONFIG_MFD_TPS65910=y diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index e79bc3e..e0428c8 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -882,7 +882,7 @@ CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_SBS is not set CONFIG_CHARGER_SMB347=m CONFIG_CHARGER_TPS65090=m -CONFIG_CHARGER_TPS65217=m +# CONFIG_CHARGER_TPS65217 is not set CONFIG_CHARGER_TWL4030=m # CONFIG_CHASH_SELFTEST is not set # CONFIG_CHASH_STATS is not set @@ -3312,7 +3312,7 @@ CONFIG_MFD_TI_LMU=m # CONFIG_MFD_TIMBERDALE is not set # CONFIG_MFD_TPS65086 is not set CONFIG_MFD_TPS65090=y -CONFIG_MFD_TPS65217=y +# CONFIG_MFD_TPS65217 is not set CONFIG_MFD_TPS65218=m CONFIG_MFD_TPS6586X=y CONFIG_MFD_TPS65910=y diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 8034b53..3a69c93 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -2955,7 +2955,7 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set -CONFIG_MFD_CS5535=m +CONFIG_MFD_CS5535=y # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index f634570..95aaed2 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -2976,7 +2976,7 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set -CONFIG_MFD_CS5535=m +CONFIG_MFD_CS5535=y # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 9bacbf7..440887c 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -2976,7 +2976,7 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set -CONFIG_MFD_CS5535=m +CONFIG_MFD_CS5535=y # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set diff --git a/kernel-i686.config b/kernel-i686.config index 7f6abb0..5a528ef 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -2955,7 +2955,7 @@ CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set -CONFIG_MFD_CS5535=m +CONFIG_MFD_CS5535=y # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9055 is not set diff --git a/kernel.spec b/kernel.spec index 5c7883e..abfd3db 100644 --- a/kernel.spec +++ b/kernel.spec @@ -583,7 +583,13 @@ Patch304: arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch # https://marc.info/?l=linux-kernel&m=152328880417846&w=2 Patch308: arm64-thunderx-crypto-zip-fixes.patch -Patch309: arm-tegra-fix-nouveau-crash.patch +# https://www.spinics.net/lists/linux-crypto/msg32725.html +Patch309: crypto-testmgr-Allow-different-compression-results.patch + +Patch310: arm-tegra-fix-nouveau-crash.patch + +# https://patchwork.kernel.org/patch/10311335/ +Patch312: clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch320: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch @@ -1864,6 +1870,9 @@ fi * Thu Apr 12 2018 Peter Robinson - Patch to fix nouveau on Tegra platforms - Enable IOMMU on Exynos now upstream does +- Disable tps65217-charger on BeagleBone to fix USB-OTG port rhbz 1487399 +- Add fix for the BeagleBone boot failure +- Further fix for ThunderX ZIP driver * Wed Apr 11 2018 Laura Abbott - Enable JFFS2 and some MTD modules (rhbz 1474493)