From: Greg Kroah-Hartman Date: Wed, 20 Mar 2019 20:11:10 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v3.18.137~56 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70704293431a6c10ee50fc458109ff4b0b799b34;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches 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 --- 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 index 00000000000..bde7d50025b --- /dev/null +++ b/queue-4.9/clk-clk-twl6040-fix-imprecise-external-abort-for-pdmclk.patch @@ -0,0 +1,117 @@ +From 5ae51d67aec95f6f9386aa8dd5db424964895575 Mon Sep 17 00:00:00 2001 +From: Tony Lindgren +Date: Mon, 11 Feb 2019 14:59:07 -0800 +Subject: clk: clk-twl6040: Fix imprecise external abort for pdmclk + +From: Tony Lindgren + +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 [] (_disable_clocks+0x18/0x90) +(_disable_clocks) from [] (_idle+0x17c/0x244) +(_idle) from [] (omap_hwmod_idle+0x24/0x44) +(omap_hwmod_idle) from [] (sysc_runtime_suspend+0x48/0x108) +(sysc_runtime_suspend) from [] (__rpm_callback+0x144/0x1d8) +(__rpm_callback) from [] (rpm_callback+0x20/0x80) +(rpm_callback) from [] (rpm_suspend+0x120/0x694) +(rpm_suspend) from [] (__pm_runtime_idle+0x60/0x84) +(__pm_runtime_idle) from [] (sysc_probe+0x874/0xf2c) +(sysc_probe) from [] (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 . + +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 +Cc: Peter Ujfalusi +Signed-off-by: Tony Lindgren +Acked-by: Peter Ujfalusi +Cc: +Signed-off-by: Stephen Boyd +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..34fe427056e --- /dev/null +++ b/queue-4.9/clk-ingenic-fix-doc-of-ingenic_cgu_div_info.patch @@ -0,0 +1,34 @@ +From 7ca4c922aad2e3c46767a12f80d01c6b25337b59 Mon Sep 17 00:00:00 2001 +From: Paul Cercueil +Date: Sun, 27 Jan 2019 23:09:21 -0300 +Subject: clk: ingenic: Fix doc of ingenic_cgu_div_info + +From: Paul Cercueil + +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 +Signed-off-by: Maarten ter Huurne +Cc: +Signed-off-by: Stephen Boyd +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..40b5e49e230 --- /dev/null +++ b/queue-4.9/clk-ingenic-fix-round_rate-misbehaving-with-non-integer-dividers.patch @@ -0,0 +1,63 @@ +From bc5d922c93491878c44c9216e9d227c7eeb81d7f Mon Sep 17 00:00:00 2001 +From: Paul Cercueil +Date: Sun, 27 Jan 2019 23:09:20 -0300 +Subject: clk: ingenic: Fix round_rate misbehaving with non-integer dividers + +From: Paul Cercueil + +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 +Tested-by: Maarten ter Huurne +Cc: +Signed-off-by: Stephen Boyd +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..a449ec4fe7e --- /dev/null +++ b/queue-4.9/cpufreq-pxa2xx-remove-incorrect-__init-annotation.patch @@ -0,0 +1,53 @@ +From 9505b98ccddc454008ca7efff90044e3e857c827 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Thu, 7 Mar 2019 11:22:41 +0100 +Subject: cpufreq: pxa2xx: remove incorrect __init annotation + +From: Arnd Bergmann + +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 +Acked-by: Viresh Kumar +Reviewed-by: Nathan Chancellor +Acked-by: Robert Jarzmik +Cc: All applicable +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..27cb92fc6ee --- /dev/null +++ b/queue-4.9/cpufreq-tegra124-add-missing-of_node_put.patch @@ -0,0 +1,35 @@ +From 446fae2bb5395f3028d8e3aae1508737e5a72ea1 Mon Sep 17 00:00:00 2001 +From: Yangtao Li +Date: Mon, 4 Feb 2019 02:48:54 -0500 +Subject: cpufreq: tegra124: add missing of_node_put() + +From: Yangtao Li + +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: # 4.4+ +Signed-off-by: Yangtao Li +Acked-by: Thierry Reding +Signed-off-by: Viresh Kumar +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..958ce060942 --- /dev/null +++ b/queue-4.9/ext2-fix-underflow-in-ext2_max_size.patch @@ -0,0 +1,98 @@ +From 1c2d14212b15a60300a2d4f6364753e87394c521 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Tue, 29 Jan 2019 17:17:24 +0100 +Subject: ext2: Fix underflow in ext2_max_size() + +From: Jan Kara + +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 +Signed-off-by: Jan Kara +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..25b192b0e22 --- /dev/null +++ b/queue-4.9/ext4-fix-crash-during-online-resizing.patch @@ -0,0 +1,48 @@ +From f96c3ac8dfc24b4e38fc4c2eba5fea2107b929d1 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Mon, 11 Feb 2019 13:30:32 -0500 +Subject: ext4: fix crash during online resizing + +From: Jan Kara + +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 +Signed-off-by: Theodore Ts'o +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..cbe71d9cc57 --- /dev/null +++ b/queue-4.9/libertas_tf-don-t-set-urb_zero_packet-on-in-usb-transfer.patch @@ -0,0 +1,36 @@ +From 607076a904c435f2677fadaadd4af546279db68b Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +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 + +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 +Reviewed-by: Steve deRosier +Signed-off-by: Kalle Valo +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 94351dbcb90..00000000000 --- a/queue-4.9/regulator-max77620-initialize-values-for-dt-properties.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 0ab66b3c326ef8f77dae9f528118966365757c0c Mon Sep 17 00:00:00 2001 -From: Mark Zhang -Date: Thu, 10 Jan 2019 12:11:16 +0800 -Subject: regulator: max77620: Initialize values for DT properties - -From: Mark Zhang - -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 -Signed-off-by: Mark Zhang -Signed-off-by: Mark Brown -Cc: stable@vger.kernel.org -Signed-off-by: Greg Kroah-Hartman - ---- - 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 - * Laxman Dewangan -@@ -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) diff --git a/queue-4.9/series b/queue-4.9/series index c883a879140..a78fa4774f6 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -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