]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Mar 2019 20:11:10 +0000 (21:11 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Mar 2019 20:11:10 +0000 (21:11 +0100)
added patches:
clk-clk-twl6040-fix-imprecise-external-abort-for-pdmclk.patch
clk-ingenic-fix-doc-of-ingenic_cgu_div_info.patch
clk-ingenic-fix-round_rate-misbehaving-with-non-integer-dividers.patch
cpufreq-pxa2xx-remove-incorrect-__init-annotation.patch
cpufreq-tegra124-add-missing-of_node_put.patch
ext2-fix-underflow-in-ext2_max_size.patch
ext4-fix-crash-during-online-resizing.patch
libertas_tf-don-t-set-urb_zero_packet-on-in-usb-transfer.patch

queue-4.9/clk-clk-twl6040-fix-imprecise-external-abort-for-pdmclk.patch [new file with mode: 0644]
queue-4.9/clk-ingenic-fix-doc-of-ingenic_cgu_div_info.patch [new file with mode: 0644]
queue-4.9/clk-ingenic-fix-round_rate-misbehaving-with-non-integer-dividers.patch [new file with mode: 0644]
queue-4.9/cpufreq-pxa2xx-remove-incorrect-__init-annotation.patch [new file with mode: 0644]
queue-4.9/cpufreq-tegra124-add-missing-of_node_put.patch [new file with mode: 0644]
queue-4.9/ext2-fix-underflow-in-ext2_max_size.patch [new file with mode: 0644]
queue-4.9/ext4-fix-crash-during-online-resizing.patch [new file with mode: 0644]
queue-4.9/libertas_tf-don-t-set-urb_zero_packet-on-in-usb-transfer.patch [new file with mode: 0644]
queue-4.9/regulator-max77620-initialize-values-for-dt-properties.patch [deleted file]
queue-4.9/series

diff --git a/queue-4.9/clk-clk-twl6040-fix-imprecise-external-abort-for-pdmclk.patch b/queue-4.9/clk-clk-twl6040-fix-imprecise-external-abort-for-pdmclk.patch
new file mode 100644 (file)
index 0000000..bde7d50
--- /dev/null
@@ -0,0 +1,117 @@
+From 5ae51d67aec95f6f9386aa8dd5db424964895575 Mon Sep 17 00:00:00 2001
+From: Tony Lindgren <tony@atomide.com>
+Date: Mon, 11 Feb 2019 14:59:07 -0800
+Subject: clk: clk-twl6040: Fix imprecise external abort for pdmclk
+
+From: Tony Lindgren <tony@atomide.com>
+
+commit 5ae51d67aec95f6f9386aa8dd5db424964895575 upstream.
+
+I noticed that modprobe clk-twl6040 can fail after a cold boot with:
+abe_cm:clk:0010:0: failed to enable
+...
+Unhandled fault: imprecise external abort (0x1406) at 0xbe896b20
+
+WARNING: CPU: 1 PID: 29 at drivers/clk/clk.c:828 clk_core_disable_lock+0x18/0x24
+...
+(clk_core_disable_lock) from [<c0123534>] (_disable_clocks+0x18/0x90)
+(_disable_clocks) from [<c0124040>] (_idle+0x17c/0x244)
+(_idle) from [<c0125ad4>] (omap_hwmod_idle+0x24/0x44)
+(omap_hwmod_idle) from [<c053a038>] (sysc_runtime_suspend+0x48/0x108)
+(sysc_runtime_suspend) from [<c06084c4>] (__rpm_callback+0x144/0x1d8)
+(__rpm_callback) from [<c0608578>] (rpm_callback+0x20/0x80)
+(rpm_callback) from [<c0607034>] (rpm_suspend+0x120/0x694)
+(rpm_suspend) from [<c0607a78>] (__pm_runtime_idle+0x60/0x84)
+(__pm_runtime_idle) from [<c053aaf0>] (sysc_probe+0x874/0xf2c)
+(sysc_probe) from [<c05fecd4>] (platform_drv_probe+0x48/0x98)
+
+After searching around for a similar issue, I came across an earlier fix
+that never got merged upstream in the Android tree for glass-omap-xrr02.
+There is patch "MFD: twl6040-codec: Implement PDMCLK cold temp errata"
+by Misael Lopez Cruz <misael.lopez@ti.com>.
+
+Based on my observations, this fix is also needed when cold booting
+devices, and not just for deeper idle modes. Since we now have a clock
+driver for pdmclk, let's fix the issue in twl6040_pdmclk_prepare().
+
+Cc: Misael Lopez Cruz <misael.lopez@ti.com>
+Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/clk/clk-twl6040.c |   53 ++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 51 insertions(+), 2 deletions(-)
+
+--- a/drivers/clk/clk-twl6040.c
++++ b/drivers/clk/clk-twl6040.c
+@@ -41,6 +41,43 @@ static int twl6040_pdmclk_is_prepared(st
+       return pdmclk->enabled;
+ }
++static int twl6040_pdmclk_reset_one_clock(struct twl6040_pdmclk *pdmclk,
++                                        unsigned int reg)
++{
++      const u8 reset_mask = TWL6040_HPLLRST;  /* Same for HPPLL and LPPLL */
++      int ret;
++
++      ret = twl6040_set_bits(pdmclk->twl6040, reg, reset_mask);
++      if (ret < 0)
++              return ret;
++
++      ret = twl6040_clear_bits(pdmclk->twl6040, reg, reset_mask);
++      if (ret < 0)
++              return ret;
++
++      return 0;
++}
++
++/*
++ * TWL6040A2 Phoenix Audio IC erratum #6: "PDM Clock Generation Issue At
++ * Cold Temperature". This affects cold boot and deeper idle states it
++ * seems. The workaround consists of resetting HPPLL and LPPLL.
++ */
++static int twl6040_pdmclk_quirk_reset_clocks(struct twl6040_pdmclk *pdmclk)
++{
++      int ret;
++
++      ret = twl6040_pdmclk_reset_one_clock(pdmclk, TWL6040_REG_HPPLLCTL);
++      if (ret)
++              return ret;
++
++      ret = twl6040_pdmclk_reset_one_clock(pdmclk, TWL6040_REG_LPPLLCTL);
++      if (ret)
++              return ret;
++
++      return 0;
++}
++
+ static int twl6040_pdmclk_prepare(struct clk_hw *hw)
+ {
+       struct twl6040_pdmclk *pdmclk = container_of(hw, struct twl6040_pdmclk,
+@@ -48,8 +85,20 @@ static int twl6040_pdmclk_prepare(struct
+       int ret;
+       ret = twl6040_power(pdmclk->twl6040, 1);
+-      if (!ret)
+-              pdmclk->enabled = 1;
++      if (ret)
++              return ret;
++
++      ret = twl6040_pdmclk_quirk_reset_clocks(pdmclk);
++      if (ret)
++              goto out_err;
++
++      pdmclk->enabled = 1;
++
++      return 0;
++
++out_err:
++      dev_err(pdmclk->dev, "%s: error %i\n", __func__, ret);
++      twl6040_power(pdmclk->twl6040, 0);
+       return ret;
+ }
diff --git a/queue-4.9/clk-ingenic-fix-doc-of-ingenic_cgu_div_info.patch b/queue-4.9/clk-ingenic-fix-doc-of-ingenic_cgu_div_info.patch
new file mode 100644 (file)
index 0000000..34fe427
--- /dev/null
@@ -0,0 +1,34 @@
+From 7ca4c922aad2e3c46767a12f80d01c6b25337b59 Mon Sep 17 00:00:00 2001
+From: Paul Cercueil <paul@crapouillou.net>
+Date: Sun, 27 Jan 2019 23:09:21 -0300
+Subject: clk: ingenic: Fix doc of ingenic_cgu_div_info
+
+From: Paul Cercueil <paul@crapouillou.net>
+
+commit 7ca4c922aad2e3c46767a12f80d01c6b25337b59 upstream.
+
+The 'div' field does not represent a number of bits used to divide
+(understand: right-shift) the divider, but a number itself used to
+divide the divider.
+
+Signed-off-by: Paul Cercueil <paul@crapouillou.net>
+Signed-off-by: Maarten ter Huurne <maarten@treewalker.org>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/clk/ingenic/cgu.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/clk/ingenic/cgu.h
++++ b/drivers/clk/ingenic/cgu.h
+@@ -78,7 +78,7 @@ struct ingenic_cgu_mux_info {
+  * @reg: offset of the divider control register within the CGU
+  * @shift: number of bits to left shift the divide value by (ie. the index of
+  *         the lowest bit of the divide value within its control register)
+- * @div: number of bits to divide the divider value by (i.e. if the
++ * @div: number to divide the divider value by (i.e. if the
+  *     effective divider value is the value written to the register
+  *     multiplied by some constant)
+  * @bits: the size of the divide value in bits
diff --git a/queue-4.9/clk-ingenic-fix-round_rate-misbehaving-with-non-integer-dividers.patch b/queue-4.9/clk-ingenic-fix-round_rate-misbehaving-with-non-integer-dividers.patch
new file mode 100644 (file)
index 0000000..40b5e49
--- /dev/null
@@ -0,0 +1,63 @@
+From bc5d922c93491878c44c9216e9d227c7eeb81d7f Mon Sep 17 00:00:00 2001
+From: Paul Cercueil <paul@crapouillou.net>
+Date: Sun, 27 Jan 2019 23:09:20 -0300
+Subject: clk: ingenic: Fix round_rate misbehaving with non-integer dividers
+
+From: Paul Cercueil <paul@crapouillou.net>
+
+commit bc5d922c93491878c44c9216e9d227c7eeb81d7f upstream.
+
+Take a parent rate of 180 MHz, and a requested rate of 4.285715 MHz.
+This results in a theorical divider of 41.999993 which is then rounded
+up to 42. The .round_rate function would then return (180 MHz / 42) as
+the clock, rounded down, so 4.285714 MHz.
+
+Calling clk_set_rate on 4.285714 MHz would round the rate again, and
+give a theorical divider of 42,0000028, now rounded up to 43, and the
+rate returned would be (180 MHz / 43) which is 4.186046 MHz, aka. not
+what we requested.
+
+Fix this by rounding up the divisions.
+
+Signed-off-by: Paul Cercueil <paul@crapouillou.net>
+Tested-by: Maarten ter Huurne <maarten@treewalker.org>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/clk/ingenic/cgu.c |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/clk/ingenic/cgu.c
++++ b/drivers/clk/ingenic/cgu.c
+@@ -364,16 +364,16 @@ ingenic_clk_round_rate(struct clk_hw *hw
+       struct ingenic_clk *ingenic_clk = to_ingenic_clk(hw);
+       struct ingenic_cgu *cgu = ingenic_clk->cgu;
+       const struct ingenic_cgu_clk_info *clk_info;
+-      long rate = *parent_rate;
++      unsigned int div = 1;
+       clk_info = &cgu->clock_info[ingenic_clk->idx];
+       if (clk_info->type & CGU_CLK_DIV)
+-              rate /= ingenic_clk_calc_div(clk_info, *parent_rate, req_rate);
++              div = ingenic_clk_calc_div(clk_info, *parent_rate, req_rate);
+       else if (clk_info->type & CGU_CLK_FIXDIV)
+-              rate /= clk_info->fixdiv.div;
++              div = clk_info->fixdiv.div;
+-      return rate;
++      return DIV_ROUND_UP(*parent_rate, div);
+ }
+ static int
+@@ -393,7 +393,7 @@ ingenic_clk_set_rate(struct clk_hw *hw,
+       if (clk_info->type & CGU_CLK_DIV) {
+               div = ingenic_clk_calc_div(clk_info, parent_rate, req_rate);
+-              rate = parent_rate / div;
++              rate = DIV_ROUND_UP(parent_rate, div);
+               if (rate != req_rate)
+                       return -EINVAL;
diff --git a/queue-4.9/cpufreq-pxa2xx-remove-incorrect-__init-annotation.patch b/queue-4.9/cpufreq-pxa2xx-remove-incorrect-__init-annotation.patch
new file mode 100644 (file)
index 0000000..a449ec4
--- /dev/null
@@ -0,0 +1,53 @@
+From 9505b98ccddc454008ca7efff90044e3e857c827 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Thu, 7 Mar 2019 11:22:41 +0100
+Subject: cpufreq: pxa2xx: remove incorrect __init annotation
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit 9505b98ccddc454008ca7efff90044e3e857c827 upstream.
+
+pxa_cpufreq_init_voltages() is marked __init but usually inlined into
+the non-__init pxa_cpufreq_init() function. When building with clang,
+it can stay as a standalone function in a discarded section, and produce
+this warning:
+
+WARNING: vmlinux.o(.text+0x616a00): Section mismatch in reference from the function pxa_cpufreq_init() to the function .init.text:pxa_cpufreq_init_voltages()
+The function pxa_cpufreq_init() references
+the function __init pxa_cpufreq_init_voltages().
+This is often because pxa_cpufreq_init lacks a __init
+annotation or the annotation of pxa_cpufreq_init_voltages is wrong.
+
+Fixes: 50e77fcd790e ("ARM: pxa: remove __init from cpufreq_driver->init()")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
+Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
+Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
+Cc: All applicable <stable@vger.kernel.org>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/cpufreq/pxa2xx-cpufreq.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/cpufreq/pxa2xx-cpufreq.c
++++ b/drivers/cpufreq/pxa2xx-cpufreq.c
+@@ -192,7 +192,7 @@ static int pxa_cpufreq_change_voltage(co
+       return ret;
+ }
+-static void __init pxa_cpufreq_init_voltages(void)
++static void pxa_cpufreq_init_voltages(void)
+ {
+       vcc_core = regulator_get(NULL, "vcc_core");
+       if (IS_ERR(vcc_core)) {
+@@ -208,7 +208,7 @@ static int pxa_cpufreq_change_voltage(co
+       return 0;
+ }
+-static void __init pxa_cpufreq_init_voltages(void) { }
++static void pxa_cpufreq_init_voltages(void) { }
+ #endif
+ static void find_freq_tables(struct cpufreq_frequency_table **freq_table,
diff --git a/queue-4.9/cpufreq-tegra124-add-missing-of_node_put.patch b/queue-4.9/cpufreq-tegra124-add-missing-of_node_put.patch
new file mode 100644 (file)
index 0000000..27cb92f
--- /dev/null
@@ -0,0 +1,35 @@
+From 446fae2bb5395f3028d8e3aae1508737e5a72ea1 Mon Sep 17 00:00:00 2001
+From: Yangtao Li <tiny.windzz@gmail.com>
+Date: Mon, 4 Feb 2019 02:48:54 -0500
+Subject: cpufreq: tegra124: add missing of_node_put()
+
+From: Yangtao Li <tiny.windzz@gmail.com>
+
+commit 446fae2bb5395f3028d8e3aae1508737e5a72ea1 upstream.
+
+of_cpu_device_node_get() will increase the refcount of device_node,
+it is necessary to call of_node_put() at the end to release the
+refcount.
+
+Fixes: 9eb15dbbfa1a2 ("cpufreq: Add cpufreq driver for Tegra124")
+Cc: <stable@vger.kernel.org> # 4.4+
+Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
+Acked-by: Thierry Reding <treding@nvidia.com>
+Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/cpufreq/tegra124-cpufreq.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/cpufreq/tegra124-cpufreq.c
++++ b/drivers/cpufreq/tegra124-cpufreq.c
+@@ -134,6 +134,8 @@ static int tegra124_cpufreq_probe(struct
+       platform_set_drvdata(pdev, priv);
++      of_node_put(np);
++
+       return 0;
+ out_switch_to_pllx:
diff --git a/queue-4.9/ext2-fix-underflow-in-ext2_max_size.patch b/queue-4.9/ext2-fix-underflow-in-ext2_max_size.patch
new file mode 100644 (file)
index 0000000..958ce06
--- /dev/null
@@ -0,0 +1,98 @@
+From 1c2d14212b15a60300a2d4f6364753e87394c521 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Tue, 29 Jan 2019 17:17:24 +0100
+Subject: ext2: Fix underflow in ext2_max_size()
+
+From: Jan Kara <jack@suse.cz>
+
+commit 1c2d14212b15a60300a2d4f6364753e87394c521 upstream.
+
+When ext2 filesystem is created with 64k block size, ext2_max_size()
+will return value less than 0. Also, we cannot write any file in this fs
+since the sb->maxbytes is less than 0. The core of the problem is that
+the size of block index tree for such large block size is more than
+i_blocks can carry. So fix the computation to count with this
+possibility.
+
+File size limits computed with the new function for the full range of
+possible block sizes look like:
+
+bits file_size
+10     17247252480
+11    275415851008
+12   2196873666560
+13   2197948973056
+14   2198486220800
+15   2198754754560
+16   2198888906752
+
+CC: stable@vger.kernel.org
+Reported-by: yangerkun <yangerkun@huawei.com>
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext2/super.c |   41 ++++++++++++++++++++++++++---------------
+ 1 file changed, 26 insertions(+), 15 deletions(-)
+
+--- a/fs/ext2/super.c
++++ b/fs/ext2/super.c
+@@ -724,7 +724,8 @@ static loff_t ext2_max_size(int bits)
+ {
+       loff_t res = EXT2_NDIR_BLOCKS;
+       int meta_blocks;
+-      loff_t upper_limit;
++      unsigned int upper_limit;
++      unsigned int ppb = 1 << (bits-2);
+       /* This is calculated to be the largest file size for a
+        * dense, file such that the total number of
+@@ -738,24 +739,34 @@ static loff_t ext2_max_size(int bits)
+       /* total blocks in file system block size */
+       upper_limit >>= (bits - 9);
+-
+-      /* indirect blocks */
+-      meta_blocks = 1;
+-      /* double indirect blocks */
+-      meta_blocks += 1 + (1LL << (bits-2));
+-      /* tripple indirect blocks */
+-      meta_blocks += 1 + (1LL << (bits-2)) + (1LL << (2*(bits-2)));
+-
+-      upper_limit -= meta_blocks;
+-      upper_limit <<= bits;
+-
++      /* Compute how many blocks we can address by block tree */
+       res += 1LL << (bits-2);
+       res += 1LL << (2*(bits-2));
+       res += 1LL << (3*(bits-2));
++      /* Does block tree limit file size? */
++      if (res < upper_limit)
++              goto check_lfs;
++
++      res = upper_limit;
++      /* How many metadata blocks are needed for addressing upper_limit? */
++      upper_limit -= EXT2_NDIR_BLOCKS;
++      /* indirect blocks */
++      meta_blocks = 1;
++      upper_limit -= ppb;
++      /* double indirect blocks */
++      if (upper_limit < ppb * ppb) {
++              meta_blocks += 1 + DIV_ROUND_UP(upper_limit, ppb);
++              res -= meta_blocks;
++              goto check_lfs;
++      }
++      meta_blocks += 1 + ppb;
++      upper_limit -= ppb * ppb;
++      /* tripple indirect blocks for the rest */
++      meta_blocks += 1 + DIV_ROUND_UP(upper_limit, ppb) +
++              DIV_ROUND_UP(upper_limit, ppb*ppb);
++      res -= meta_blocks;
++check_lfs:
+       res <<= bits;
+-      if (res > upper_limit)
+-              res = upper_limit;
+-
+       if (res > MAX_LFS_FILESIZE)
+               res = MAX_LFS_FILESIZE;
diff --git a/queue-4.9/ext4-fix-crash-during-online-resizing.patch b/queue-4.9/ext4-fix-crash-during-online-resizing.patch
new file mode 100644 (file)
index 0000000..25b192b
--- /dev/null
@@ -0,0 +1,48 @@
+From f96c3ac8dfc24b4e38fc4c2eba5fea2107b929d1 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 11 Feb 2019 13:30:32 -0500
+Subject: ext4: fix crash during online resizing
+
+From: Jan Kara <jack@suse.cz>
+
+commit f96c3ac8dfc24b4e38fc4c2eba5fea2107b929d1 upstream.
+
+When computing maximum size of filesystem possible with given number of
+group descriptor blocks, we forget to include s_first_data_block into
+the number of blocks. Thus for filesystems with non-zero
+s_first_data_block it can happen that computed maximum filesystem size
+is actually lower than current filesystem size which confuses the code
+and eventually leads to a BUG_ON in ext4_alloc_group_tables() hitting on
+flex_gd->count == 0. The problem can be reproduced like:
+
+truncate -s 100g /tmp/image
+mkfs.ext4 -b 1024 -E resize=262144 /tmp/image 32768
+mount -t ext4 -o loop /tmp/image /mnt
+resize2fs /dev/loop0 262145
+resize2fs /dev/loop0 300000
+
+Fix the problem by properly including s_first_data_block into the
+computed number of filesystem blocks.
+
+Fixes: 1c6bd7173d66 "ext4: convert file system to meta_bg if needed..."
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext4/resize.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/fs/ext4/resize.c
++++ b/fs/ext4/resize.c
+@@ -1928,7 +1928,8 @@ retry:
+                               le16_to_cpu(es->s_reserved_gdt_blocks);
+                       n_group = n_desc_blocks * EXT4_DESC_PER_BLOCK(sb);
+                       n_blocks_count = (ext4_fsblk_t)n_group *
+-                              EXT4_BLOCKS_PER_GROUP(sb);
++                              EXT4_BLOCKS_PER_GROUP(sb) +
++                              le32_to_cpu(es->s_first_data_block);
+                       n_group--; /* set to last group number */
+               }
diff --git a/queue-4.9/libertas_tf-don-t-set-urb_zero_packet-on-in-usb-transfer.patch b/queue-4.9/libertas_tf-don-t-set-urb_zero_packet-on-in-usb-transfer.patch
new file mode 100644 (file)
index 0000000..cbe71d9
--- /dev/null
@@ -0,0 +1,36 @@
+From 607076a904c435f2677fadaadd4af546279db68b Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Sun, 10 Feb 2019 20:47:49 +0100
+Subject: libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
+
+From: Lubomir Rintel <lkundrak@v3.sk>
+
+commit 607076a904c435f2677fadaadd4af546279db68b upstream.
+
+It doesn't make sense and the USB core warns on each submit of such
+URB, easily flooding the message buffer with tracebacks.
+
+Analogous issue was fixed in regular libertas driver in commit 6528d8804780
+("libertas: don't set URB_ZERO_PACKET on IN USB transfer").
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
+Reviewed-by: Steve deRosier <derosier@cal-sierra.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/marvell/libertas_tf/if_usb.c |    2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/net/wireless/marvell/libertas_tf/if_usb.c
++++ b/drivers/net/wireless/marvell/libertas_tf/if_usb.c
+@@ -433,8 +433,6 @@ static int __if_usb_submit_rx_urb(struct
+                         skb_tail_pointer(skb),
+                         MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn, cardp);
+-      cardp->rx_urb->transfer_flags |= URB_ZERO_PACKET;
+-
+       lbtf_deb_usb2(&cardp->udev->dev, "Pointer for rx_urb %p\n",
+               cardp->rx_urb);
+       ret = usb_submit_urb(cardp->rx_urb, GFP_ATOMIC);
diff --git a/queue-4.9/regulator-max77620-initialize-values-for-dt-properties.patch b/queue-4.9/regulator-max77620-initialize-values-for-dt-properties.patch
deleted file mode 100644 (file)
index 94351db..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0ab66b3c326ef8f77dae9f528118966365757c0c Mon Sep 17 00:00:00 2001
-From: Mark Zhang <markz@nvidia.com>
-Date: Thu, 10 Jan 2019 12:11:16 +0800
-Subject: regulator: max77620: Initialize values for DT properties
-
-From: Mark Zhang <markz@nvidia.com>
-
-commit 0ab66b3c326ef8f77dae9f528118966365757c0c upstream.
-
-If regulator DT node doesn't exist, its of_parse_cb callback
-function isn't called. Then all values for DT properties are
-filled with zero. This leads to wrong register update for
-FPS and POK settings.
-
-Signed-off-by: Jinyoung Park <jinyoungp@nvidia.com>
-Signed-off-by: Mark Zhang <markz@nvidia.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/regulator/max77620-regulator.c |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
---- a/drivers/regulator/max77620-regulator.c
-+++ b/drivers/regulator/max77620-regulator.c
-@@ -1,7 +1,7 @@
- /*
-  * Maxim MAX77620 Regulator driver
-  *
-- * Copyright (c) 2016, NVIDIA CORPORATION.  All rights reserved.
-+ * Copyright (c) 2016-2018, NVIDIA CORPORATION.  All rights reserved.
-  *
-  * Author: Mallikarjun Kasoju <mkasoju@nvidia.com>
-  *    Laxman Dewangan <ldewangan@nvidia.com>
-@@ -760,6 +760,14 @@ static int max77620_regulator_probe(stru
-               rdesc = &rinfo[id].desc;
-               pmic->rinfo[id] = &max77620_regs_info[id];
-               pmic->enable_power_mode[id] = MAX77620_POWER_MODE_NORMAL;
-+              pmic->reg_pdata[id].active_fps_src = -1;
-+              pmic->reg_pdata[id].active_fps_pd_slot = -1;
-+              pmic->reg_pdata[id].active_fps_pu_slot = -1;
-+              pmic->reg_pdata[id].suspend_fps_src = -1;
-+              pmic->reg_pdata[id].suspend_fps_pd_slot = -1;
-+              pmic->reg_pdata[id].suspend_fps_pu_slot = -1;
-+              pmic->reg_pdata[id].power_ok = -1;
-+              pmic->reg_pdata[id].ramp_rate_setting = -1;
-               ret = max77620_read_slew_rate(pmic, id);
-               if (ret < 0)
index c883a879140c6306f1151b38b86c8d52d06cbe77..a78fa4774f6cf6ed11c3a4ab3f3fdf8dd8f1ac93 100644 (file)
@@ -55,7 +55,6 @@ acpi-device_sysfs-avoid-of-modalias-creation-for-removed-device.patch
 spi-ti-qspi-fix-mmap-read-when-more-than-one-cs-in-use.patch
 spi-pxa2xx-setup-maximum-supported-dma-transfer-length.patch
 regulator-s2mps11-fix-steps-for-buck7-buck8-and-ldo35.patch
-regulator-max77620-initialize-values-for-dt-properties.patch
 regulator-s2mpa01-fix-step-values-for-some-ldos.patch
 clocksource-drivers-exynos_mct-move-one-shot-check-from-tick-clear-to-isr.patch
 clocksource-drivers-exynos_mct-clear-timer-interrupt-when-shutdown.patch
@@ -69,3 +68,11 @@ m68k-add-ffreestanding-to-cflags.patch
 btrfs-ensure-that-a-dup-or-raid1-block-group-has-exactly-two-stripes.patch
 btrfs-fix-corruption-reading-shared-and-compressed-extents-after-hole-punching.patch
 crypto-pcbc-remove-bogus-memcpy-s-with-src-dest.patch
+libertas_tf-don-t-set-urb_zero_packet-on-in-usb-transfer.patch
+cpufreq-tegra124-add-missing-of_node_put.patch
+cpufreq-pxa2xx-remove-incorrect-__init-annotation.patch
+ext4-fix-crash-during-online-resizing.patch
+ext2-fix-underflow-in-ext2_max_size.patch
+clk-clk-twl6040-fix-imprecise-external-abort-for-pdmclk.patch
+clk-ingenic-fix-round_rate-misbehaving-with-non-integer-dividers.patch
+clk-ingenic-fix-doc-of-ingenic_cgu_div_info.patch