+++ /dev/null
-From 2c5d73255987a6d42a52735a8bfbe2e3390ae2aa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index 301e1fc9a3773..24d16e6bf7501 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -43,6 +43,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From 1770abf5e9451abe3f80799c20ca27c4909c8cef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index 7f3b79c5a5638..a3fc9b7fefd81 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -637,6 +637,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From dfc65ed8469bc167c0ddfc718a4d420864e516e0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index df6de7ccdc2eb..ecad6d8b9154b 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -289,11 +289,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From b2ee7f437da10883fdb857fe2e4482977019c105 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index 23c019d1278cd..f6ed8d167d53c 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -579,7 +579,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -663,6 +663,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -816,6 +821,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -836,7 +846,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -858,7 +868,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1444,7 +1454,7 @@ static void ftgmac100_reset_task(struct work_struct *work)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1515,15 +1525,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From ec099dd5027d22c1c5286343756db11fdef46abd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 54d881c9ac81e..8ec85c2503f23 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1076,7 +1076,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1090,6 +1090,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1180,7 +1184,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2712,7 +2716,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2847,7 +2851,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From c0545f60f2ab1c42136f3113ea2db727c9f463c9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 8ec85c2503f23..bf00c7d4282b2 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1082,7 +1082,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1097,10 +1097,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From 0ab6e75966cb53e3d8d527ad607c22312a8c49d0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index ad01cc5798232..48374945b2d7b 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1290,8 +1290,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(&pdev->dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-4910
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-17804
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-7358
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-24437
-wifi-iwlwifi-mvm-fix-iwl_mvm_max_scan_ie_fw_cmd_room.patch-8949
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-20118
-asoc-tda7419-fix-module-autoloading.patch-3325
-spi-bcm63xx-enable-module-autoloading.patch-20682
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-22412
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-26800
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-12318
+++ /dev/null
-From 15d305f37267e10daba1a986360a386b06e1e960 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index cc6ec3fb5bfdf..d57a75a5ab372 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -490,6 +490,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From be860584321ada13ec6519fd46b14a5ec2992979 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index 3f37fb64e71c2..3c00a737c4b34 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -4326,6 +4326,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -4407,8 +4411,11 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From 63044834ab2a18f4db95eed8b5acf132d95f2e2b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:06 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_max_scan_ie_fw_cmd_room()
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit 916a5d9c5354c426220a0a6533a5e8ea1287d6ea ]
-
-Driver creates also the WFA TPC element, consider that in the
-calculation.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.e710ce446b7f.I2715c6742e9c3d160e2ba41bc4b35de370d2ce34@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index eb2d235e9dc59..7f9eeef17f231 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -91,6 +91,8 @@
- /* adaptive dwell default APs number in social channels (1, 6, 11) */
- #define IWL_SCAN_ADWELL_DEFAULT_N_APS_SOCIAL 10
-
-+#define WFA_TPC_IE_LEN 9
-+
- struct iwl_mvm_scan_timing_params {
- u32 suspend_time;
- u32 max_out_time;
-@@ -328,8 +330,8 @@ static int iwl_mvm_max_scan_ie_fw_cmd_room(struct iwl_mvm *mvm)
-
- max_probe_len = SCAN_OFFLOAD_PROBE_REQ_SIZE;
-
-- /* we create the 802.11 header and SSID element */
-- max_probe_len -= 24 + 2;
-+ /* we create the 802.11 header SSID element and WFA TPC element */
-+ max_probe_len -= 24 + 2 + WFA_TPC_IE_LEN;
-
- /* DS parameter set element is added on 2.4GHZ band if required */
- if (iwl_mvm_rrm_scan_needed(mvm))
-@@ -727,8 +729,6 @@ static u8 *iwl_mvm_copy_and_insert_ds_elem(struct iwl_mvm *mvm, const u8 *ies,
- return newpos;
- }
-
--#define WFA_TPC_IE_LEN 9
--
- static void iwl_mvm_add_tpc_report_ie(u8 *pos)
- {
- pos[0] = WLAN_EID_VENDOR_SPECIFIC;
---
-2.43.0
-
+++ /dev/null
-From 9a2470548bfca6528d3fbee4cf29967c20fc120b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index f8b0fa2dbe374..b43f25b3c99d3 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -243,6 +243,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.hints & HV_X64_ENLIGHTENED_VMCS_RECOMMENDED) {
---
-2.43.0
-
+++ /dev/null
-From 1ef5fd785861af50b808ec285dd11496ced1d3c4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 10:54:19 +0800
-Subject: ALSA: hda/realtek - Fixed ALC256 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 9b82ff1362f50914c8292902e07be98a9f59d33d ]
-
-Dell platform, plug headphone or headset, it had a chance to get no
-sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/bb8e2de30d294dc287944efa0667685a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 50 ++++++++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index c104a33b3e8fa..a952888b5b8af 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4846,6 +4846,30 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
-+static void alc_hp_mute_disable(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
-+ msleep(delay);
-+}
-+
-+static void alc_hp_enable_unmute(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-+ msleep(delay);
-+}
-+
- static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
-@@ -4947,6 +4971,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0236:
- case 0x10ec0256:
- case 0x19e58326:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, coef0256);
- break;
- case 0x10ec0234:
-@@ -5218,6 +5243,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x45, 0xc089);
- msleep(50);
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5315,6 +5341,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5430,6 +5457,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5535,25 +5563,21 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x06, 0x6104);
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, coef0255);
- msleep(300);
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x0070) == 0x0070;
--
-+ if (!is_ctia) {
-+ alc_write_coef_idx(codec, 0x45, 0xe089);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x0070) == 0x0070)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
---
-2.43.0
-
+++ /dev/null
-From 00696b7b95faa452a2344a31264a3979df4766ff Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 16:46:56 +0800
-Subject: ALSA: hda/realtek - FIxed ALC285 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 1fa7b099d60ad64f559bd3b8e3f0d94b2e015514 ]
-
-Dell platform with ALC215 ALC285 ALC289 ALC225 ALC295 ALC299, plug
-headphone or headset.
-It had a chance to get no sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/d0de1b03fd174520945dde216d765223@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index a952888b5b8af..d6ebde90f0825 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5006,6 +5006,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
- break;
-@@ -5231,6 +5232,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- case 0x10ec0299:
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0255:
- alc_process_coef_fw(codec, coef0255);
-@@ -5390,6 +5392,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- alc_process_coef_fw(codec, coef0225_2);
- else
- alc_process_coef_fw(codec, coef0225_1);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0867:
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
-@@ -5495,6 +5498,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0289:
- case 0x10ec0299:
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- }
- codec_dbg(codec, "Headset jack set to Nokia-style headset mode.\n");
-@@ -5654,12 +5658,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
- val = alc_read_coef_idx(codec, 0x45);
-@@ -5676,15 +5674,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x00f0) == 0x00f0;
- }
-+ if (!is_ctia) {
-+ alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
-+ alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x00f0) == 0x00f0)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
- alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0867:
- is_ctia = true;
---
-2.43.0
-
+++ /dev/null
-From 3ee8d82dfc52689687829e36432a62e8075e294c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index 5f8baad37a401..48243164b7ac8 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -44,6 +44,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From 547047da624b64b2c0ff4fb3017f16b7c5c52909 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:21 +0000
-Subject: ASoC: intel: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit ae61a3391088d29aa8605c9f2db84295ab993a49 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-2-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/keembay/kmb_platform.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/intel/keembay/kmb_platform.c b/sound/soc/intel/keembay/kmb_platform.c
-index 291a686568c26..c7b754034d24f 100644
---- a/sound/soc/intel/keembay/kmb_platform.c
-+++ b/sound/soc/intel/keembay/kmb_platform.c
-@@ -634,6 +634,7 @@ static const struct of_device_id kmb_plat_of_match[] = {
- { .compatible = "intel,keembay-tdm", .data = &intel_kmb_tdm_dai},
- {}
- };
-+MODULE_DEVICE_TABLE(of, kmb_plat_of_match);
-
- static int kmb_plat_dai_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From fa0b2bc58c20b8dbdcb492ad472e2fdf0984ae30 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index 83d220054c96f..9183db51547d3 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -624,6 +624,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From e3367418baa65f6f82bf654d22d4f1a14ea0c943 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 10:45:17 +0800
-Subject: drm: komeda: Fix an issue related to normalized zpos
-
-From: hongchi.peng <hongchi.peng@siengine.com>
-
-[ Upstream commit 258905cb9a6414be5c9ca4aa20ef855f8dc894d4 ]
-
-We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
-to their blending zorder in CU. If there's only one slave plane in
-affected planes and its layer_split property is enabled, order++ for
-its split layer, so that when calculating the normalized_zpos
-of master planes, the split layer of the slave plane is included, but
-the max_slave_zorder does not include the split layer and keep zero
-because there's only one slave plane in affacted planes, although we
-actually use two slave layers in this commit.
-
-In most cases, this bug does not result in a commit failure, but assume
-the following situation:
- slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
- 0;(use slave_layer 2 as its split layer)
- master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
- 2;(use master_layer 2 as its split layer)
- master_layer 1: zpos = 4, normalized_zpos = 4;
- master_layer 3: zpos = 5, normalized_zpos = 5;
- kcrtc_st->max_slave_zorder = 0;
-When we use master_layer 3 as a input of CU in function
-komeda_compiz_set_input and check it with function
-komeda_component_check_input, the parameter idx is equal to
-normailzed_zpos minus max_slave_zorder, the value of idx is 5
-and is euqal to CU's max_active_inputs, so that
-komeda_component_check_input returns a -EINVAL value.
-
-To fix the bug described above, when calculating the max_slave_zorder
-with the layer_split enabled, count the split layer in this calculation
-directly.
-
-Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
-Acked-by: Liviu Dudau <liviu.dudau@arm.com>
-Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-index 1f6682032ca49..ac8b7fb20d8fc 100644
---- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-@@ -142,6 +142,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- struct drm_plane *plane;
- struct list_head zorder_list;
- int order = 0, err;
-+ u32 slave_zpos = 0;
-
- DRM_DEBUG_ATOMIC("[CRTC:%d:%s] calculating normalized zpos values\n",
- crtc->base.id, crtc->name);
-@@ -181,10 +182,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- plane_st->zpos, plane_st->normalized_zpos);
-
- /* calculate max slave zorder */
-- if (has_bit(drm_plane_index(plane), kcrtc->slave_planes))
-+ if (has_bit(drm_plane_index(plane), kcrtc->slave_planes)) {
-+ slave_zpos = plane_st->normalized_zpos;
-+ if (to_kplane_st(plane_st)->layer_split)
-+ slave_zpos++;
- kcrtc_st->max_slave_zorder =
-- max(plane_st->normalized_zpos,
-- kcrtc_st->max_slave_zorder);
-+ max(slave_zpos, kcrtc_st->max_slave_zorder);
-+ }
- }
-
- crtc_st->zpos_changed = true;
---
-2.43.0
-
+++ /dev/null
-From 9eae19c143c8a52eaaab404f921b3300313167fa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index 45da639bd22ca..a2cd139c5eb41 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -245,11 +245,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From 4c78ac6e2ab19257735065e1c9e1c539f0958e38 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index 969af4dd64055..bc9a7f2d23504 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -569,7 +569,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -653,6 +653,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -806,6 +811,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -826,7 +836,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -848,7 +858,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1419,7 +1429,7 @@ static void ftgmac100_reset_task(struct work_struct *work)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1490,15 +1500,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From 6199d3a3e8daeebcf3c7aa5ebb4bbc48ebbe4df9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 10df2e1dfef72..31b389d0a09a0 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1068,7 +1068,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1082,6 +1082,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1172,7 +1176,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2704,7 +2708,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2839,7 +2843,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From 0fe0c0117812b3a6c9f07815c1a37ed52740d97b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 31b389d0a09a0..977a739d5448f 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1074,7 +1074,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1089,10 +1089,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From c7020fdc4d529b816eb8469cccc7c62d7cf2f9d3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index 52ecd47c18e2d..bb9348f14b1ba 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1401,8 +1401,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(&pdev->dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-27638
-alsa-hda-realtek-fixed-alc256-headphone-no-sound.patch-24351
-alsa-hda-realtek-fixed-alc285-headphone-no-sound.patch-13980
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-30991
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-19083
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-13387
-wifi-iwlwifi-lower-message-level-for-fw-buffer-desti.patch-16348
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-5713
-asoc-intel-fix-module-autoloading.patch-32164
-asoc-tda7419-fix-module-autoloading.patch-14104
-drm-komeda-fix-an-issue-related-to-normalized-zpos.patch-23503
-spi-bcm63xx-enable-module-autoloading.patch-29644
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-3718
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-28208
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-28181
cgroup-make-operations-on-the-cgroup-root_list-rcu-s.patch
+++ /dev/null
-From ce07a4b5be5fa19cd32769c6d20eab43c55c19b9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index d36384fef0d71..5f7eb0e613cda 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -482,6 +482,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From 10726d2833723a4636ead003eb14898db2fb7ba9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:13 +0300
-Subject: wifi: iwlwifi: lower message level for FW buffer destination
-
-From: Benjamin Berg <benjamin.berg@intel.com>
-
-[ Upstream commit f8a129c1e10256c785164ed5efa5d17d45fbd81b ]
-
-An invalid buffer destination is not a problem for the driver and it
-does not make sense to report it with the KERN_ERR message level. As
-such, change the message to use IWL_DEBUG_FW.
-
-Reported-by: Len Brown <lenb@kernel.org>
-Closes: https://lore.kernel.org/r/CAJvTdKkcxJss=DM2sxgv_MR5BeZ4_OC-3ad6tA40TYH2yqHCWw@mail.gmail.com
-Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.20abf78f05bc.Ifbcecc2ae9fb40b9698302507dcba8b922c8d856@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-index 56f63f5f5dd34..2afa5c91bc76b 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-@@ -111,7 +111,8 @@ iwl_pcie_ctxt_info_dbg_enable(struct iwl_trans *trans,
- }
- break;
- default:
-- IWL_ERR(trans, "WRT: Invalid buffer destination\n");
-+ IWL_DEBUG_FW(trans, "WRT: Invalid buffer destination (%d)\n",
-+ le32_to_cpu(fw_mon_cfg->buf_location));
- }
- out:
- if (dbg_flags)
---
-2.43.0
-
+++ /dev/null
-From d017cf712ca3e878dcc85778061179a96dfedc08 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index 08008b0c0637c..fa784d8352901 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -4747,6 +4747,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -4828,8 +4832,11 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From 3f7801157dc5c07dd696df8e971559c82690a9b8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index 021cd067733e3..a91aad434d03d 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -275,6 +275,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.hints & HV_X64_ENLIGHTENED_VMCS_RECOMMENDED) {
---
-2.43.0
-
+++ /dev/null
-From dc7362b804dd3801ed2eac0555e407a59596bdd9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 10:54:19 +0800
-Subject: ALSA: hda/realtek - Fixed ALC256 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 9b82ff1362f50914c8292902e07be98a9f59d33d ]
-
-Dell platform, plug headphone or headset, it had a chance to get no
-sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/bb8e2de30d294dc287944efa0667685a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 50 ++++++++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 52246a65eb893..d2f52bb5dfa4c 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4905,6 +4905,30 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
-+static void alc_hp_mute_disable(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
-+ msleep(delay);
-+}
-+
-+static void alc_hp_enable_unmute(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-+ msleep(delay);
-+}
-+
- static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
-@@ -5006,6 +5030,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0236:
- case 0x10ec0256:
- case 0x19e58326:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, coef0256);
- break;
- case 0x10ec0234:
-@@ -5277,6 +5302,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x45, 0xc089);
- msleep(50);
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5374,6 +5400,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5489,6 +5516,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5594,25 +5622,21 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x06, 0x6104);
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, coef0255);
- msleep(300);
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x0070) == 0x0070;
--
-+ if (!is_ctia) {
-+ alc_write_coef_idx(codec, 0x45, 0xe089);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x0070) == 0x0070)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
---
-2.43.0
-
+++ /dev/null
-From 99cf78b04ae5498520c355a4297571e423af6849 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 16:46:56 +0800
-Subject: ALSA: hda/realtek - FIxed ALC285 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 1fa7b099d60ad64f559bd3b8e3f0d94b2e015514 ]
-
-Dell platform with ALC215 ALC285 ALC289 ALC225 ALC295 ALC299, plug
-headphone or headset.
-It had a chance to get no sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/d0de1b03fd174520945dde216d765223@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index d2f52bb5dfa4c..7e035d69f9de5 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5065,6 +5065,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
- break;
-@@ -5290,6 +5291,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- case 0x10ec0299:
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0255:
- alc_process_coef_fw(codec, coef0255);
-@@ -5449,6 +5451,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- alc_process_coef_fw(codec, coef0225_2);
- else
- alc_process_coef_fw(codec, coef0225_1);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0867:
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
-@@ -5554,6 +5557,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0289:
- case 0x10ec0299:
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- }
- codec_dbg(codec, "Headset jack set to Nokia-style headset mode.\n");
-@@ -5713,12 +5717,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
- val = alc_read_coef_idx(codec, 0x45);
-@@ -5735,15 +5733,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x00f0) == 0x00f0;
- }
-+ if (!is_ctia) {
-+ alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
-+ alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x00f0) == 0x00f0)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
- alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0867:
- is_ctia = true;
---
-2.43.0
-
+++ /dev/null
-From cb75b80dc550c0bdd99a595bd5a9d8ed63e3343b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index 5f8baad37a401..48243164b7ac8 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -44,6 +44,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From 2f3ec0aac4316e6e9abd968e1803829ea976ddb8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:21 +0000
-Subject: ASoC: intel: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit ae61a3391088d29aa8605c9f2db84295ab993a49 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-2-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/keembay/kmb_platform.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/intel/keembay/kmb_platform.c b/sound/soc/intel/keembay/kmb_platform.c
-index a6fb74ba1c424..86a4c32686e73 100644
---- a/sound/soc/intel/keembay/kmb_platform.c
-+++ b/sound/soc/intel/keembay/kmb_platform.c
-@@ -815,6 +815,7 @@ static const struct of_device_id kmb_plat_of_match[] = {
- { .compatible = "intel,keembay-tdm", .data = &intel_kmb_tdm_dai},
- {}
- };
-+MODULE_DEVICE_TABLE(of, kmb_plat_of_match);
-
- static int kmb_plat_dai_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From 7aefc3aee145250b06c59728a2e419690480a364 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index 83d220054c96f..9183db51547d3 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -624,6 +624,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From 935644e841d438ef8308f05d0375f2906811d90f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 10:45:17 +0800
-Subject: drm: komeda: Fix an issue related to normalized zpos
-
-From: hongchi.peng <hongchi.peng@siengine.com>
-
-[ Upstream commit 258905cb9a6414be5c9ca4aa20ef855f8dc894d4 ]
-
-We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
-to their blending zorder in CU. If there's only one slave plane in
-affected planes and its layer_split property is enabled, order++ for
-its split layer, so that when calculating the normalized_zpos
-of master planes, the split layer of the slave plane is included, but
-the max_slave_zorder does not include the split layer and keep zero
-because there's only one slave plane in affacted planes, although we
-actually use two slave layers in this commit.
-
-In most cases, this bug does not result in a commit failure, but assume
-the following situation:
- slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
- 0;(use slave_layer 2 as its split layer)
- master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
- 2;(use master_layer 2 as its split layer)
- master_layer 1: zpos = 4, normalized_zpos = 4;
- master_layer 3: zpos = 5, normalized_zpos = 5;
- kcrtc_st->max_slave_zorder = 0;
-When we use master_layer 3 as a input of CU in function
-komeda_compiz_set_input and check it with function
-komeda_component_check_input, the parameter idx is equal to
-normailzed_zpos minus max_slave_zorder, the value of idx is 5
-and is euqal to CU's max_active_inputs, so that
-komeda_component_check_input returns a -EINVAL value.
-
-To fix the bug described above, when calculating the max_slave_zorder
-with the layer_split enabled, count the split layer in this calculation
-directly.
-
-Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
-Acked-by: Liviu Dudau <liviu.dudau@arm.com>
-Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-index 327051bba5b68..cee7b8d58830c 100644
---- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-@@ -163,6 +163,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- struct drm_plane *plane;
- struct list_head zorder_list;
- int order = 0, err;
-+ u32 slave_zpos = 0;
-
- DRM_DEBUG_ATOMIC("[CRTC:%d:%s] calculating normalized zpos values\n",
- crtc->base.id, crtc->name);
-@@ -202,10 +203,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- plane_st->zpos, plane_st->normalized_zpos);
-
- /* calculate max slave zorder */
-- if (has_bit(drm_plane_index(plane), kcrtc->slave_planes))
-+ if (has_bit(drm_plane_index(plane), kcrtc->slave_planes)) {
-+ slave_zpos = plane_st->normalized_zpos;
-+ if (to_kplane_st(plane_st)->layer_split)
-+ slave_zpos++;
- kcrtc_st->max_slave_zorder =
-- max(plane_st->normalized_zpos,
-- kcrtc_st->max_slave_zorder);
-+ max(slave_zpos, kcrtc_st->max_slave_zorder);
-+ }
- }
-
- crtc_st->zpos_changed = true;
---
-2.43.0
-
+++ /dev/null
-From 407f5873629910bce1cacbbf6e1a9a07f39eb4f4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index 952f35b335b26..71ad7ffc3eff3 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -192,11 +192,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From b09ccb4d92573511debce6112b4d9720c0f81710 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index 11f76e56d0316..9179014e90d11 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -569,7 +569,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -653,6 +653,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -806,6 +811,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -826,7 +836,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -848,7 +858,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1448,7 +1458,7 @@ static void ftgmac100_reset_task(struct work_struct *work)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1519,15 +1529,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From cc54cb294cbd7d62a902cb55876d5c7586a5191c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index c101a71a52ae8..884e45d27564b 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1066,7 +1066,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1080,6 +1080,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1170,7 +1174,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2702,7 +2706,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2837,7 +2841,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From b7f5fb33c1a8082e27f435d865b8e97f155d90e8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 884e45d27564b..ea1cbdff76622 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1072,7 +1072,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1087,10 +1087,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From 884e55febfc0c27300bd2c354b5c72a22b6e2f5b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index 3b0341c730ee0..9c92838428b8f 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1403,8 +1403,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(&pdev->dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
+++ /dev/null
-From 7e544bdaab2811643563aec1dbba5cb1ed7b937f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 20 Aug 2024 23:51:31 -0700
-Subject: scsi: lpfc: Fix overflow build issue
-
-From: Sherry Yang <sherry.yang@oracle.com>
-
-[ Upstream commit 3417c9574e368f0330637505f00d3814ca8854d2 ]
-
-Build failed while enabling "CONFIG_GCOV_KERNEL=y" and
-"CONFIG_GCOV_PROFILE_ALL=y" with following error:
-
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c: In function 'lpfc_get_cgnbuf_info':
-BUILDSTDERR: ./include/linux/fortify-string.h:114:33: error: '__builtin_memcpy' accessing 18446744073709551615 bytes at offsets 0 and 0 overlaps 9223372036854775807 bytes at offset -9223372036854775808 [-Werror=restrict]
-BUILDSTDERR: 114 | #define __underlying_memcpy __builtin_memcpy
-BUILDSTDERR: | ^
-BUILDSTDERR: ./include/linux/fortify-string.h:637:9: note: in expansion of macro '__underlying_memcpy'
-BUILDSTDERR: 637 | __underlying_##op(p, q, __fortify_size); \
-BUILDSTDERR: | ^~~~~~~~~~~~~
-BUILDSTDERR: ./include/linux/fortify-string.h:682:26: note: in expansion of macro '__fortify_memcpy_chk'
-BUILDSTDERR: 682 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \
-BUILDSTDERR: | ^~~~~~~~~~~~~~~~~~~~
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c:5468:9: note: in expansion of macro 'memcpy'
-BUILDSTDERR: 5468 | memcpy(cgn_buff, cp, cinfosz);
-BUILDSTDERR: | ^~~~~~
-
-This happens from the commit 06bb7fc0feee ("kbuild: turn on -Wrestrict by
-default"). Address this issue by using size_t type.
-
-Signed-off-by: Sherry Yang <sherry.yang@oracle.com>
-Link: https://lore.kernel.org/r/20240821065131.1180791-1-sherry.yang@oracle.com
-Reviewed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_bsg.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
-index ed827f198cb68..45c59006945b9 100644
---- a/drivers/scsi/lpfc/lpfc_bsg.c
-+++ b/drivers/scsi/lpfc/lpfc_bsg.c
-@@ -5761,7 +5761,7 @@ lpfc_get_cgnbuf_info(struct bsg_job *job)
- struct get_cgnbuf_info_req *cgnbuf_req;
- struct lpfc_cgn_info *cp;
- uint8_t *cgn_buff;
-- int size, cinfosz;
-+ size_t size, cinfosz;
- int rc = 0;
-
- if (job->request_len < sizeof(struct fc_bsg_request) +
---
-2.43.0
-
spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-15912
-alsa-hda-realtek-fixed-alc256-headphone-no-sound.patch-10398
-alsa-hda-realtek-fixed-alc285-headphone-no-sound.patch-13701
-scsi-lpfc-fix-overflow-build-issue.patch-31175
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-16699
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-7529
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-10277
-wifi-iwlwifi-lower-message-level-for-fw-buffer-desti.patch-1448
-wifi-iwlwifi-mvm-fix-iwl_mvm_scan_fits-calculation.patch-20772
-wifi-iwlwifi-mvm-pause-tcm-when-the-firmware-is-stop.patch-18801
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-15491
-wifi-iwlwifi-clear-trans-state-earlier-upon-error.patch-29543
-asoc-intel-fix-module-autoloading.patch-32698
-asoc-tda7419-fix-module-autoloading.patch-8698
-spi-spidev-add-an-entry-for-elgin-jg10309-01.patch-48
-drm-komeda-fix-an-issue-related-to-normalized-zpos.patch-18123
-spi-bcm63xx-enable-module-autoloading.patch-13541
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-27755
-spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch-32506
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-32409
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-5953
cgroup-make-operations-on-the-cgroup-root_list-rcu-s.patch
+++ /dev/null
-From 1e167dd861724fdd04a6ee58d38940c2ffec7456 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index 147199002df1e..a9921dcd6b797 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -482,6 +482,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From 8b99de466b2ff82bd771850a1f41a6421f8024a5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 28 Aug 2024 15:00:56 -0300
-Subject: spi: spidev: Add an entry for elgin,jg10309-01
-
-From: Fabio Estevam <festevam@gmail.com>
-
-[ Upstream commit 5f3eee1eef5d0edd23d8ac0974f56283649a1512 ]
-
-The rv1108-elgin-r1 board has an LCD controlled via SPI in userspace.
-The marking on the LCD is JG10309-01.
-
-Add the "elgin,jg10309-01" compatible string.
-
-Signed-off-by: Fabio Estevam <festevam@gmail.com>
-Reviewed-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patch.msgid.link/20240828180057.3167190-2-festevam@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index 0b97e5b97a018..8570cd35b7e50 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -712,6 +712,7 @@ static int spidev_of_check(struct device *dev)
- static const struct of_device_id spidev_dt_ids[] = {
- { .compatible = "cisco,spi-petra", .data = &spidev_of_check },
- { .compatible = "dh,dhcom-board", .data = &spidev_of_check },
-+ { .compatible = "elgin,jg10309-01", .data = &spidev_of_check },
- { .compatible = "lineartechnology,ltc2488", .data = &spidev_of_check },
- { .compatible = "lwn,bk4", .data = &spidev_of_check },
- { .compatible = "menlo,m53cpld", .data = &spidev_of_check },
---
-2.43.0
-
+++ /dev/null
-From 95a4b9d6bab70535c14f298387e5544e11e7aa94 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 3 Sep 2024 14:32:27 +0200
-Subject: spi: spidev: Add missing spi_device_id for jg10309-01
-
-From: Geert Uytterhoeven <geert+renesas@glider.be>
-
-[ Upstream commit 5478a4f7b94414def7b56d2f18bc2ed9b0f3f1f2 ]
-
-When the of_device_id entry for "elgin,jg10309-01" was added, the
-corresponding spi_device_id was forgotten, causing a warning message
-during boot-up:
-
- SPI driver spidev has no spi_device_id for elgin,jg10309-01
-
-Fix module autoloading and shut up the warning by adding the missing
-entry.
-
-Fixes: 5f3eee1eef5d0edd ("spi: spidev: Add an entry for elgin,jg10309-01")
-Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
-Link: https://patch.msgid.link/54bbb9d8a8db7e52d13e266f2d4a9bcd8b42a98a.1725366625.git.geert+renesas@glider.be
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index 8570cd35b7e50..2ea29fb819410 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -684,6 +684,7 @@ static struct class *spidev_class;
- static const struct spi_device_id spidev_spi_ids[] = {
- { .name = "bh2228fv" },
- { .name = "dh2228fv" },
-+ { .name = "jg10309-01" },
- { .name = "ltc2488" },
- { .name = "sx1301" },
- { .name = "bk4" },
---
-2.43.0
-
+++ /dev/null
-From ae0409853c28b2c804c175e2197552069d038ec3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:01 +0300
-Subject: wifi: iwlwifi: clear trans->state earlier upon error
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 094513f8a2fbddee51b055d8035f995551f98fce ]
-
-When the firmware crashes, we first told the op_mode and only then,
-changed the transport's state. This is a problem if the op_mode's
-nic_error() handler needs to send a host command: it'll see that the
-transport's state still reflects that the firmware is alive.
-
-Today, this has no consequences since we set the STATUS_FW_ERROR bit and
-that will prevent sending host commands. iwl_fw_dbg_stop_restart_recording
-looks at this bit to know not to send a host command for example.
-
-To fix the hibernation, we needed to reset the firmware without having
-an error and checking STATUS_FW_ERROR to see whether the firmware is
-alive will no longer hold, so this change is necessary as well.
-
-Change the flow a bit.
-Change trans->state before calling the op_mode's nic_error() method and
-check trans->state instead of STATUS_FW_ERROR. This will keep the
-current behavior of iwl_fw_dbg_stop_restart_recording upon firmware
-error, and it'll allow us to call iwl_fw_dbg_stop_restart_recording
-safely even if STATUS_FW_ERROR is clear, but yet, the firmware is not
-alive.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.9d7427fbdfd7.Ia056ca57029a382c921d6f7b6a6b28fc480f2f22@changeid
-[I missed this was a dependency for the hibernation fix, changed
- the commit message a bit accordingly]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 2 +-
- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-index f34a02b33ccd4..fc630a0d9c83c 100644
---- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-@@ -2862,7 +2862,7 @@ void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
- {
- int ret __maybe_unused = 0;
-
-- if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status))
-+ if (!iwl_trans_fw_running(fwrt->trans))
- return;
-
- if (fw_has_capa(&fwrt->fw->ucode_capa,
-diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-index a2919a32d7081..d2b31599340fc 100644
---- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-@@ -1393,8 +1393,8 @@ static inline void iwl_trans_fw_error(struct iwl_trans *trans, bool sync)
-
- /* prevent double restarts due to the same erroneous FW */
- if (!test_and_set_bit(STATUS_FW_ERROR, &trans->status)) {
-- iwl_op_mode_nic_error(trans->op_mode, sync);
- trans->state = IWL_TRANS_NO_FW;
-+ iwl_op_mode_nic_error(trans->op_mode, sync);
- }
- }
-
---
-2.43.0
-
+++ /dev/null
-From 6413c9500fcbf428c33258f32a3c1be651be0516 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:13 +0300
-Subject: wifi: iwlwifi: lower message level for FW buffer destination
-
-From: Benjamin Berg <benjamin.berg@intel.com>
-
-[ Upstream commit f8a129c1e10256c785164ed5efa5d17d45fbd81b ]
-
-An invalid buffer destination is not a problem for the driver and it
-does not make sense to report it with the KERN_ERR message level. As
-such, change the message to use IWL_DEBUG_FW.
-
-Reported-by: Len Brown <lenb@kernel.org>
-Closes: https://lore.kernel.org/r/CAJvTdKkcxJss=DM2sxgv_MR5BeZ4_OC-3ad6tA40TYH2yqHCWw@mail.gmail.com
-Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.20abf78f05bc.Ifbcecc2ae9fb40b9698302507dcba8b922c8d856@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-index 239a722cd79d8..ae55bde3a57a4 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-@@ -64,7 +64,8 @@ iwl_pcie_ctxt_info_dbg_enable(struct iwl_trans *trans,
- }
- break;
- default:
-- IWL_ERR(trans, "WRT: Invalid buffer destination\n");
-+ IWL_DEBUG_FW(trans, "WRT: Invalid buffer destination (%d)\n",
-+ le32_to_cpu(fw_mon_cfg->buf_location));
- }
- out:
- if (dbg_flags)
---
-2.43.0
-
+++ /dev/null
-From 7564dccdeb0959863097dc1b9f9766350b7d899b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index fa7de3e47b8cc..0e2841fc84dcd 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -4776,6 +4776,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -4857,8 +4861,11 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From 8184eb7a19010381c51a7294abc6e82777349172 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:05 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_scan_fits() calculation
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit d44162280899c3fc2c6700e21e491e71c3c96e3d ]
-
-The calculation should consider also the 6GHz IE's len, fix that.
-In addition, in iwl_mvm_sched_scan_start() the scan_fits helper is
-called only in case non_psc_incldued is true, but it should be called
-regardless, fix that as well.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.7db825442fd2.I99f4d6587709de02072fd57957ec7472331c6b1d@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 ++++++++++---------
- 1 file changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index 4bab14ceef5f5..aa6ef64912056 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -834,8 +834,8 @@ static inline bool iwl_mvm_scan_fits(struct iwl_mvm *mvm, int n_ssids,
- return ((n_ssids <= PROBE_OPTION_MAX) &&
- (n_channels <= mvm->fw->ucode_capa.n_scan_channels) &
- (ies->common_ie_len +
-- ies->len[NL80211_BAND_2GHZ] +
-- ies->len[NL80211_BAND_5GHZ] <=
-+ ies->len[NL80211_BAND_2GHZ] + ies->len[NL80211_BAND_5GHZ] +
-+ ies->len[NL80211_BAND_6GHZ] <=
- iwl_mvm_max_scan_ie_fw_cmd_room(mvm)));
- }
-
-@@ -2775,18 +2775,16 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- params.n_channels = j;
- }
-
-- if (non_psc_included &&
-- !iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-- kfree(params.channels);
-- return -ENOBUFS;
-+ if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-+ ret = -ENOBUFS;
-+ goto out;
- }
-
- uid = iwl_mvm_build_scan_cmd(mvm, vif, &hcmd, ¶ms, type);
--
-- if (non_psc_included)
-- kfree(params.channels);
-- if (uid < 0)
-- return uid;
-+ if (uid < 0) {
-+ ret = uid;
-+ goto out;
-+ }
-
- ret = iwl_mvm_send_cmd(mvm, &hcmd);
- if (!ret) {
-@@ -2803,6 +2801,9 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;
- }
-
-+out:
-+ if (non_psc_included)
-+ kfree(params.channels);
- return ret;
- }
-
---
-2.43.0
-
+++ /dev/null
-From f0b98a80530a1ac99e549869bdfb60de4f1c831c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:10 +0300
-Subject: wifi: iwlwifi: mvm: pause TCM when the firmware is stopped
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 0668ebc8c2282ca1e7eb96092a347baefffb5fe7 ]
-
-Not doing so will make us send a host command to the transport while the
-firmware is not alive, which will trigger a WARNING.
-
-bad state = 0
-WARNING: CPU: 2 PID: 17434 at drivers/net/wireless/intel/iwlwifi/iwl-trans.c:115 iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-RIP: 0010:iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-Call Trace:
- <TASK>
- iwl_mvm_send_cmd+0x40/0xc0 [iwlmvm]
- iwl_mvm_config_scan+0x198/0x260 [iwlmvm]
- iwl_mvm_recalc_tcm+0x730/0x11d0 [iwlmvm]
- iwl_mvm_tcm_work+0x1d/0x30 [iwlmvm]
- process_one_work+0x29e/0x640
- worker_thread+0x2df/0x690
- ? rescuer_thread+0x540/0x540
- kthread+0x192/0x1e0
- ? set_kthread_struct+0x90/0x90
- ret_from_fork+0x22/0x30
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.5abe71ca1b6b.I97a968cb8be1f24f94652d9b110ecbf6af73f89e@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-index 0b0022dabc7bc..e2c244ceaf706 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-@@ -1018,6 +1018,8 @@ void iwl_mvm_stop_device(struct iwl_mvm *mvm)
-
- clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status);
-
-+ iwl_mvm_pause_tcm(mvm, false);
-+
- iwl_fw_dbg_stop_sync(&mvm->fwrt);
- iwl_trans_stop_device(mvm->trans);
- iwl_free_fw_paging(&mvm->fwrt);
---
-2.43.0
-
+++ /dev/null
-From b596e48be8fbbdcfbe81f9bfc3bfdac5ec54fec2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index 8d3c649a1769b..3794b223fd69c 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -322,6 +322,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.priv_high & HV_ISOLATION) {
---
-2.43.0
-
+++ /dev/null
-From 590bf1f1ab6a19498f13177c60ed804b8a753caa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 10:54:19 +0800
-Subject: ALSA: hda/realtek - Fixed ALC256 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 9b82ff1362f50914c8292902e07be98a9f59d33d ]
-
-Dell platform, plug headphone or headset, it had a chance to get no
-sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/bb8e2de30d294dc287944efa0667685a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 50 ++++++++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index dddf3f55cb13b..33e4db337efd8 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4622,6 +4622,30 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
-+static void alc_hp_mute_disable(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
-+ msleep(delay);
-+}
-+
-+static void alc_hp_enable_unmute(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-+ msleep(delay);
-+}
-+
- static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
-@@ -4717,6 +4741,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0236:
- case 0x10ec0256:
- case 0x19e58326:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, coef0256);
- break;
- case 0x10ec0234:
-@@ -4988,6 +5013,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x45, 0xc089);
- msleep(50);
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5085,6 +5111,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5200,6 +5227,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5300,25 +5328,21 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x06, 0x6104);
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, coef0255);
- msleep(300);
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x0070) == 0x0070;
--
-+ if (!is_ctia) {
-+ alc_write_coef_idx(codec, 0x45, 0xe089);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x0070) == 0x0070)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
---
-2.43.0
-
+++ /dev/null
-From 5702ccf88c68c0e21f8108685128fbda635e2f36 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 16:46:56 +0800
-Subject: ALSA: hda/realtek - FIxed ALC285 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 1fa7b099d60ad64f559bd3b8e3f0d94b2e015514 ]
-
-Dell platform with ALC215 ALC285 ALC289 ALC225 ALC295 ALC299, plug
-headphone or headset.
-It had a chance to get no sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/d0de1b03fd174520945dde216d765223@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 33e4db337efd8..fbd8b4206bad8 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4776,6 +4776,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
- break;
-@@ -5001,6 +5002,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- case 0x10ec0299:
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0255:
- alc_process_coef_fw(codec, coef0255);
-@@ -5160,6 +5162,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- alc_process_coef_fw(codec, coef0225_2);
- else
- alc_process_coef_fw(codec, coef0225_1);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0867:
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
-@@ -5265,6 +5268,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0289:
- case 0x10ec0299:
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- }
- codec_dbg(codec, "Headset jack set to Nokia-style headset mode.\n");
-@@ -5419,12 +5423,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
- val = alc_read_coef_idx(codec, 0x45);
-@@ -5441,15 +5439,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x00f0) == 0x00f0;
- }
-+ if (!is_ctia) {
-+ alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
-+ alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x00f0) == 0x00f0)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
- alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0867:
- is_ctia = true;
---
-2.43.0
-
+++ /dev/null
-From c613a8b610a77fcbaebb414a4772f61d1ce7a2d4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index d6b692fff29a2..cdde5ba2ec351 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -44,6 +44,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From e5e23ee17e039d3a657731b0ca99f0ca8fa3f13f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index 2bf4f5e8af275..9d8753b28e36e 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -629,6 +629,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From 6090d550b61d0095a9f1386dcb1eaff650220ac7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 10:45:17 +0800
-Subject: drm: komeda: Fix an issue related to normalized zpos
-
-From: hongchi.peng <hongchi.peng@siengine.com>
-
-[ Upstream commit 258905cb9a6414be5c9ca4aa20ef855f8dc894d4 ]
-
-We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
-to their blending zorder in CU. If there's only one slave plane in
-affected planes and its layer_split property is enabled, order++ for
-its split layer, so that when calculating the normalized_zpos
-of master planes, the split layer of the slave plane is included, but
-the max_slave_zorder does not include the split layer and keep zero
-because there's only one slave plane in affacted planes, although we
-actually use two slave layers in this commit.
-
-In most cases, this bug does not result in a commit failure, but assume
-the following situation:
- slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
- 0;(use slave_layer 2 as its split layer)
- master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
- 2;(use master_layer 2 as its split layer)
- master_layer 1: zpos = 4, normalized_zpos = 4;
- master_layer 3: zpos = 5, normalized_zpos = 5;
- kcrtc_st->max_slave_zorder = 0;
-When we use master_layer 3 as a input of CU in function
-komeda_compiz_set_input and check it with function
-komeda_component_check_input, the parameter idx is equal to
-normailzed_zpos minus max_slave_zorder, the value of idx is 5
-and is euqal to CU's max_active_inputs, so that
-komeda_component_check_input returns a -EINVAL value.
-
-To fix the bug described above, when calculating the max_slave_zorder
-with the layer_split enabled, count the split layer in this calculation
-directly.
-
-Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
-Acked-by: Liviu Dudau <liviu.dudau@arm.com>
-Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-index ae274902ff924..4e9c3184a906c 100644
---- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-@@ -148,6 +148,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- struct drm_plane *plane;
- struct list_head zorder_list;
- int order = 0, err;
-+ u32 slave_zpos = 0;
-
- DRM_DEBUG_ATOMIC("[CRTC:%d:%s] calculating normalized zpos values\n",
- crtc->base.id, crtc->name);
-@@ -187,10 +188,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- plane_st->zpos, plane_st->normalized_zpos);
-
- /* calculate max slave zorder */
-- if (has_bit(drm_plane_index(plane), kcrtc->slave_planes))
-+ if (has_bit(drm_plane_index(plane), kcrtc->slave_planes)) {
-+ slave_zpos = plane_st->normalized_zpos;
-+ if (to_kplane_st(plane_st)->layer_split)
-+ slave_zpos++;
- kcrtc_st->max_slave_zorder =
-- max(plane_st->normalized_zpos,
-- kcrtc_st->max_slave_zorder);
-+ max(slave_zpos, kcrtc_st->max_slave_zorder);
-+ }
- }
-
- crtc_st->zpos_changed = true;
---
-2.43.0
-
+++ /dev/null
-From 618a46b95f5b2aee43b5a9bb4764c9f56776d9dd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index a015a951c8b78..0a190c55577e6 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -276,11 +276,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From 3335f4bf7ebddceb248f603feb03409e7e549635 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index 98e94d914597a..1de25a5a3f13a 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -567,7 +567,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -651,6 +651,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -804,6 +809,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -824,7 +834,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -846,7 +856,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1418,7 +1428,7 @@ static void ftgmac100_reset_task(struct work_struct *work)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1489,15 +1499,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From e9d47f2d26f29cd8dc4c357c7d2233e009094383 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 9ccd19d8f7b18..16bf7bb8f0db0 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1068,7 +1068,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1082,6 +1082,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1172,7 +1176,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2704,7 +2708,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2839,7 +2843,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From 2b81dbdc627879fc11a163997bd126802a027906 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 16bf7bb8f0db0..495fb5b7a0876 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1074,7 +1074,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1089,10 +1089,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From 38542c131ef00d13dd898f477d173cf23a68cfdd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index 39a55fd85b192..4e6e151db11f2 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1398,8 +1398,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(&pdev->dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-25150
-alsa-hda-realtek-fixed-alc256-headphone-no-sound.patch-25519
-alsa-hda-realtek-fixed-alc285-headphone-no-sound.patch-15833
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-2943
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-23935
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-30566
-wifi-iwlwifi-mvm-fix-iwl_mvm_max_scan_ie_fw_cmd_room.patch-5572
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-13759
-asoc-tda7419-fix-module-autoloading.patch-16548
-drm-komeda-fix-an-issue-related-to-normalized-zpos.patch-26721
-spi-bcm63xx-enable-module-autoloading.patch-32373
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-2903
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-4823
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-23173
+++ /dev/null
-From 8891037b366b064217111bbd65cdc2199d554b68 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index ff27596168732..104e3e6e056d7 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -481,6 +481,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From f5d6bc56c54f32fa91cc7da3a9d71bc430920751 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index 3c523774ef0e6..c8c884bb5090e 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -4666,6 +4666,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -4747,8 +4751,11 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From f256fb8ddfdfbadcda14fcdb445b8886c289fabe Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:06 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_max_scan_ie_fw_cmd_room()
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit 916a5d9c5354c426220a0a6533a5e8ea1287d6ea ]
-
-Driver creates also the WFA TPC element, consider that in the
-calculation.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.e710ce446b7f.I2715c6742e9c3d160e2ba41bc4b35de370d2ce34@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index 3bce3b59a12b1..55292e9b15c15 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -93,6 +93,8 @@
- /* adaptive dwell default APs number in social channels (1, 6, 11) */
- #define IWL_SCAN_ADWELL_DEFAULT_N_APS_SOCIAL 10
-
-+#define WFA_TPC_IE_LEN 9
-+
- struct iwl_mvm_scan_timing_params {
- u32 suspend_time;
- u32 max_out_time;
-@@ -378,8 +380,8 @@ static int iwl_mvm_max_scan_ie_fw_cmd_room(struct iwl_mvm *mvm)
-
- max_probe_len = SCAN_OFFLOAD_PROBE_REQ_SIZE;
-
-- /* we create the 802.11 header and SSID element */
-- max_probe_len -= 24 + 2;
-+ /* we create the 802.11 header SSID element and WFA TPC element */
-+ max_probe_len -= 24 + 2 + WFA_TPC_IE_LEN;
-
- /* DS parameter set element is added on 2.4GHZ band if required */
- if (iwl_mvm_rrm_scan_needed(mvm))
-@@ -776,8 +778,6 @@ static u8 *iwl_mvm_copy_and_insert_ds_elem(struct iwl_mvm *mvm, const u8 *ies,
- return newpos;
- }
-
--#define WFA_TPC_IE_LEN 9
--
- static void iwl_mvm_add_tpc_report_ie(u8 *pos)
- {
- pos[0] = WLAN_EID_VENDOR_SPECIFIC;
---
-2.43.0
-
+++ /dev/null
-From f2b34572f8d80d0ce9ca6d1d3f00d87a860043b4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index 51d95c4b692c3..cebbcc6c36ae5 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -256,6 +256,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.hints & HV_X64_ENLIGHTENED_VMCS_RECOMMENDED) {
---
-2.43.0
-
+++ /dev/null
-From 3214874a2b44a60ff782d305cd69f8be5b3229de Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 10:54:19 +0800
-Subject: ALSA: hda/realtek - Fixed ALC256 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 9b82ff1362f50914c8292902e07be98a9f59d33d ]
-
-Dell platform, plug headphone or headset, it had a chance to get no
-sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/bb8e2de30d294dc287944efa0667685a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 50 ++++++++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index d869d6ba96f3d..784dfdf0cd6f4 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4928,6 +4928,30 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
-+static void alc_hp_mute_disable(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
-+ msleep(delay);
-+}
-+
-+static void alc_hp_enable_unmute(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-+ msleep(delay);
-+}
-+
- static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
-@@ -5029,6 +5053,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0236:
- case 0x10ec0256:
- case 0x19e58326:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, coef0256);
- break;
- case 0x10ec0234:
-@@ -5300,6 +5325,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x45, 0xc089);
- msleep(50);
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5397,6 +5423,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5512,6 +5539,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5617,25 +5645,21 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x06, 0x6104);
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, coef0255);
- msleep(300);
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x0070) == 0x0070;
--
-+ if (!is_ctia) {
-+ alc_write_coef_idx(codec, 0x45, 0xe089);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x0070) == 0x0070)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
---
-2.43.0
-
+++ /dev/null
-From 710f5c61b58b76832f39f1730d8a79471ac864d8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 16:46:56 +0800
-Subject: ALSA: hda/realtek - FIxed ALC285 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 1fa7b099d60ad64f559bd3b8e3f0d94b2e015514 ]
-
-Dell platform with ALC215 ALC285 ALC289 ALC225 ALC295 ALC299, plug
-headphone or headset.
-It had a chance to get no sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/d0de1b03fd174520945dde216d765223@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 784dfdf0cd6f4..277303cbe96de 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5088,6 +5088,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
- break;
-@@ -5313,6 +5314,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- case 0x10ec0299:
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0255:
- alc_process_coef_fw(codec, coef0255);
-@@ -5472,6 +5474,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- alc_process_coef_fw(codec, coef0225_2);
- else
- alc_process_coef_fw(codec, coef0225_1);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0867:
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
-@@ -5577,6 +5580,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0289:
- case 0x10ec0299:
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- }
- codec_dbg(codec, "Headset jack set to Nokia-style headset mode.\n");
-@@ -5736,12 +5740,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
- val = alc_read_coef_idx(codec, 0x45);
-@@ -5758,15 +5756,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x00f0) == 0x00f0;
- }
-+ if (!is_ctia) {
-+ alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
-+ alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x00f0) == 0x00f0)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
- alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0867:
- is_ctia = true;
---
-2.43.0
-
+++ /dev/null
-From c393bf24750f2fad6cbb8685ba1dc88200de296f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:55 +0800
-Subject: ASoC: allow module autoloading for table board_ids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 5f7c98b7519a3a847d9182bd99d57ea250032ca1 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-3-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/amd/acp/acp-sof-mach.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sound/soc/amd/acp/acp-sof-mach.c b/sound/soc/amd/acp/acp-sof-mach.c
-index 972600d271586..c594af432b3ee 100644
---- a/sound/soc/amd/acp/acp-sof-mach.c
-+++ b/sound/soc/amd/acp/acp-sof-mach.c
-@@ -152,6 +152,8 @@ static const struct platform_device_id board_ids[] = {
- },
- { }
- };
-+MODULE_DEVICE_TABLE(platform, board_ids);
-+
- static struct platform_driver acp_asoc_audio = {
- .driver = {
- .name = "sof_mach",
---
-2.43.0
-
+++ /dev/null
-From 56dc3089c406af8cda0d3159f78d87d4e86a7644 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index 400eaf9f8b140..f185711180cb4 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -44,6 +44,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From a08b3b6378b5c561e1fa17c468f086d10d0baf49 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:21 +0000
-Subject: ASoC: intel: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit ae61a3391088d29aa8605c9f2db84295ab993a49 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-2-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/keembay/kmb_platform.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/intel/keembay/kmb_platform.c b/sound/soc/intel/keembay/kmb_platform.c
-index b4893365d01d5..d5c48bed7a250 100644
---- a/sound/soc/intel/keembay/kmb_platform.c
-+++ b/sound/soc/intel/keembay/kmb_platform.c
-@@ -817,6 +817,7 @@ static const struct of_device_id kmb_plat_of_match[] = {
- { .compatible = "intel,keembay-tdm", .data = &intel_kmb_tdm_dai},
- {}
- };
-+MODULE_DEVICE_TABLE(of, kmb_plat_of_match);
-
- static int kmb_plat_dai_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From 7329a028eba18c1155ac7ece6b41a12ff9ce418d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 23 Aug 2024 09:43:05 +0200
-Subject: ASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less
- strict
-
-From: Hans de Goede <hdegoede@redhat.com>
-
-[ Upstream commit 839a4ec06f75cec8fec2cc5fc14e921d0c3f7369 ]
-
-There are 2G and 4G RAM versions of the Lenovo Yoga Tab 3 X90F and it
-turns out that the 2G version has a DMI product name of
-"CHERRYVIEW D1 PLATFORM" where as the 4G version has
-"CHERRYVIEW C0 PLATFORM". The sys-vendor + product-version check are
-unique enough that the product-name check is not necessary.
-
-Drop the product-name check so that the existing DMI match for the 4G
-RAM version also matches the 2G RAM version.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
-Link: https://patch.msgid.link/20240823074305.16873-1-hdegoede@redhat.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/common/soc-acpi-intel-cht-match.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-index 5e2ec60e2954b..e4c3492a0c282 100644
---- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-@@ -84,7 +84,6 @@ static const struct dmi_system_id lenovo_yoga_tab3_x90[] = {
- /* Lenovo Yoga Tab 3 Pro YT3-X90, codec missing from DSDT */
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
- DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
- },
- },
---
-2.43.0
-
+++ /dev/null
-From 6cc8bff7f641abb2ba8a31ea0a2ce0864e13ed17 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 9 Aug 2024 13:56:27 +0000
-Subject: ASoC: SOF: mediatek: Add missing board compatible
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Albert Jakieła <jakiela@google.com>
-
-[ Upstream commit c0196faaa927321a63e680427e075734ee656e42 ]
-
-Add Google Dojo compatible.
-
-Signed-off-by: Albert Jakieła <jakiela@google.com>
-Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
-Link: https://patch.msgid.link/20240809135627.544429-1-jakiela@google.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/sof/mediatek/mt8195/mt8195.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sound/soc/sof/mediatek/mt8195/mt8195.c b/sound/soc/sof/mediatek/mt8195/mt8195.c
-index 53cadbe8a05cc..ac96ea07e591b 100644
---- a/sound/soc/sof/mediatek/mt8195/mt8195.c
-+++ b/sound/soc/sof/mediatek/mt8195/mt8195.c
-@@ -663,6 +663,9 @@ static struct snd_sof_of_mach sof_mt8195_machs[] = {
- {
- .compatible = "google,tomato",
- .sof_tplg_filename = "sof-mt8195-mt6359-rt1019-rt5682.tplg"
-+ }, {
-+ .compatible = "google,dojo",
-+ .sof_tplg_filename = "sof-mt8195-mt6359-max98390-rt5682.tplg"
- }, {
- .compatible = "mediatek,mt8195",
- .sof_tplg_filename = "sof-mt8195.tplg"
---
-2.43.0
-
+++ /dev/null
-From 1b0a5b9f9cf036b66ca8424aae4d49cec360c8fa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index d964e5207569c..6010df2994c7b 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -623,6 +623,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From 870ae5fed46a06ed01dfde8c307a410209dd0662 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Jan 2024 15:26:34 -0500
-Subject: block: Fix where bio IO priority gets set
-
-From: Hongyu Jin <hongyu.jin@unisoc.com>
-
-[ Upstream commit f3c89983cb4fc00be64eb0d5cbcfcdf2cacb965e ]
-
-Commit 82b74cac2849 ("blk-ioprio: Convert from rqos policy to direct
-call") pushed setting bio I/O priority down into blk_mq_submit_bio()
--- which is too low within block core's submit_bio() because it
-skips setting I/O priority for block drivers that implement
-fops->submit_bio() (e.g. DM, MD, etc).
-
-Fix this by moving bio_set_ioprio() up from blk-mq.c to blk-core.c and
-call it from submit_bio(). This ensures all block drivers call
-bio_set_ioprio() during initial bio submission.
-
-Fixes: a78418e6a04c ("block: Always initialize bio IO priority on submit")
-Co-developed-by: Yibin Ding <yibin.ding@unisoc.com>
-Signed-off-by: Yibin Ding <yibin.ding@unisoc.com>
-Signed-off-by: Hongyu Jin <hongyu.jin@unisoc.com>
-Reviewed-by: Eric Biggers <ebiggers@google.com>
-Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
-[snitzer: revised commit header]
-Signed-off-by: Mike Snitzer <snitzer@kernel.org>
-Reviewed-by: Ming Lei <ming.lei@redhat.com>
-Link: https://lore.kernel.org/r/20240130202638.62600-2-snitzer@kernel.org
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- block/blk-core.c | 10 ++++++++++
- block/blk-mq.c | 10 ----------
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/block/blk-core.c b/block/blk-core.c
-index a4155f123ab38..94941e3ce2194 100644
---- a/block/blk-core.c
-+++ b/block/blk-core.c
-@@ -49,6 +49,7 @@
- #include "blk-pm.h"
- #include "blk-cgroup.h"
- #include "blk-throttle.h"
-+#include "blk-ioprio.h"
-
- struct dentry *blk_debugfs_root;
-
-@@ -799,6 +800,14 @@ void submit_bio_noacct(struct bio *bio)
- }
- EXPORT_SYMBOL(submit_bio_noacct);
-
-+static void bio_set_ioprio(struct bio *bio)
-+{
-+ /* Nobody set ioprio so far? Initialize it based on task's nice value */
-+ if (IOPRIO_PRIO_CLASS(bio->bi_ioprio) == IOPRIO_CLASS_NONE)
-+ bio->bi_ioprio = get_current_ioprio();
-+ blkcg_set_ioprio(bio);
-+}
-+
- /**
- * submit_bio - submit a bio to the block device layer for I/O
- * @bio: The &struct bio which describes the I/O
-@@ -824,6 +833,7 @@ void submit_bio(struct bio *bio)
- count_vm_events(PGPGOUT, bio_sectors(bio));
- }
-
-+ bio_set_ioprio(bio);
- submit_bio_noacct(bio);
- }
- EXPORT_SYMBOL(submit_bio);
-diff --git a/block/blk-mq.c b/block/blk-mq.c
-index daf0e4f3444e7..542b28a2e6b0f 100644
---- a/block/blk-mq.c
-+++ b/block/blk-mq.c
-@@ -42,7 +42,6 @@
- #include "blk-stat.h"
- #include "blk-mq-sched.h"
- #include "blk-rq-qos.h"
--#include "blk-ioprio.h"
-
- static DEFINE_PER_CPU(struct llist_head, blk_cpu_done);
-
-@@ -2949,14 +2948,6 @@ static bool blk_mq_can_use_cached_rq(struct request *rq, struct blk_plug *plug,
- return true;
- }
-
--static void bio_set_ioprio(struct bio *bio)
--{
-- /* Nobody set ioprio so far? Initialize it based on task's nice value */
-- if (IOPRIO_PRIO_CLASS(bio->bi_ioprio) == IOPRIO_CLASS_NONE)
-- bio->bi_ioprio = get_current_ioprio();
-- blkcg_set_ioprio(bio);
--}
--
- /**
- * blk_mq_submit_bio - Create and send a request to block device.
- * @bio: Bio pointer.
-@@ -2980,7 +2971,6 @@ void blk_mq_submit_bio(struct bio *bio)
- blk_status_t ret;
-
- bio = blk_queue_bounce(bio, q);
-- bio_set_ioprio(bio);
-
- if (plug) {
- rq = rq_list_peek(&plug->cached_rq);
---
-2.43.0
-
+++ /dev/null
-From 7a9e30a14ca54f144fc0aae0ac58651a37f8de67 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 5 Jul 2024 17:24:42 +0200
-Subject: can: mcp251xfd: mcp251xfd_ring_init(): check TX-coalescing
- configuration
-
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-
-[ Upstream commit ac2b81eb8b2d104033560daea886ee84531e3d0a ]
-
-When changing the interface from CAN-CC to CAN-FD mode the old
-coalescing parameters are re-used. This might cause problem, as the
-configured parameters are too big for CAN-FD mode.
-
-During testing an invalid TX coalescing configuration has been seen.
-The problem should be been fixed in the previous patch, but add a
-safeguard here to ensure that the number of TEF coalescing buffers (if
-configured) is exactly the half of all TEF buffers.
-
-Link: https://lore.kernel.org/all/20240805-mcp251xfd-fix-ringconfig-v1-2-72086f0ca5ee@pengutronix.de
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c | 14 +++++++++++---
- 1 file changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-index 0fde8154a649b..a894cb1fb9bfe 100644
---- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-@@ -280,7 +280,7 @@ int mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
- const struct mcp251xfd_rx_ring *rx_ring;
- u16 base = 0, ram_used;
- u8 fifo_nr = 1;
-- int i;
-+ int err = 0, i;
-
- netdev_reset_queue(priv->ndev);
-
-@@ -376,10 +376,18 @@ int mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
- netdev_err(priv->ndev,
- "Error during ring configuration, using more RAM (%u bytes) than available (%u bytes).\n",
- ram_used, MCP251XFD_RAM_SIZE);
-- return -ENOMEM;
-+ err = -ENOMEM;
- }
-
-- return 0;
-+ if (priv->tx_obj_num_coalesce_irq &&
-+ priv->tx_obj_num_coalesce_irq * 2 != priv->tx->obj_num) {
-+ netdev_err(priv->ndev,
-+ "Error during ring configuration, number of TEF coalescing buffers (%u) must be half of TEF buffers (%u).\n",
-+ priv->tx_obj_num_coalesce_irq, priv->tx->obj_num);
-+ err = -EINVAL;
-+ }
-+
-+ return err;
- }
-
- void mcp251xfd_ring_free(struct mcp251xfd_priv *priv)
---
-2.43.0
-
+++ /dev/null
-From 5d6467541a908c78d27b1d530393d259859c7b8c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 10:45:17 +0800
-Subject: drm: komeda: Fix an issue related to normalized zpos
-
-From: hongchi.peng <hongchi.peng@siengine.com>
-
-[ Upstream commit 258905cb9a6414be5c9ca4aa20ef855f8dc894d4 ]
-
-We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
-to their blending zorder in CU. If there's only one slave plane in
-affected planes and its layer_split property is enabled, order++ for
-its split layer, so that when calculating the normalized_zpos
-of master planes, the split layer of the slave plane is included, but
-the max_slave_zorder does not include the split layer and keep zero
-because there's only one slave plane in affacted planes, although we
-actually use two slave layers in this commit.
-
-In most cases, this bug does not result in a commit failure, but assume
-the following situation:
- slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
- 0;(use slave_layer 2 as its split layer)
- master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
- 2;(use master_layer 2 as its split layer)
- master_layer 1: zpos = 4, normalized_zpos = 4;
- master_layer 3: zpos = 5, normalized_zpos = 5;
- kcrtc_st->max_slave_zorder = 0;
-When we use master_layer 3 as a input of CU in function
-komeda_compiz_set_input and check it with function
-komeda_component_check_input, the parameter idx is equal to
-normailzed_zpos minus max_slave_zorder, the value of idx is 5
-and is euqal to CU's max_active_inputs, so that
-komeda_component_check_input returns a -EINVAL value.
-
-To fix the bug described above, when calculating the max_slave_zorder
-with the layer_split enabled, count the split layer in this calculation
-directly.
-
-Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
-Acked-by: Liviu Dudau <liviu.dudau@arm.com>
-Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-index 451746ebbe713..89f3d6aa72b08 100644
---- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-@@ -163,6 +163,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- struct drm_plane *plane;
- struct list_head zorder_list;
- int order = 0, err;
-+ u32 slave_zpos = 0;
-
- DRM_DEBUG_ATOMIC("[CRTC:%d:%s] calculating normalized zpos values\n",
- crtc->base.id, crtc->name);
-@@ -202,10 +203,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- plane_st->zpos, plane_st->normalized_zpos);
-
- /* calculate max slave zorder */
-- if (has_bit(drm_plane_index(plane), kcrtc->slave_planes))
-+ if (has_bit(drm_plane_index(plane), kcrtc->slave_planes)) {
-+ slave_zpos = plane_st->normalized_zpos;
-+ if (to_kplane_st(plane_st)->layer_split)
-+ slave_zpos++;
- kcrtc_st->max_slave_zorder =
-- max(plane_st->normalized_zpos,
-- kcrtc_st->max_slave_zorder);
-+ max(slave_zpos, kcrtc_st->max_slave_zorder);
-+ }
- }
-
- crtc_st->zpos_changed = true;
---
-2.43.0
-
+++ /dev/null
-From c4a84e38bcafbc0d3f7ca172e755a74364f876fe Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Jul 2024 08:21:42 +0200
-Subject: hwmon: (asus-ec-sensors) remove VRM temp X570-E GAMING
-
-From: Ross Brown <true.robot.ross@gmail.com>
-
-[ Upstream commit 9efaebc0072b8e95505544bf385c20ee8a29d799 ]
-
-X570-E GAMING does not have VRM temperature sensor.
-
-Signed-off-by: Ross Brown <true.robot.ross@gmail.com>
-Signed-off-by: Eugene Shalygin <eugene.shalygin@gmail.com>
-Link: https://lore.kernel.org/r/20240730062320.5188-2-eugene.shalygin@gmail.com
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hwmon/asus-ec-sensors.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/asus-ec-sensors.c b/drivers/hwmon/asus-ec-sensors.c
-index b4d65916b3c00..d893cfd1cb829 100644
---- a/drivers/hwmon/asus-ec-sensors.c
-+++ b/drivers/hwmon/asus-ec-sensors.c
-@@ -369,7 +369,7 @@ static const struct ec_board_info board_info_strix_b550_i_gaming = {
-
- static const struct ec_board_info board_info_strix_x570_e_gaming = {
- .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB |
-- SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM |
-+ SENSOR_TEMP_T_SENSOR |
- SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU |
- SENSOR_IN_CPU_CORE,
- .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX,
---
-2.43.0
-
+++ /dev/null
-From 018e86f5fa0c842c225ff6ef3e3b59df72d5cdef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 23:11:32 +0800
-Subject: LoongArch: Define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE
-
-From: Huacai Chen <chenhuacai@loongson.cn>
-
-[ Upstream commit 274ea3563e5ab9f468c15bfb9d2492803a66d9be ]
-
-Currently we call irq_set_noprobe() in a loop for all IRQs, but indeed
-it only works for IRQs below NR_IRQS_LEGACY because at init_IRQ() only
-legacy interrupts have been allocated.
-
-Instead, we can define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE in asm/hwirq.h
-and the core will automatically set the flag for all interrupts.
-
-Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
-Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/loongarch/include/asm/hw_irq.h | 2 ++
- arch/loongarch/kernel/irq.c | 3 ---
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/arch/loongarch/include/asm/hw_irq.h b/arch/loongarch/include/asm/hw_irq.h
-index af4f4e8fbd858..8156ffb674159 100644
---- a/arch/loongarch/include/asm/hw_irq.h
-+++ b/arch/loongarch/include/asm/hw_irq.h
-@@ -9,6 +9,8 @@
-
- extern atomic_t irq_err_count;
-
-+#define ARCH_IRQ_INIT_FLAGS IRQ_NOPROBE
-+
- /*
- * interrupt-retrigger: NOP for now. This may not be appropriate for all
- * machines, we'll see ...
-diff --git a/arch/loongarch/kernel/irq.c b/arch/loongarch/kernel/irq.c
-index 0524bf1169b74..4496649c9e68b 100644
---- a/arch/loongarch/kernel/irq.c
-+++ b/arch/loongarch/kernel/irq.c
-@@ -122,9 +122,6 @@ void __init init_IRQ(void)
- panic("IPI IRQ request failed\n");
- #endif
-
-- for (i = 0; i < NR_IRQS; i++)
-- irq_set_noprobe(i);
--
- for_each_possible_cpu(i) {
- page = alloc_pages_node(cpu_to_node(i), GFP_KERNEL, order);
-
---
-2.43.0
-
+++ /dev/null
-From b071a874ac5a6a541127634169156fbbb6199425 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index 353fabdfcbc54..2a3248194d505 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -193,11 +193,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From 002b5ac1e2685291c81ff9791f87db9975d66b2e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index a03879a27b041..7adc46aa75e66 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -566,7 +566,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -650,6 +650,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -803,6 +808,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -823,7 +833,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -845,7 +855,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1338,7 +1348,7 @@ static void ftgmac100_reset(struct ftgmac100 *priv)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1537,15 +1547,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From 0ea2014a17504389b4965a432a40e91f57162590 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 55699c5735413..61213b7e4dfbe 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1066,7 +1066,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1080,6 +1080,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1170,7 +1174,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2702,7 +2706,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2837,7 +2841,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From 78bdc9d421a2ca3b7b16f748036d2bc153dff758 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 61213b7e4dfbe..3ba40f16ef056 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1072,7 +1072,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1087,10 +1087,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From c60d909731e4c7cccc4ea663623cd0c66889ae3f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index ff3b6a8a0b170..333f9d70c7f48 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1420,8 +1420,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(&pdev->dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
+++ /dev/null
-From 87d4d29885694f6d4074ee088f694aa33094a143 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 20 Aug 2024 23:51:31 -0700
-Subject: scsi: lpfc: Fix overflow build issue
-
-From: Sherry Yang <sherry.yang@oracle.com>
-
-[ Upstream commit 3417c9574e368f0330637505f00d3814ca8854d2 ]
-
-Build failed while enabling "CONFIG_GCOV_KERNEL=y" and
-"CONFIG_GCOV_PROFILE_ALL=y" with following error:
-
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c: In function 'lpfc_get_cgnbuf_info':
-BUILDSTDERR: ./include/linux/fortify-string.h:114:33: error: '__builtin_memcpy' accessing 18446744073709551615 bytes at offsets 0 and 0 overlaps 9223372036854775807 bytes at offset -9223372036854775808 [-Werror=restrict]
-BUILDSTDERR: 114 | #define __underlying_memcpy __builtin_memcpy
-BUILDSTDERR: | ^
-BUILDSTDERR: ./include/linux/fortify-string.h:637:9: note: in expansion of macro '__underlying_memcpy'
-BUILDSTDERR: 637 | __underlying_##op(p, q, __fortify_size); \
-BUILDSTDERR: | ^~~~~~~~~~~~~
-BUILDSTDERR: ./include/linux/fortify-string.h:682:26: note: in expansion of macro '__fortify_memcpy_chk'
-BUILDSTDERR: 682 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \
-BUILDSTDERR: | ^~~~~~~~~~~~~~~~~~~~
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c:5468:9: note: in expansion of macro 'memcpy'
-BUILDSTDERR: 5468 | memcpy(cgn_buff, cp, cinfosz);
-BUILDSTDERR: | ^~~~~~
-
-This happens from the commit 06bb7fc0feee ("kbuild: turn on -Wrestrict by
-default"). Address this issue by using size_t type.
-
-Signed-off-by: Sherry Yang <sherry.yang@oracle.com>
-Link: https://lore.kernel.org/r/20240821065131.1180791-1-sherry.yang@oracle.com
-Reviewed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_bsg.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
-index 2373dad016033..fc300febe9140 100644
---- a/drivers/scsi/lpfc/lpfc_bsg.c
-+++ b/drivers/scsi/lpfc/lpfc_bsg.c
-@@ -5409,7 +5409,7 @@ lpfc_get_cgnbuf_info(struct bsg_job *job)
- struct get_cgnbuf_info_req *cgnbuf_req;
- struct lpfc_cgn_info *cp;
- uint8_t *cgn_buff;
-- int size, cinfosz;
-+ size_t size, cinfosz;
- int rc = 0;
-
- if (job->request_len < sizeof(struct fc_bsg_request) +
---
-2.43.0
-
spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-sof-mediatek-add-missing-board-compatible.patch-13794
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-6485
-asoc-allow-module-autoloading-for-table-board_ids.patch-3580
-alsa-hda-realtek-fixed-alc256-headphone-no-sound.patch-30958
-alsa-hda-realtek-fixed-alc285-headphone-no-sound.patch-25726
-scsi-lpfc-fix-overflow-build-issue.patch-20005
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-9726
-hwmon-asus-ec-sensors-remove-vrm-temp-x570-e-gaming.patch-17737
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-28512
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-11342
-loongarch-define-arch_irq_init_flags-as-irq_noprobe.patch-24263
-wifi-iwlwifi-lower-message-level-for-fw-buffer-desti.patch-31042
-wifi-iwlwifi-mvm-fix-iwl_mvm_scan_fits-calculation.patch-32738
-wifi-iwlwifi-mvm-pause-tcm-when-the-firmware-is-stop.patch-8139
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-5725
-wifi-mac80211-free-skb-on-error-path-in-ieee80211_be.patch-24142
-wifi-iwlwifi-clear-trans-state-earlier-upon-error.patch-6929
-can-mcp251xfd-mcp251xfd_ring_init-check-tx-coalescin.patch-19360
-asoc-intel-soc-acpi-cht-make-lenovo-yoga-tab-3-x90f-.patch-12345
-asoc-intel-fix-module-autoloading.patch-15841
-asoc-tda7419-fix-module-autoloading.patch-17758
-spi-spidev-add-an-entry-for-elgin-jg10309-01.patch-11824
-drm-komeda-fix-an-issue-related-to-normalized-zpos.patch-6195
-spi-bcm63xx-enable-module-autoloading.patch-6357
-smb-client-fix-hang-in-wait_for_response-for-negprot.patch-28047
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-19340
-tools-hv-rm-.-.cmd-when-make-clean.patch-11044
-block-fix-where-bio-io-priority-gets-set.patch-18105
-spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch-21867
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-12187
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-32532
+++ /dev/null
-From 169dc7d3c37753764a156cbfe06dcc30bdddcbc7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 21:40:28 -0300
-Subject: smb: client: fix hang in wait_for_response() for negproto
-
-From: Paulo Alcantara <pc@manguebit.com>
-
-[ Upstream commit 7ccc1465465d78e6411b7bd730d06e7435802b5c ]
-
-Call cifs_reconnect() to wake up processes waiting on negotiate
-protocol to handle the case where server abruptly shut down and had no
-chance to properly close the socket.
-
-Simple reproducer:
-
- ssh 192.168.2.100 pkill -STOP smbd
- mount.cifs //192.168.2.100/test /mnt -o ... [never returns]
-
-Cc: Rickard Andersson <rickaran@axis.com>
-Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/smb/client/connect.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c
-index 21b344762d0f8..87ce71b39b771 100644
---- a/fs/smb/client/connect.c
-+++ b/fs/smb/client/connect.c
-@@ -673,6 +673,19 @@ allocate_buffers(struct TCP_Server_Info *server)
- static bool
- server_unresponsive(struct TCP_Server_Info *server)
- {
-+ /*
-+ * If we're in the process of mounting a share or reconnecting a session
-+ * and the server abruptly shut down (e.g. socket wasn't closed, packet
-+ * had been ACK'ed but no SMB response), don't wait longer than 20s to
-+ * negotiate protocol.
-+ */
-+ spin_lock(&server->srv_lock);
-+ if (server->tcpStatus == CifsInNegotiate &&
-+ time_after(jiffies, server->lstrp + 20 * HZ)) {
-+ spin_unlock(&server->srv_lock);
-+ cifs_reconnect(server, false);
-+ return true;
-+ }
- /*
- * We need to wait 3 echo intervals to make sure we handle such
- * situations right:
-@@ -684,7 +697,6 @@ server_unresponsive(struct TCP_Server_Info *server)
- * 65s kernel_recvmsg times out, and we see that we haven't gotten
- * a response in >60s.
- */
-- spin_lock(&server->srv_lock);
- if ((server->tcpStatus == CifsGood ||
- server->tcpStatus == CifsNeedNegotiate) &&
- (!server->ops->can_echo || server->ops->can_echo(server)) &&
---
-2.43.0
-
+++ /dev/null
-From 751549c2202bc87c7c5fe7c5bbac8d320ac7a692 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index 147199002df1e..a9921dcd6b797 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -482,6 +482,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From be45e6eda30bf297c6bc8f335f2b9e3842fd1883 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 28 Aug 2024 15:00:56 -0300
-Subject: spi: spidev: Add an entry for elgin,jg10309-01
-
-From: Fabio Estevam <festevam@gmail.com>
-
-[ Upstream commit 5f3eee1eef5d0edd23d8ac0974f56283649a1512 ]
-
-The rv1108-elgin-r1 board has an LCD controlled via SPI in userspace.
-The marking on the LCD is JG10309-01.
-
-Add the "elgin,jg10309-01" compatible string.
-
-Signed-off-by: Fabio Estevam <festevam@gmail.com>
-Reviewed-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patch.msgid.link/20240828180057.3167190-2-festevam@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index 477c3578e7d9e..7ae032f8de63c 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -722,6 +722,7 @@ static int spidev_of_check(struct device *dev)
- static const struct of_device_id spidev_dt_ids[] = {
- { .compatible = "cisco,spi-petra", .data = &spidev_of_check },
- { .compatible = "dh,dhcom-board", .data = &spidev_of_check },
-+ { .compatible = "elgin,jg10309-01", .data = &spidev_of_check },
- { .compatible = "lineartechnology,ltc2488", .data = &spidev_of_check },
- { .compatible = "lwn,bk4", .data = &spidev_of_check },
- { .compatible = "menlo,m53cpld", .data = &spidev_of_check },
---
-2.43.0
-
+++ /dev/null
-From bcb4b03946a4adb9f67d3899e034a906f63cc1ff Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 3 Sep 2024 14:32:27 +0200
-Subject: spi: spidev: Add missing spi_device_id for jg10309-01
-
-From: Geert Uytterhoeven <geert+renesas@glider.be>
-
-[ Upstream commit 5478a4f7b94414def7b56d2f18bc2ed9b0f3f1f2 ]
-
-When the of_device_id entry for "elgin,jg10309-01" was added, the
-corresponding spi_device_id was forgotten, causing a warning message
-during boot-up:
-
- SPI driver spidev has no spi_device_id for elgin,jg10309-01
-
-Fix module autoloading and shut up the warning by adding the missing
-entry.
-
-Fixes: 5f3eee1eef5d0edd ("spi: spidev: Add an entry for elgin,jg10309-01")
-Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
-Link: https://patch.msgid.link/54bbb9d8a8db7e52d13e266f2d4a9bcd8b42a98a.1725366625.git.geert+renesas@glider.be
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index 7ae032f8de63c..81a3cf9253452 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -694,6 +694,7 @@ static struct class *spidev_class;
- static const struct spi_device_id spidev_spi_ids[] = {
- { .name = "bh2228fv" },
- { .name = "dh2228fv" },
-+ { .name = "jg10309-01" },
- { .name = "ltc2488" },
- { .name = "sx1301" },
- { .name = "bk4" },
---
-2.43.0
-
+++ /dev/null
-From b82500b63db6ea7005a1b0c31fa51f534fa51226 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 2 Sep 2024 12:21:03 +0800
-Subject: tools: hv: rm .*.cmd when make clean
-
-From: zhang jiao <zhangjiao2@cmss.chinamobile.com>
-
-[ Upstream commit 5e5cc1eb65256e6017e3deec04f9806f2f317853 ]
-
-rm .*.cmd when make clean
-
-Signed-off-by: zhang jiao <zhangjiao2@cmss.chinamobile.com>
-Reviewed-by: Saurabh Sengar <ssengar@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240902042103.5867-1-zhangjiao2@cmss.chinamobile.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240902042103.5867-1-zhangjiao2@cmss.chinamobile.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/hv/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/hv/Makefile b/tools/hv/Makefile
-index fe770e679ae8f..5643058e2d377 100644
---- a/tools/hv/Makefile
-+++ b/tools/hv/Makefile
-@@ -47,7 +47,7 @@ $(OUTPUT)hv_fcopy_daemon: $(HV_FCOPY_DAEMON_IN)
-
- clean:
- rm -f $(ALL_PROGRAMS)
-- find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
-+ find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete -o -name '\.*.cmd' -delete
-
- install: $(ALL_PROGRAMS)
- install -d -m 755 $(DESTDIR)$(sbindir); \
---
-2.43.0
-
+++ /dev/null
-From 544ad8c06bd61a0510cd4bb714174fd1a8347cf9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:01 +0300
-Subject: wifi: iwlwifi: clear trans->state earlier upon error
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 094513f8a2fbddee51b055d8035f995551f98fce ]
-
-When the firmware crashes, we first told the op_mode and only then,
-changed the transport's state. This is a problem if the op_mode's
-nic_error() handler needs to send a host command: it'll see that the
-transport's state still reflects that the firmware is alive.
-
-Today, this has no consequences since we set the STATUS_FW_ERROR bit and
-that will prevent sending host commands. iwl_fw_dbg_stop_restart_recording
-looks at this bit to know not to send a host command for example.
-
-To fix the hibernation, we needed to reset the firmware without having
-an error and checking STATUS_FW_ERROR to see whether the firmware is
-alive will no longer hold, so this change is necessary as well.
-
-Change the flow a bit.
-Change trans->state before calling the op_mode's nic_error() method and
-check trans->state instead of STATUS_FW_ERROR. This will keep the
-current behavior of iwl_fw_dbg_stop_restart_recording upon firmware
-error, and it'll allow us to call iwl_fw_dbg_stop_restart_recording
-safely even if STATUS_FW_ERROR is clear, but yet, the firmware is not
-alive.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.9d7427fbdfd7.Ia056ca57029a382c921d6f7b6a6b28fc480f2f22@changeid
-[I missed this was a dependency for the hibernation fix, changed
- the commit message a bit accordingly]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 2 +-
- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-index 3b0ed1cdfa11e..7fadaec777cea 100644
---- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-@@ -3131,7 +3131,7 @@ void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
- {
- int ret __maybe_unused = 0;
-
-- if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status))
-+ if (!iwl_trans_fw_running(fwrt->trans))
- return;
-
- if (fw_has_capa(&fwrt->fw->ucode_capa,
-diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-index 70022cadee35b..ad29663a356be 100644
---- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-@@ -1472,8 +1472,8 @@ static inline void iwl_trans_fw_error(struct iwl_trans *trans, bool sync)
-
- /* prevent double restarts due to the same erroneous FW */
- if (!test_and_set_bit(STATUS_FW_ERROR, &trans->status)) {
-- iwl_op_mode_nic_error(trans->op_mode, sync);
- trans->state = IWL_TRANS_NO_FW;
-+ iwl_op_mode_nic_error(trans->op_mode, sync);
- }
- }
-
---
-2.43.0
-
+++ /dev/null
-From 6430255faec55353ed3fb5081b1fefde4039fb10 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:13 +0300
-Subject: wifi: iwlwifi: lower message level for FW buffer destination
-
-From: Benjamin Berg <benjamin.berg@intel.com>
-
-[ Upstream commit f8a129c1e10256c785164ed5efa5d17d45fbd81b ]
-
-An invalid buffer destination is not a problem for the driver and it
-does not make sense to report it with the KERN_ERR message level. As
-such, change the message to use IWL_DEBUG_FW.
-
-Reported-by: Len Brown <lenb@kernel.org>
-Closes: https://lore.kernel.org/r/CAJvTdKkcxJss=DM2sxgv_MR5BeZ4_OC-3ad6tA40TYH2yqHCWw@mail.gmail.com
-Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.20abf78f05bc.Ifbcecc2ae9fb40b9698302507dcba8b922c8d856@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-index 75fd386b048e9..35c60faf8e8fb 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-@@ -68,7 +68,8 @@ iwl_pcie_ctxt_info_dbg_enable(struct iwl_trans *trans,
- }
- break;
- default:
-- IWL_ERR(trans, "WRT: Invalid buffer destination\n");
-+ IWL_DEBUG_FW(trans, "WRT: Invalid buffer destination (%d)\n",
-+ le32_to_cpu(fw_mon_cfg->buf_location));
- }
- out:
- if (dbg_flags)
---
-2.43.0
-
+++ /dev/null
-From 879ec4bc21ffaca3f9af137f0794e09ef0d96283 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index 4e8bdd3d701bf..bd4301857ba87 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -4800,6 +4800,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -4881,8 +4885,11 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From ee050810cd87d4d3998bffe050ffe97b7fba828a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:05 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_scan_fits() calculation
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit d44162280899c3fc2c6700e21e491e71c3c96e3d ]
-
-The calculation should consider also the 6GHz IE's len, fix that.
-In addition, in iwl_mvm_sched_scan_start() the scan_fits helper is
-called only in case non_psc_incldued is true, but it should be called
-regardless, fix that as well.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.7db825442fd2.I99f4d6587709de02072fd57957ec7472331c6b1d@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 ++++++++++---------
- 1 file changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index b58441c2af730..20c5cc72e4269 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -824,8 +824,8 @@ static inline bool iwl_mvm_scan_fits(struct iwl_mvm *mvm, int n_ssids,
- return ((n_ssids <= PROBE_OPTION_MAX) &&
- (n_channels <= mvm->fw->ucode_capa.n_scan_channels) &
- (ies->common_ie_len +
-- ies->len[NL80211_BAND_2GHZ] +
-- ies->len[NL80211_BAND_5GHZ] <=
-+ ies->len[NL80211_BAND_2GHZ] + ies->len[NL80211_BAND_5GHZ] +
-+ ies->len[NL80211_BAND_6GHZ] <=
- iwl_mvm_max_scan_ie_fw_cmd_room(mvm)));
- }
-
-@@ -2935,18 +2935,16 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- params.n_channels = j;
- }
-
-- if (non_psc_included &&
-- !iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-- kfree(params.channels);
-- return -ENOBUFS;
-+ if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-+ ret = -ENOBUFS;
-+ goto out;
- }
-
- uid = iwl_mvm_build_scan_cmd(mvm, vif, &hcmd, ¶ms, type);
--
-- if (non_psc_included)
-- kfree(params.channels);
-- if (uid < 0)
-- return uid;
-+ if (uid < 0) {
-+ ret = uid;
-+ goto out;
-+ }
-
- ret = iwl_mvm_send_cmd(mvm, &hcmd);
- if (!ret) {
-@@ -2963,6 +2961,9 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;
- }
-
-+out:
-+ if (non_psc_included)
-+ kfree(params.channels);
- return ret;
- }
-
---
-2.43.0
-
+++ /dev/null
-From 77a3713bb69dd649c271152c2ed2839c0829bcf3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:10 +0300
-Subject: wifi: iwlwifi: mvm: pause TCM when the firmware is stopped
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 0668ebc8c2282ca1e7eb96092a347baefffb5fe7 ]
-
-Not doing so will make us send a host command to the transport while the
-firmware is not alive, which will trigger a WARNING.
-
-bad state = 0
-WARNING: CPU: 2 PID: 17434 at drivers/net/wireless/intel/iwlwifi/iwl-trans.c:115 iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-RIP: 0010:iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-Call Trace:
- <TASK>
- iwl_mvm_send_cmd+0x40/0xc0 [iwlmvm]
- iwl_mvm_config_scan+0x198/0x260 [iwlmvm]
- iwl_mvm_recalc_tcm+0x730/0x11d0 [iwlmvm]
- iwl_mvm_tcm_work+0x1d/0x30 [iwlmvm]
- process_one_work+0x29e/0x640
- worker_thread+0x2df/0x690
- ? rescuer_thread+0x540/0x540
- kthread+0x192/0x1e0
- ? set_kthread_struct+0x90/0x90
- ret_from_fork+0x22/0x30
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.5abe71ca1b6b.I97a968cb8be1f24f94652d9b110ecbf6af73f89e@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-index 88b6d4e566c40..0a11ee347bf32 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-@@ -1366,6 +1366,8 @@ void iwl_mvm_stop_device(struct iwl_mvm *mvm)
-
- clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status);
-
-+ iwl_mvm_pause_tcm(mvm, false);
-+
- iwl_fw_dbg_stop_sync(&mvm->fwrt);
- iwl_trans_stop_device(mvm->trans);
- iwl_free_fw_paging(&mvm->fwrt);
---
-2.43.0
-
+++ /dev/null
-From 49042496cbf5fd418eb24a2bcae78cda05c01d89 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 5 Aug 2024 17:20:35 +0300
-Subject: wifi: mac80211: free skb on error path in ieee80211_beacon_get_ap()
-
-From: Dmitry Antipov <dmantipov@yandex.ru>
-
-[ Upstream commit 786c5be9ac29a39b6f37f1fdd2ea59d0fe35d525 ]
-
-In 'ieee80211_beacon_get_ap()', free allocated skb in case of error
-returned by 'ieee80211_beacon_protect()'. Compile tested only.
-
-Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
-Link: https://patch.msgid.link/20240805142035.227847-1-dmantipov@yandex.ru
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/mac80211/tx.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index 419baf8efddea..0685ae2ea64eb 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -5196,8 +5196,10 @@ ieee80211_beacon_get_ap(struct ieee80211_hw *hw,
- if (beacon->tail)
- skb_put_data(skb, beacon->tail, beacon->tail_len);
-
-- if (ieee80211_beacon_protect(skb, local, sdata, link) < 0)
-+ if (ieee80211_beacon_protect(skb, local, sdata, link) < 0) {
-+ dev_kfree_skb(skb);
- return NULL;
-+ }
-
- ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
- chanctx_conf, csa_off_base);
---
-2.43.0
-
+++ /dev/null
-From 2b9b9241d9dcde22387a4869e2cd6e9986bef9ef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index 9b039e9635e40..542b818c0d20d 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -324,6 +324,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.priv_high & HV_ISOLATION) {
---
-2.43.0
-
+++ /dev/null
-From bb6dbc035a8694a06c7d80d7f39dcd0fd3d466de Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 30 Aug 2024 15:24:58 +0800
-Subject: ALSA: hda: add HDMI codec ID for Intel PTL
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
-
-[ Upstream commit e9481d9b83f8d9b3251aa428b02d8eba89d839ff ]
-
-Add HDMI codec ID for Intel Panther Lake platform.
-
-Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
-Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
-Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
-Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
-Link: https://patch.msgid.link/20240830072458.110831-1-yung-chuan.liao@linux.intel.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_hdmi.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
-index 78042ac2b71f2..643e0496b0936 100644
---- a/sound/pci/hda/patch_hdmi.c
-+++ b/sound/pci/hda/patch_hdmi.c
-@@ -4639,6 +4639,7 @@ HDA_CODEC_ENTRY(0x8086281d, "Meteor Lake HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x8086281e, "Battlemage HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x8086281f, "Raptor Lake P HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x80862820, "Lunar Lake HDMI", patch_i915_adlp_hdmi),
-+HDA_CODEC_ENTRY(0x80862822, "Panther Lake HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x80862880, "CedarTrail HDMI", patch_generic_hdmi),
- HDA_CODEC_ENTRY(0x80862882, "Valleyview2 HDMI", patch_i915_byt_hdmi),
- HDA_CODEC_ENTRY(0x80862883, "Braswell HDMI", patch_i915_byt_hdmi),
---
-2.43.0
-
+++ /dev/null
-From 60ce73d2b82e64f8404501d617b6faca28688aa3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 10:54:19 +0800
-Subject: ALSA: hda/realtek - Fixed ALC256 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 9b82ff1362f50914c8292902e07be98a9f59d33d ]
-
-Dell platform, plug headphone or headset, it had a chance to get no
-sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/bb8e2de30d294dc287944efa0667685a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 50 ++++++++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 0cde024d1d33c..f730f22d6747a 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4925,6 +4925,30 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
-+static void alc_hp_mute_disable(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
-+ msleep(delay);
-+}
-+
-+static void alc_hp_enable_unmute(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-+ msleep(delay);
-+}
-+
- static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
-@@ -5026,6 +5050,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0236:
- case 0x10ec0256:
- case 0x19e58326:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, coef0256);
- break;
- case 0x10ec0234:
-@@ -5297,6 +5322,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x45, 0xc089);
- msleep(50);
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5394,6 +5420,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5509,6 +5536,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5614,25 +5642,21 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x06, 0x6104);
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, coef0255);
- msleep(300);
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x0070) == 0x0070;
--
-+ if (!is_ctia) {
-+ alc_write_coef_idx(codec, 0x45, 0xe089);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x0070) == 0x0070)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
---
-2.43.0
-
+++ /dev/null
-From a3c352aea776d1097c212ece23a51e96f5dda2b4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 16:46:56 +0800
-Subject: ALSA: hda/realtek - FIxed ALC285 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 1fa7b099d60ad64f559bd3b8e3f0d94b2e015514 ]
-
-Dell platform with ALC215 ALC285 ALC289 ALC225 ALC295 ALC299, plug
-headphone or headset.
-It had a chance to get no sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/d0de1b03fd174520945dde216d765223@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index f730f22d6747a..2b674691ce4b6 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5085,6 +5085,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
- break;
-@@ -5310,6 +5311,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- case 0x10ec0299:
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0255:
- alc_process_coef_fw(codec, coef0255);
-@@ -5469,6 +5471,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- alc_process_coef_fw(codec, coef0225_2);
- else
- alc_process_coef_fw(codec, coef0225_1);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0867:
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
-@@ -5574,6 +5577,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0289:
- case 0x10ec0299:
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- }
- codec_dbg(codec, "Headset jack set to Nokia-style headset mode.\n");
-@@ -5733,12 +5737,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
- val = alc_read_coef_idx(codec, 0x45);
-@@ -5755,15 +5753,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x00f0) == 0x00f0;
- }
-+ if (!is_ctia) {
-+ alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
-+ alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x00f0) == 0x00f0)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
- alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0867:
- is_ctia = true;
---
-2.43.0
-
+++ /dev/null
-From 9519a275ac41f0d2b033c7b6f3c5010aff72d35c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:55 +0800
-Subject: ASoC: allow module autoloading for table board_ids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 5f7c98b7519a3a847d9182bd99d57ea250032ca1 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-3-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/amd/acp/acp-sof-mach.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sound/soc/amd/acp/acp-sof-mach.c b/sound/soc/amd/acp/acp-sof-mach.c
-index fc59ea34e687a..b3a702dcd9911 100644
---- a/sound/soc/amd/acp/acp-sof-mach.c
-+++ b/sound/soc/amd/acp/acp-sof-mach.c
-@@ -158,6 +158,8 @@ static const struct platform_device_id board_ids[] = {
- },
- { }
- };
-+MODULE_DEVICE_TABLE(platform, board_ids);
-+
- static struct platform_driver acp_asoc_audio = {
- .driver = {
- .name = "sof_mach",
---
-2.43.0
-
+++ /dev/null
-From 10bf4171c3064e8d62e1c9f8d7d310d4171f62fb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index 83a75a38705b4..81abe2e184024 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -44,6 +44,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From 9a162f914bf9bfbc8ec524701a3582cb495b0aee Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 29 Aug 2024 16:03:05 +0300
-Subject: ASoC: amd: yc: Add a quirk for MSI Bravo 17 (D7VEK)
-
-From: Markuss Broks <markuss.broks@gmail.com>
-
-[ Upstream commit 283844c35529300c8e10f7a263e35e3c5d3580ac ]
-
-MSI Bravo 17 (D7VEK), like other laptops from the family,
-has broken ACPI tables and needs a quirk for internal mic
-to work.
-
-Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
-Link: https://patch.msgid.link/20240829130313.338508-1-markuss.broks@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/amd/yc/acp6x-mach.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c
-index f6c1dbd0ebcf5..248e3bcbf386b 100644
---- a/sound/soc/amd/yc/acp6x-mach.c
-+++ b/sound/soc/amd/yc/acp6x-mach.c
-@@ -353,6 +353,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
- DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 15 C7VF"),
- }
- },
-+ {
-+ .driver_data = &acp6x_card,
-+ .matches = {
-+ DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
-+ DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 17 D7VEK"),
-+ }
-+ },
- {
- .driver_data = &acp6x_card,
- .matches = {
---
-2.43.0
-
+++ /dev/null
-From fbae2702c58d722a4470d2011dc0a6022d56d4eb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:24 +0000
-Subject: ASoC: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 6ba20539ac6b12ea757b3bfe11adf8de1672d7b8 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-5-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/chv3-codec.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/chv3-codec.c b/sound/soc/codecs/chv3-codec.c
-index ab99effa68748..40020500b1fe8 100644
---- a/sound/soc/codecs/chv3-codec.c
-+++ b/sound/soc/codecs/chv3-codec.c
-@@ -26,6 +26,7 @@ static const struct of_device_id chv3_codec_of_match[] = {
- { .compatible = "google,chv3-codec", },
- { }
- };
-+MODULE_DEVICE_TABLE(of, chv3_codec_of_match);
-
- static struct platform_driver chv3_codec_platform_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From e5c682e209e52ca5c1496482e8d43428550d2b54 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:22 +0000
-Subject: ASoC: google: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 8e1bb4a41aa78d6105e59186af3dcd545fc66e70 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-3-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/google/chv3-i2s.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/google/chv3-i2s.c b/sound/soc/google/chv3-i2s.c
-index 08e558f24af86..0ff24653d49f4 100644
---- a/sound/soc/google/chv3-i2s.c
-+++ b/sound/soc/google/chv3-i2s.c
-@@ -322,6 +322,7 @@ static const struct of_device_id chv3_i2s_of_match[] = {
- { .compatible = "google,chv3-i2s" },
- {},
- };
-+MODULE_DEVICE_TABLE(of, chv3_i2s_of_match);
-
- static struct platform_driver chv3_i2s_driver = {
- .probe = chv3_i2s_probe,
---
-2.43.0
-
+++ /dev/null
-From 2c4b2498ba00646303be06af47dfd60cde4f892a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:21 +0000
-Subject: ASoC: intel: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit ae61a3391088d29aa8605c9f2db84295ab993a49 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-2-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/keembay/kmb_platform.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/intel/keembay/kmb_platform.c b/sound/soc/intel/keembay/kmb_platform.c
-index 37ea2e1d2e922..aa5de167e7909 100644
---- a/sound/soc/intel/keembay/kmb_platform.c
-+++ b/sound/soc/intel/keembay/kmb_platform.c
-@@ -814,6 +814,7 @@ static const struct of_device_id kmb_plat_of_match[] = {
- { .compatible = "intel,keembay-tdm", .data = &intel_kmb_tdm_dai},
- {}
- };
-+MODULE_DEVICE_TABLE(of, kmb_plat_of_match);
-
- static int kmb_plat_dai_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From 675ed7b6440e1f620c8296e4810b1a61d6eba5a9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 23 Aug 2024 09:43:05 +0200
-Subject: ASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less
- strict
-
-From: Hans de Goede <hdegoede@redhat.com>
-
-[ Upstream commit 839a4ec06f75cec8fec2cc5fc14e921d0c3f7369 ]
-
-There are 2G and 4G RAM versions of the Lenovo Yoga Tab 3 X90F and it
-turns out that the 2G version has a DMI product name of
-"CHERRYVIEW D1 PLATFORM" where as the 4G version has
-"CHERRYVIEW C0 PLATFORM". The sys-vendor + product-version check are
-unique enough that the product-name check is not necessary.
-
-Drop the product-name check so that the existing DMI match for the 4G
-RAM version also matches the 2G RAM version.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
-Link: https://patch.msgid.link/20240823074305.16873-1-hdegoede@redhat.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/common/soc-acpi-intel-cht-match.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-index 5e2ec60e2954b..e4c3492a0c282 100644
---- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-@@ -84,7 +84,6 @@ static const struct dmi_system_id lenovo_yoga_tab3_x90[] = {
- /* Lenovo Yoga Tab 3 Pro YT3-X90, codec missing from DSDT */
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
- DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
- },
- },
---
-2.43.0
-
+++ /dev/null
-From 5708a0ca4bcf2d12db501092f70ea53a2566c381 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 1 Aug 2024 16:43:26 +0800
-Subject: ASoC: mediatek: mt8188: Mark AFE_DAC_CON0 register as volatile
-
-From: YR Yang <yr.yang@mediatek.com>
-
-[ Upstream commit ff9f065318e17a1a97981d9e535fcfc6ce5d5614 ]
-
-Add AFE Control Register 0 to the volatile_register.
-AFE_DAC_CON0 can be modified by both the SOF and ALSA drivers.
-If this register is read and written in cache mode, the cached value
-might not reflect the actual value when the register is modified by
-another driver. It can cause playback or capture failures. Therefore,
-it is necessary to add AFE_DAC_CON0 to the list of volatile registers.
-
-Signed-off-by: YR Yang <yr.yang@mediatek.com>
-Reviewed-by: Fei Shao <fshao@chromium.org>
-Reviewed-by: Trevor Wu <trevor.wu@mediatek.com>
-Link: https://patch.msgid.link/20240801084326.1472-1-yr.yang@mediatek.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/mediatek/mt8188/mt8188-afe-pcm.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c b/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c
-index ccb6c1f3adc7d..73e5c63aeec87 100644
---- a/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c
-+++ b/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c
-@@ -2748,6 +2748,7 @@ static bool mt8188_is_volatile_reg(struct device *dev, unsigned int reg)
- case AFE_ASRC12_NEW_CON9:
- case AFE_LRCK_CNT:
- case AFE_DAC_MON0:
-+ case AFE_DAC_CON0:
- case AFE_DL2_CUR:
- case AFE_DL3_CUR:
- case AFE_DL6_CUR:
---
-2.43.0
-
+++ /dev/null
-From f50daf4a265e5683e6781a7678414378c8e1ef6e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 16 Aug 2024 19:49:21 +0800
-Subject: ASoC: mediatek: mt8188-mt6359: Modify key
-
-From: Zhang Yi <zhangyi@everest-semi.com>
-
-[ Upstream commit 5325b96769a5b282e330023e1d0881018e89e266 ]
-
-In order to get the correct keys when using the ES8326.We will associate
-SND_JACK_BTN_1 to KEY_VOLUMEUP and SND_JACK_BTN_2 to KEY_VOLUMEDOWN
-when the ES8326 flag is recognized.
-
-Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
-Link: https://patch.msgid.link/20240816114921.48913-1-zhangyi@everest-semi.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/mediatek/mt8188/mt8188-mt6359.c | 17 +++++++++++++----
- 1 file changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/sound/soc/mediatek/mt8188/mt8188-mt6359.c b/sound/soc/mediatek/mt8188/mt8188-mt6359.c
-index eba6f4c445ffb..08ae962afeb92 100644
---- a/sound/soc/mediatek/mt8188/mt8188-mt6359.c
-+++ b/sound/soc/mediatek/mt8188/mt8188-mt6359.c
-@@ -734,6 +734,7 @@ static int mt8188_headset_codec_init(struct snd_soc_pcm_runtime *rtd)
- struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(rtd->card);
- struct snd_soc_jack *jack = &soc_card_data->card_data->jacks[MT8188_JACK_HEADSET];
- struct snd_soc_component *component = snd_soc_rtd_to_codec(rtd, 0)->component;
-+ struct mtk_platform_card_data *card_data = soc_card_data->card_data;
- int ret;
-
- ret = snd_soc_dapm_new_controls(&card->dapm, mt8188_nau8825_widgets,
-@@ -762,10 +763,18 @@ static int mt8188_headset_codec_init(struct snd_soc_pcm_runtime *rtd)
- return ret;
- }
-
-- snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
-- snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
-- snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
-- snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
-+ if (card_data->flags & ES8326_HS_PRESENT) {
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP);
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN);
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);
-+ } else {
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
-+ snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
-+ }
-+
- ret = snd_soc_component_set_jack(component, jack, NULL);
-
- if (ret) {
---
-2.43.0
-
+++ /dev/null
-From d4781e01cea4eb0e11c212f934c0a4d2f7788c0b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 9 Aug 2024 13:56:27 +0000
-Subject: ASoC: SOF: mediatek: Add missing board compatible
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Albert Jakieła <jakiela@google.com>
-
-[ Upstream commit c0196faaa927321a63e680427e075734ee656e42 ]
-
-Add Google Dojo compatible.
-
-Signed-off-by: Albert Jakieła <jakiela@google.com>
-Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
-Link: https://patch.msgid.link/20240809135627.544429-1-jakiela@google.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/sof/mediatek/mt8195/mt8195.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sound/soc/sof/mediatek/mt8195/mt8195.c b/sound/soc/sof/mediatek/mt8195/mt8195.c
-index 8d3fc167cd810..b9d4508bbb85d 100644
---- a/sound/soc/sof/mediatek/mt8195/mt8195.c
-+++ b/sound/soc/sof/mediatek/mt8195/mt8195.c
-@@ -574,6 +574,9 @@ static struct snd_sof_of_mach sof_mt8195_machs[] = {
- {
- .compatible = "google,tomato",
- .sof_tplg_filename = "sof-mt8195-mt6359-rt1019-rt5682.tplg"
-+ }, {
-+ .compatible = "google,dojo",
-+ .sof_tplg_filename = "sof-mt8195-mt6359-max98390-rt5682.tplg"
- }, {
- .compatible = "mediatek,mt8195",
- .sof_tplg_filename = "sof-mt8195.tplg"
---
-2.43.0
-
+++ /dev/null
-From 80072dd8af6e75fb831cec4eb3e8d871db6a6731 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index 386b99c8023bd..7d6fcba9986ea 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -623,6 +623,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From 1a7c96d62b20e82847ae45144d1d3162c1b7c1c6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 5 Aug 2024 20:30:47 +0200
-Subject: can: m_can: Limit coalescing to peripheral instances
-
-From: Markus Schneider-Pargmann <msp@baylibre.com>
-
-[ Upstream commit e443d15b949952ee039b731d5c35bcbafa300024 ]
-
-The use of coalescing for non-peripheral chips in the current
-implementation is limited to non-existing. Disable the possibility to
-set coalescing through ethtool.
-
-Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
-Link: https://lore.kernel.org/all/20240805183047.305630-8-msp@baylibre.com
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/can/m_can/m_can.c | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
-index e4f0a382c2165..ddde067f593fc 100644
---- a/drivers/net/can/m_can/m_can.c
-+++ b/drivers/net/can/m_can/m_can.c
-@@ -2141,7 +2141,7 @@ static int m_can_set_coalesce(struct net_device *dev,
- return 0;
- }
-
--static const struct ethtool_ops m_can_ethtool_ops = {
-+static const struct ethtool_ops m_can_ethtool_ops_coalescing = {
- .supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS_IRQ |
- ETHTOOL_COALESCE_RX_MAX_FRAMES_IRQ |
- ETHTOOL_COALESCE_TX_USECS_IRQ |
-@@ -2152,18 +2152,20 @@ static const struct ethtool_ops m_can_ethtool_ops = {
- .set_coalesce = m_can_set_coalesce,
- };
-
--static const struct ethtool_ops m_can_ethtool_ops_polling = {
-+static const struct ethtool_ops m_can_ethtool_ops = {
- .get_ts_info = ethtool_op_get_ts_info,
- };
-
--static int register_m_can_dev(struct net_device *dev)
-+static int register_m_can_dev(struct m_can_classdev *cdev)
- {
-+ struct net_device *dev = cdev->net;
-+
- dev->flags |= IFF_ECHO; /* we support local echo */
- dev->netdev_ops = &m_can_netdev_ops;
-- if (dev->irq)
-- dev->ethtool_ops = &m_can_ethtool_ops;
-+ if (dev->irq && cdev->is_peripheral)
-+ dev->ethtool_ops = &m_can_ethtool_ops_coalescing;
- else
-- dev->ethtool_ops = &m_can_ethtool_ops_polling;
-+ dev->ethtool_ops = &m_can_ethtool_ops;
-
- return register_candev(dev);
- }
-@@ -2349,7 +2351,7 @@ int m_can_class_register(struct m_can_classdev *cdev)
- if (ret)
- goto rx_offload_del;
-
-- ret = register_m_can_dev(cdev->net);
-+ ret = register_m_can_dev(cdev);
- if (ret) {
- dev_err(cdev->dev, "registering %s failed (err=%d)\n",
- cdev->net->name, ret);
---
-2.43.0
-
+++ /dev/null
-From e2d85ed26ff4e79d375c9533401babbbbf04fda6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 5 Jul 2024 17:24:42 +0200
-Subject: can: mcp251xfd: mcp251xfd_ring_init(): check TX-coalescing
- configuration
-
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-
-[ Upstream commit ac2b81eb8b2d104033560daea886ee84531e3d0a ]
-
-When changing the interface from CAN-CC to CAN-FD mode the old
-coalescing parameters are re-used. This might cause problem, as the
-configured parameters are too big for CAN-FD mode.
-
-During testing an invalid TX coalescing configuration has been seen.
-The problem should be been fixed in the previous patch, but add a
-safeguard here to ensure that the number of TEF coalescing buffers (if
-configured) is exactly the half of all TEF buffers.
-
-Link: https://lore.kernel.org/all/20240805-mcp251xfd-fix-ringconfig-v1-2-72086f0ca5ee@pengutronix.de
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c | 14 +++++++++++---
- 1 file changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-index f72582d4d3e8e..83c18035b2a24 100644
---- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-@@ -290,7 +290,7 @@ int mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
- const struct mcp251xfd_rx_ring *rx_ring;
- u16 base = 0, ram_used;
- u8 fifo_nr = 1;
-- int i;
-+ int err = 0, i;
-
- netdev_reset_queue(priv->ndev);
-
-@@ -386,10 +386,18 @@ int mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
- netdev_err(priv->ndev,
- "Error during ring configuration, using more RAM (%u bytes) than available (%u bytes).\n",
- ram_used, MCP251XFD_RAM_SIZE);
-- return -ENOMEM;
-+ err = -ENOMEM;
- }
-
-- return 0;
-+ if (priv->tx_obj_num_coalesce_irq &&
-+ priv->tx_obj_num_coalesce_irq * 2 != priv->tx->obj_num) {
-+ netdev_err(priv->ndev,
-+ "Error during ring configuration, number of TEF coalescing buffers (%u) must be half of TEF buffers (%u).\n",
-+ priv->tx_obj_num_coalesce_irq, priv->tx->obj_num);
-+ err = -EINVAL;
-+ }
-+
-+ return err;
- }
-
- void mcp251xfd_ring_free(struct mcp251xfd_priv *priv)
---
-2.43.0
-
+++ /dev/null
-From 8989566613c3a94c15475f5e60947b7c7364b8a6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 29 Aug 2024 10:44:30 +0200
-Subject: clk: qcom: gcc-sm8650: Don't use shared clk_ops for QUPs
-
-From: Neil Armstrong <neil.armstrong@linaro.org>
-
-[ Upstream commit aa2eb2c4356affa2799efd95a4ee2d239ca630f8 ]
-
-The QUPs aren't shared in a way that requires parking the RCG at an
-always on parent in case some other entity turns on the clk. The
-hardware is capable of setting a new frequency itself with the DFS mode,
-so parking is unnecessary. Furthermore, there aren't any GDSCs for these
-devices, so there isn't a possibility of the GDSC turning on the clks
-for housekeeping purposes.
-
-Like for the SM8550 GCC QUP clocks at [1], do not use shared clk_ops for QUPs.
-
-[1] https://lore.kernel.org/all/20240827231237.1014813-3-swboyd@chromium.org/
-
-Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
-Link: https://lore.kernel.org/r/20240829-topic-sm8650-upstream-fix-qup-clk-rcg-shared-v1-1-7ecdbc672187@linaro.org
-Signed-off-by: Stephen Boyd <sboyd@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/clk/qcom/gcc-sm8650.c | 56 +++++++++++++++++------------------
- 1 file changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/clk/qcom/gcc-sm8650.c b/drivers/clk/qcom/gcc-sm8650.c
-index 9d1cbdf860fb3..10834c3141d07 100644
---- a/drivers/clk/qcom/gcc-sm8650.c
-+++ b/drivers/clk/qcom/gcc-sm8650.c
-@@ -713,7 +713,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s0_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -728,7 +728,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s1_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -743,7 +743,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s2_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -758,7 +758,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s3_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -773,7 +773,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s4_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -788,7 +788,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s5_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -803,7 +803,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s6_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -818,7 +818,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s7_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -833,7 +833,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s8_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -848,7 +848,7 @@ static struct clk_rcg2 gcc_qupv3_i2c_s9_clk_src = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -863,7 +863,7 @@ static struct clk_init_data gcc_qupv3_wrap1_qspi_ref_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_qspi_ref_clk_src = {
-@@ -899,7 +899,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s0_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s0_clk_src = {
-@@ -916,7 +916,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s1_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s1_clk_src = {
-@@ -948,7 +948,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s3_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s3_clk_src = {
-@@ -980,7 +980,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s4_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s4_clk_src = {
-@@ -997,7 +997,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s5_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s5_clk_src = {
-@@ -1014,7 +1014,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s6_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s6_clk_src = {
-@@ -1031,7 +1031,7 @@ static struct clk_init_data gcc_qupv3_wrap1_s7_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap1_s7_clk_src = {
-@@ -1059,7 +1059,7 @@ static struct clk_rcg2 gcc_qupv3_wrap2_ibi_ctrl_0_clk_src = {
- .parent_data = gcc_parent_data_2,
- .num_parents = ARRAY_SIZE(gcc_parent_data_2),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- },
- };
-
-@@ -1068,7 +1068,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s0_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s0_clk_src = {
-@@ -1085,7 +1085,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s1_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s1_clk_src = {
-@@ -1102,7 +1102,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s2_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s2_clk_src = {
-@@ -1119,7 +1119,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s3_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s3_clk_src = {
-@@ -1136,7 +1136,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s4_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s4_clk_src = {
-@@ -1153,7 +1153,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s5_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s5_clk_src = {
-@@ -1186,7 +1186,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s6_clk_src_init = {
- .parent_data = gcc_parent_data_10,
- .num_parents = ARRAY_SIZE(gcc_parent_data_10),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s6_clk_src = {
-@@ -1203,7 +1203,7 @@ static struct clk_init_data gcc_qupv3_wrap2_s7_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap2_s7_clk_src = {
-@@ -1226,7 +1226,7 @@ static struct clk_init_data gcc_qupv3_wrap3_qspi_ref_clk_src_init = {
- .parent_data = gcc_parent_data_0,
- .num_parents = ARRAY_SIZE(gcc_parent_data_0),
- .flags = CLK_SET_RATE_PARENT,
-- .ops = &clk_rcg2_shared_ops,
-+ .ops = &clk_rcg2_ops,
- };
-
- static struct clk_rcg2 gcc_qupv3_wrap3_qspi_ref_clk_src = {
---
-2.43.0
-
+++ /dev/null
-From 7febeea2d3553427b7cd392bbde85bdbec717c61 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 6 Sep 2024 20:46:54 +0800
-Subject: drm/amd/pm: fix the pp_dpm_pcie issue on smu v14.0.2/3
-
-From: Kenneth Feng <kenneth.feng@amd.com>
-
-[ Upstream commit 7a0982523cf3ff00f35b210fc3405c528a2ce7af ]
-
-fix the pp_dpm_pcie issue on smu v14.0.2/3 as below:
-0: 2.5GT/s, x4 250Mhz
-1: 8.0GT/s, x4 616Mhz *
-2: 8.0GT/s, x4 1143Mhz *
-the middle level can be removed since it is always skipped on
-smu v14.0.2/3
-
-Signed-off-by: Kenneth Feng <kenneth.feng@amd.com>
-Acked-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-(cherry picked from commit fedf6db3ea9dc5eda0b78cfbbb8f7a88b97e5b24)
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
-index 06b65159f7b4a..33c7740dd50a7 100644
---- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
-+++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c
-@@ -672,6 +672,9 @@ static int smu_v14_0_2_set_default_dpm_table(struct smu_context *smu)
- pcie_table->clk_freq[pcie_table->num_of_link_levels] =
- skutable->LclkFreq[link_level];
- pcie_table->num_of_link_levels++;
-+
-+ if (link_level == 0)
-+ link_level++;
- }
-
- return 0;
---
-2.43.0
-
+++ /dev/null
-From e5660a9e4842b2a519df446f0a46ede9005b8e8b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 10:45:17 +0800
-Subject: drm: komeda: Fix an issue related to normalized zpos
-
-From: hongchi.peng <hongchi.peng@siengine.com>
-
-[ Upstream commit 258905cb9a6414be5c9ca4aa20ef855f8dc894d4 ]
-
-We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
-to their blending zorder in CU. If there's only one slave plane in
-affected planes and its layer_split property is enabled, order++ for
-its split layer, so that when calculating the normalized_zpos
-of master planes, the split layer of the slave plane is included, but
-the max_slave_zorder does not include the split layer and keep zero
-because there's only one slave plane in affacted planes, although we
-actually use two slave layers in this commit.
-
-In most cases, this bug does not result in a commit failure, but assume
-the following situation:
- slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
- 0;(use slave_layer 2 as its split layer)
- master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
- 2;(use master_layer 2 as its split layer)
- master_layer 1: zpos = 4, normalized_zpos = 4;
- master_layer 3: zpos = 5, normalized_zpos = 5;
- kcrtc_st->max_slave_zorder = 0;
-When we use master_layer 3 as a input of CU in function
-komeda_compiz_set_input and check it with function
-komeda_component_check_input, the parameter idx is equal to
-normailzed_zpos minus max_slave_zorder, the value of idx is 5
-and is euqal to CU's max_active_inputs, so that
-komeda_component_check_input returns a -EINVAL value.
-
-To fix the bug described above, when calculating the max_slave_zorder
-with the layer_split enabled, count the split layer in this calculation
-directly.
-
-Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
-Acked-by: Liviu Dudau <liviu.dudau@arm.com>
-Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-index fe46b0ebefea3..e5eb5d672bcd7 100644
---- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-@@ -160,6 +160,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- struct drm_plane *plane;
- struct list_head zorder_list;
- int order = 0, err;
-+ u32 slave_zpos = 0;
-
- DRM_DEBUG_ATOMIC("[CRTC:%d:%s] calculating normalized zpos values\n",
- crtc->base.id, crtc->name);
-@@ -199,10 +200,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- plane_st->zpos, plane_st->normalized_zpos);
-
- /* calculate max slave zorder */
-- if (has_bit(drm_plane_index(plane), kcrtc->slave_planes))
-+ if (has_bit(drm_plane_index(plane), kcrtc->slave_planes)) {
-+ slave_zpos = plane_st->normalized_zpos;
-+ if (to_kplane_st(plane_st)->layer_split)
-+ slave_zpos++;
- kcrtc_st->max_slave_zorder =
-- max(plane_st->normalized_zpos,
-- kcrtc_st->max_slave_zorder);
-+ max(slave_zpos, kcrtc_st->max_slave_zorder);
-+ }
- }
-
- crtc_st->zpos_changed = true;
---
-2.43.0
-
+++ /dev/null
-From c5d0c155c73c6664001816537619dbe60b367a0c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Jul 2024 08:21:42 +0200
-Subject: hwmon: (asus-ec-sensors) remove VRM temp X570-E GAMING
-
-From: Ross Brown <true.robot.ross@gmail.com>
-
-[ Upstream commit 9efaebc0072b8e95505544bf385c20ee8a29d799 ]
-
-X570-E GAMING does not have VRM temperature sensor.
-
-Signed-off-by: Ross Brown <true.robot.ross@gmail.com>
-Signed-off-by: Eugene Shalygin <eugene.shalygin@gmail.com>
-Link: https://lore.kernel.org/r/20240730062320.5188-2-eugene.shalygin@gmail.com
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hwmon/asus-ec-sensors.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/asus-ec-sensors.c b/drivers/hwmon/asus-ec-sensors.c
-index 36f9e38000d5e..3b3b8beed83a5 100644
---- a/drivers/hwmon/asus-ec-sensors.c
-+++ b/drivers/hwmon/asus-ec-sensors.c
-@@ -412,7 +412,7 @@ static const struct ec_board_info board_info_strix_b550_i_gaming = {
-
- static const struct ec_board_info board_info_strix_x570_e_gaming = {
- .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB |
-- SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM |
-+ SENSOR_TEMP_T_SENSOR |
- SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU |
- SENSOR_IN_CPU_CORE,
- .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX,
---
-2.43.0
-
+++ /dev/null
-From 82bd83f1e3868ae670f2143f4c58284b1b9d7d92 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 23 Aug 2024 11:59:28 +0200
-Subject: ice: check for XDP rings instead of bpf program when unconfiguring
-
-From: Larysa Zaremba <larysa.zaremba@intel.com>
-
-[ Upstream commit f50c68763436bc8f805712a7c5ceaf58cfcf5f07 ]
-
-If VSI rebuild is pending, .ndo_bpf() can attach/detach the XDP program on
-VSI without applying new ring configuration. When unconfiguring the VSI, we
-can encounter the state in which there is an XDP program but no XDP rings
-to destroy or there will be XDP rings that need to be destroyed, but no XDP
-program to indicate their presence.
-
-When unconfiguring, rely on the presence of XDP rings rather then XDP
-program, as they better represent the current state that has to be
-destroyed.
-
-Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
-Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
-Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com>
-Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
-Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
-Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
- drivers/net/ethernet/intel/ice/ice_main.c | 4 ++--
- drivers/net/ethernet/intel/ice/ice_xsk.c | 6 +++---
- 3 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
-index c2ba586593475..a3ee7697edb56 100644
---- a/drivers/net/ethernet/intel/ice/ice_lib.c
-+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
-@@ -2419,7 +2419,7 @@ void ice_vsi_decfg(struct ice_vsi *vsi)
- dev_err(ice_pf_to_dev(pf), "Failed to remove RDMA scheduler config for VSI %u, err %d\n",
- vsi->vsi_num, err);
-
-- if (ice_is_xdp_ena_vsi(vsi))
-+ if (vsi->xdp_rings)
- /* return value check can be skipped here, it always returns
- * 0 if reset is in progress
- */
-@@ -2521,7 +2521,7 @@ static void ice_vsi_release_msix(struct ice_vsi *vsi)
- for (q = 0; q < q_vector->num_ring_tx; q++) {
- ice_write_itr(&q_vector->tx, 0);
- wr32(hw, QINT_TQCTL(vsi->txq_map[txq]), 0);
-- if (ice_is_xdp_ena_vsi(vsi)) {
-+ if (vsi->xdp_rings) {
- u32 xdp_txq = txq + vsi->num_xdp_txq;
-
- wr32(hw, QINT_TQCTL(vsi->txq_map[xdp_txq]), 0);
-diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
-index 766f9a466bc35..c82715eb5b93c 100644
---- a/drivers/net/ethernet/intel/ice/ice_main.c
-+++ b/drivers/net/ethernet/intel/ice/ice_main.c
-@@ -7253,7 +7253,7 @@ int ice_down(struct ice_vsi *vsi)
- if (tx_err)
- netdev_err(vsi->netdev, "Failed stop Tx rings, VSI %d error %d\n",
- vsi->vsi_num, tx_err);
-- if (!tx_err && ice_is_xdp_ena_vsi(vsi)) {
-+ if (!tx_err && vsi->xdp_rings) {
- tx_err = ice_vsi_stop_xdp_tx_rings(vsi);
- if (tx_err)
- netdev_err(vsi->netdev, "Failed stop XDP rings, VSI %d error %d\n",
-@@ -7270,7 +7270,7 @@ int ice_down(struct ice_vsi *vsi)
- ice_for_each_txq(vsi, i)
- ice_clean_tx_ring(vsi->tx_rings[i]);
-
-- if (ice_is_xdp_ena_vsi(vsi))
-+ if (vsi->xdp_rings)
- ice_for_each_xdp_txq(vsi, i)
- ice_clean_tx_ring(vsi->xdp_rings[i]);
-
-diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c
-index 87a5427570d76..5dee829bfc47c 100644
---- a/drivers/net/ethernet/intel/ice/ice_xsk.c
-+++ b/drivers/net/ethernet/intel/ice/ice_xsk.c
-@@ -39,7 +39,7 @@ static void ice_qp_reset_stats(struct ice_vsi *vsi, u16 q_idx)
- sizeof(vsi_stat->rx_ring_stats[q_idx]->rx_stats));
- memset(&vsi_stat->tx_ring_stats[q_idx]->stats, 0,
- sizeof(vsi_stat->tx_ring_stats[q_idx]->stats));
-- if (ice_is_xdp_ena_vsi(vsi))
-+ if (vsi->xdp_rings)
- memset(&vsi->xdp_rings[q_idx]->ring_stats->stats, 0,
- sizeof(vsi->xdp_rings[q_idx]->ring_stats->stats));
- }
-@@ -52,7 +52,7 @@ static void ice_qp_reset_stats(struct ice_vsi *vsi, u16 q_idx)
- static void ice_qp_clean_rings(struct ice_vsi *vsi, u16 q_idx)
- {
- ice_clean_tx_ring(vsi->tx_rings[q_idx]);
-- if (ice_is_xdp_ena_vsi(vsi))
-+ if (vsi->xdp_rings)
- ice_clean_tx_ring(vsi->xdp_rings[q_idx]);
- ice_clean_rx_ring(vsi->rx_rings[q_idx]);
- }
-@@ -186,7 +186,7 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx)
- err = ice_vsi_stop_tx_ring(vsi, ICE_NO_RESET, 0, tx_ring, &txq_meta);
- if (!fail)
- fail = err;
-- if (ice_is_xdp_ena_vsi(vsi)) {
-+ if (vsi->xdp_rings) {
- struct ice_tx_ring *xdp_ring = vsi->xdp_rings[q_idx];
-
- memset(&txq_meta, 0, sizeof(txq_meta));
---
-2.43.0
-
+++ /dev/null
-From 95e3d584a0a50f35bf2f9bb5b05ee0caf25fe83e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 23:11:32 +0800
-Subject: LoongArch: Define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE
-
-From: Huacai Chen <chenhuacai@loongson.cn>
-
-[ Upstream commit 274ea3563e5ab9f468c15bfb9d2492803a66d9be ]
-
-Currently we call irq_set_noprobe() in a loop for all IRQs, but indeed
-it only works for IRQs below NR_IRQS_LEGACY because at init_IRQ() only
-legacy interrupts have been allocated.
-
-Instead, we can define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE in asm/hwirq.h
-and the core will automatically set the flag for all interrupts.
-
-Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
-Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/loongarch/include/asm/hw_irq.h | 2 ++
- arch/loongarch/kernel/irq.c | 3 ---
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/arch/loongarch/include/asm/hw_irq.h b/arch/loongarch/include/asm/hw_irq.h
-index af4f4e8fbd858..8156ffb674159 100644
---- a/arch/loongarch/include/asm/hw_irq.h
-+++ b/arch/loongarch/include/asm/hw_irq.h
-@@ -9,6 +9,8 @@
-
- extern atomic_t irq_err_count;
-
-+#define ARCH_IRQ_INIT_FLAGS IRQ_NOPROBE
-+
- /*
- * interrupt-retrigger: NOP for now. This may not be appropriate for all
- * machines, we'll see ...
-diff --git a/arch/loongarch/kernel/irq.c b/arch/loongarch/kernel/irq.c
-index f4991c03514f4..adac8fcbb2aca 100644
---- a/arch/loongarch/kernel/irq.c
-+++ b/arch/loongarch/kernel/irq.c
-@@ -102,9 +102,6 @@ void __init init_IRQ(void)
- mp_ops.init_ipi();
- #endif
-
-- for (i = 0; i < NR_IRQS; i++)
-- irq_set_noprobe(i);
--
- for_each_possible_cpu(i) {
- page = alloc_pages_node(cpu_to_node(i), GFP_KERNEL, order);
-
---
-2.43.0
-
+++ /dev/null
-From 09a6a503b8c8724ca718d224aade078ffdb771f8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 23:11:32 +0800
-Subject: LoongArch: KVM: Invalidate guest steal time address on vCPU reset
-
-From: Bibo Mao <maobibo@loongson.cn>
-
-[ Upstream commit 4956e07f05e239b274d042618a250c9fa3e92629 ]
-
-If ParaVirt steal time feature is enabled, there is a percpu gpa address
-passed from guest vCPU and host modifies guest memory space with this gpa
-address. When vCPU is reset normally, it will notify host and invalidate
-gpa address.
-
-However if VM is crashed and VMM reboots VM forcely, the vCPU reboot
-notification callback will not be called in VM. Host needs invalidate
-the gpa address, else host will modify guest memory during VM reboots.
-Here it is invalidated from the vCPU KVM_REG_LOONGARCH_VCPU_RESET ioctl
-interface.
-
-Also funciton kvm_reset_timer() is removed at vCPU reset stage, since SW
-emulated timer is only used in vCPU block state. When a vCPU is removed
-from the block waiting queue, kvm_restore_timer() is called and SW timer
-is cancelled. And the timer register is also cleared at VMM when a vCPU
-is reset.
-
-Signed-off-by: Bibo Mao <maobibo@loongson.cn>
-Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/loongarch/include/asm/kvm_vcpu.h | 1 -
- arch/loongarch/kvm/timer.c | 7 -------
- arch/loongarch/kvm/vcpu.c | 2 +-
- 3 files changed, 1 insertion(+), 9 deletions(-)
-
-diff --git a/arch/loongarch/include/asm/kvm_vcpu.h b/arch/loongarch/include/asm/kvm_vcpu.h
-index 590a92cb54165..d741c3e9933a5 100644
---- a/arch/loongarch/include/asm/kvm_vcpu.h
-+++ b/arch/loongarch/include/asm/kvm_vcpu.h
-@@ -76,7 +76,6 @@ static inline void kvm_restore_lasx(struct loongarch_fpu *fpu) { }
- #endif
-
- void kvm_init_timer(struct kvm_vcpu *vcpu, unsigned long hz);
--void kvm_reset_timer(struct kvm_vcpu *vcpu);
- void kvm_save_timer(struct kvm_vcpu *vcpu);
- void kvm_restore_timer(struct kvm_vcpu *vcpu);
-
-diff --git a/arch/loongarch/kvm/timer.c b/arch/loongarch/kvm/timer.c
-index bcc6b6d063d91..74a4b5c272d60 100644
---- a/arch/loongarch/kvm/timer.c
-+++ b/arch/loongarch/kvm/timer.c
-@@ -188,10 +188,3 @@ void kvm_save_timer(struct kvm_vcpu *vcpu)
- kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ESTAT);
- preempt_enable();
- }
--
--void kvm_reset_timer(struct kvm_vcpu *vcpu)
--{
-- write_gcsr_timercfg(0);
-- kvm_write_sw_gcsr(vcpu->arch.csr, LOONGARCH_CSR_TCFG, 0);
-- hrtimer_cancel(&vcpu->arch.swtimer);
--}
-diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c
-index 9e8030d451290..0b53f4d9fddf9 100644
---- a/arch/loongarch/kvm/vcpu.c
-+++ b/arch/loongarch/kvm/vcpu.c
-@@ -572,7 +572,7 @@ static int kvm_set_one_reg(struct kvm_vcpu *vcpu,
- vcpu->kvm->arch.time_offset = (signed long)(v - drdtime());
- break;
- case KVM_REG_LOONGARCH_VCPU_RESET:
-- kvm_reset_timer(vcpu);
-+ vcpu->arch.st.guest_addr = 0;
- memset(&vcpu->arch.irq_pending, 0, sizeof(vcpu->arch.irq_pending));
- memset(&vcpu->arch.irq_clear, 0, sizeof(vcpu->arch.irq_clear));
- break;
---
-2.43.0
-
+++ /dev/null
-From 265ff853dcc42c07ee2d4f28c5d88550092b9454 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index 3827dc76edd82..4520c57415797 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -193,11 +193,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From 9a398f5bd0cd34fcf4d4d224ffc0c35a2a1f3236 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index fddfd1dd50709..4c546c3aef0fe 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -572,7 +572,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -656,6 +656,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -809,6 +814,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -829,7 +839,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -851,7 +861,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1344,7 +1354,7 @@ static void ftgmac100_reset(struct ftgmac100 *priv)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1543,15 +1553,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From cf87643ca3c043e03b2057ce706a6c6633ae594c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 3b81213ed7b85..8aea94c907397 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1062,7 +1062,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1076,6 +1076,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1166,7 +1170,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2698,7 +2702,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2833,7 +2837,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From 92c47d6334f7f8950a1992499a55e38707532b3f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index 8aea94c907397..35c0cc2a51af8 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1068,7 +1068,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1083,10 +1083,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From c3257838a4191a80725afee7cc9f4f35933f8c0d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index 5aa9d5c533c6a..d7b66928a4e50 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1409,8 +1409,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
+++ /dev/null
-From bc1545f3054738fb6d744d1a75cd668bb9766175 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 12:39:05 +1200
-Subject: platform/x86/amd: pmf: Make ASUS GA403 quirk generic
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Luke D. Jones <luke@ljones.dev>
-
-[ Upstream commit d34af755a533271f39cc7d86e49c0e74fde63a37 ]
-
-The original quirk should match to GA403U so that the full
-range of GA403U models can benefit.
-
-Signed-off-by: Luke D. Jones <luke@ljones.dev>
-Link: https://lore.kernel.org/r/20240831003905.1060977-1-luke@ljones.dev
-Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/amd/pmf/pmf-quirks.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/platform/x86/amd/pmf/pmf-quirks.c b/drivers/platform/x86/amd/pmf/pmf-quirks.c
-index 460444cda1b29..48870ca52b413 100644
---- a/drivers/platform/x86/amd/pmf/pmf-quirks.c
-+++ b/drivers/platform/x86/amd/pmf/pmf-quirks.c
-@@ -25,7 +25,7 @@ static const struct dmi_system_id fwbug_list[] = {
- .ident = "ROG Zephyrus G14",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-- DMI_MATCH(DMI_PRODUCT_NAME, "GA403UV"),
-+ DMI_MATCH(DMI_PRODUCT_NAME, "GA403U"),
- },
- .driver_data = &quirk_no_sps_bug,
- },
---
-2.43.0
-
+++ /dev/null
-From 3b184317df6cdb6854ddf4bdf2cb526516f215d9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 23 Aug 2024 15:56:28 +0200
-Subject: platform/x86: asus-wmi: Fix spurious rfkill on UX8406MA
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Mathieu Fenniak <mathieu@fenniak.net>
-
-[ Upstream commit 9286dfd5735b9cceb6a14bdf15e13400ccb60fe7 ]
-
-The Asus Zenbook Duo (UX8406MA) has a keyboard which can be
-placed on the laptop to connect it via USB, or can be removed from the
-laptop to reveal a hidden secondary display in which case the keyboard
-operates via Bluetooth.
-
-When it is placed on the secondary display to connect via USB, it emits
-a keypress for a wireless disable. This causes the rfkill system to be
-activated disconnecting the current wifi connection, which doesn't
-reflect the user's true intention.
-
-Detect this hardware and suppress any wireless switches from the
-keyboard; this keyboard does not have a wireless toggle capability so
-these presses are always spurious.
-
-Signed-off-by: Mathieu Fenniak <mathieu@fenniak.net>
-Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Link: https://lore.kernel.org/r/20240823135630.128447-1-mathieu@fenniak.net
-Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/asus-nb-wmi.c | 20 +++++++++++++++++++-
- drivers/platform/x86/asus-wmi.h | 1 +
- 2 files changed, 20 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
-index fceffe2082ec5..ed3633c5955d9 100644
---- a/drivers/platform/x86/asus-nb-wmi.c
-+++ b/drivers/platform/x86/asus-nb-wmi.c
-@@ -145,6 +145,10 @@ static struct quirk_entry quirk_asus_ignore_fan = {
- .wmi_ignore_fan = true,
- };
-
-+static struct quirk_entry quirk_asus_zenbook_duo_kbd = {
-+ .ignore_key_wlan = true,
-+};
-+
- static int dmi_matched(const struct dmi_system_id *dmi)
- {
- pr_info("Identified laptop model '%s'\n", dmi->ident);
-@@ -516,6 +520,15 @@ static const struct dmi_system_id asus_quirks[] = {
- },
- .driver_data = &quirk_asus_ignore_fan,
- },
-+ {
-+ .callback = dmi_matched,
-+ .ident = "ASUS Zenbook Duo UX8406MA",
-+ .matches = {
-+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-+ DMI_MATCH(DMI_PRODUCT_NAME, "UX8406MA"),
-+ },
-+ .driver_data = &quirk_asus_zenbook_duo_kbd,
-+ },
- {},
- };
-
-@@ -630,7 +643,12 @@ static void asus_nb_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code,
- case 0x32: /* Volume Mute */
- if (atkbd_reports_vol_keys)
- *code = ASUS_WMI_KEY_IGNORE;
--
-+ break;
-+ case 0x5D: /* Wireless console Toggle */
-+ case 0x5E: /* Wireless console Enable */
-+ case 0x5F: /* Wireless console Disable */
-+ if (quirks->ignore_key_wlan)
-+ *code = ASUS_WMI_KEY_IGNORE;
- break;
- }
- }
-diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h
-index cc30f18538472..d02f15fd3482f 100644
---- a/drivers/platform/x86/asus-wmi.h
-+++ b/drivers/platform/x86/asus-wmi.h
-@@ -40,6 +40,7 @@ struct quirk_entry {
- bool wmi_force_als_set;
- bool wmi_ignore_fan;
- bool filter_i8042_e1_extended_codes;
-+ bool ignore_key_wlan;
- enum asus_wmi_tablet_switch_mode tablet_switch_mode;
- int wapf;
- /*
---
-2.43.0
-
+++ /dev/null
-From e7e134cb2659ee909b4dd991add929f7369c18e0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 15:24:15 +0200
-Subject: platform/x86: x86-android-tablets: Make Lenovo Yoga Tab 3 X90F DMI
- match less strict
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Hans de Goede <hdegoede@redhat.com>
-
-[ Upstream commit a3379eca24a7da5118a7d090da6f8eb8611acac8 ]
-
-There are 2G and 4G RAM versions of the Lenovo Yoga Tab 3 X90F and it
-turns out that the 2G version has a DMI product name of
-"CHERRYVIEW D1 PLATFORM" where as the 4G version has
-"CHERRYVIEW C0 PLATFORM". The sys-vendor + product-version check are
-unique enough that the product-name check is not necessary.
-
-Drop the product-name check so that the existing DMI match for the 4G
-RAM version also matches the 2G RAM version.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Link: https://lore.kernel.org/r/20240825132415.8307-1-hdegoede@redhat.com
-Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/x86-android-tablets/dmi.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/platform/x86/x86-android-tablets/dmi.c b/drivers/platform/x86/x86-android-tablets/dmi.c
-index 141a2d25e83be..387dd092c4dd0 100644
---- a/drivers/platform/x86/x86-android-tablets/dmi.c
-+++ b/drivers/platform/x86/x86-android-tablets/dmi.c
-@@ -140,7 +140,6 @@ const struct dmi_system_id x86_android_tablet_ids[] __initconst = {
- /* Lenovo Yoga Tab 3 Pro YT3-X90F */
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
- DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
- },
- .driver_data = (void *)&lenovo_yt3_info,
---
-2.43.0
-
+++ /dev/null
-From 6a5cc6ed82c9a738f17e066a7ec672e6041876e1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 20 Aug 2024 23:51:31 -0700
-Subject: scsi: lpfc: Fix overflow build issue
-
-From: Sherry Yang <sherry.yang@oracle.com>
-
-[ Upstream commit 3417c9574e368f0330637505f00d3814ca8854d2 ]
-
-Build failed while enabling "CONFIG_GCOV_KERNEL=y" and
-"CONFIG_GCOV_PROFILE_ALL=y" with following error:
-
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c: In function 'lpfc_get_cgnbuf_info':
-BUILDSTDERR: ./include/linux/fortify-string.h:114:33: error: '__builtin_memcpy' accessing 18446744073709551615 bytes at offsets 0 and 0 overlaps 9223372036854775807 bytes at offset -9223372036854775808 [-Werror=restrict]
-BUILDSTDERR: 114 | #define __underlying_memcpy __builtin_memcpy
-BUILDSTDERR: | ^
-BUILDSTDERR: ./include/linux/fortify-string.h:637:9: note: in expansion of macro '__underlying_memcpy'
-BUILDSTDERR: 637 | __underlying_##op(p, q, __fortify_size); \
-BUILDSTDERR: | ^~~~~~~~~~~~~
-BUILDSTDERR: ./include/linux/fortify-string.h:682:26: note: in expansion of macro '__fortify_memcpy_chk'
-BUILDSTDERR: 682 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \
-BUILDSTDERR: | ^~~~~~~~~~~~~~~~~~~~
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c:5468:9: note: in expansion of macro 'memcpy'
-BUILDSTDERR: 5468 | memcpy(cgn_buff, cp, cinfosz);
-BUILDSTDERR: | ^~~~~~
-
-This happens from the commit 06bb7fc0feee ("kbuild: turn on -Wrestrict by
-default"). Address this issue by using size_t type.
-
-Signed-off-by: Sherry Yang <sherry.yang@oracle.com>
-Link: https://lore.kernel.org/r/20240821065131.1180791-1-sherry.yang@oracle.com
-Reviewed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_bsg.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
-index 4156419c52c78..4756a3f825310 100644
---- a/drivers/scsi/lpfc/lpfc_bsg.c
-+++ b/drivers/scsi/lpfc/lpfc_bsg.c
-@@ -5410,7 +5410,7 @@ lpfc_get_cgnbuf_info(struct bsg_job *job)
- struct get_cgnbuf_info_req *cgnbuf_req;
- struct lpfc_cgn_info *cp;
- uint8_t *cgn_buff;
-- int size, cinfosz;
-+ size_t size, cinfosz;
- int rc = 0;
-
- if (job->request_len < sizeof(struct fc_bsg_request) +
---
-2.43.0
-
spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-sof-mediatek-add-missing-board-compatible.patch-22157
-asoc-mediatek-mt8188-mark-afe_dac_con0-register-as-v.patch-2574
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-5972
-asoc-allow-module-autoloading-for-table-board_ids.patch-18702
-alsa-hda-realtek-fixed-alc256-headphone-no-sound.patch-27242
-alsa-hda-realtek-fixed-alc285-headphone-no-sound.patch-23034
-scsi-lpfc-fix-overflow-build-issue.patch-6384
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-14635
-hwmon-asus-ec-sensors-remove-vrm-temp-x570-e-gaming.patch-578
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-3060
-platform-x86-asus-wmi-fix-spurious-rfkill-on-ux8406m.patch-9102
-platform-x86-x86-android-tablets-make-lenovo-yoga-ta.patch-6727
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-4531
-loongarch-define-arch_irq_init_flags-as-irq_noprobe.patch-11197
-loongarch-kvm-invalidate-guest-steal-time-address-on.patch-7425
-wifi-iwlwifi-lower-message-level-for-fw-buffer-desti.patch-14318
-wifi-iwlwifi-mvm-fix-iwl_mvm_scan_fits-calculation.patch-16713
-wifi-iwlwifi-mvm-fix-iwl_mvm_max_scan_ie_fw_cmd_room.patch-3044
-wifi-iwlwifi-mvm-pause-tcm-when-the-firmware-is-stop.patch-21290
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-14089
-wifi-mac80211-free-skb-on-error-path-in-ieee80211_be.patch-27967
-wifi-iwlwifi-clear-trans-state-earlier-upon-error.patch-6875
-can-m_can-limit-coalescing-to-peripheral-instances.patch-975
-can-mcp251xfd-mcp251xfd_ring_init-check-tx-coalescin.patch-11796
-asoc-intel-soc-acpi-cht-make-lenovo-yoga-tab-3-x90f-.patch-32257
-asoc-intel-fix-module-autoloading.patch-15410
-asoc-google-fix-module-autoloading.patch-29410
-asoc-tda7419-fix-module-autoloading.patch-30653
-asoc-fix-module-autoloading.patch-11949
-asoc-mediatek-mt8188-mt6359-modify-key.patch-23689
-spi-spidev-add-an-entry-for-elgin-jg10309-01.patch-15611
-asoc-amd-yc-add-a-quirk-for-msi-bravo-17-d7vek.patch-18379
-clk-qcom-gcc-sm8650-don-t-use-shared-clk_ops-for-qup.patch-24586
-alsa-hda-add-hdmi-codec-id-for-intel-ptl.patch-24027
-drm-komeda-fix-an-issue-related-to-normalized-zpos.patch-21818
-spi-bcm63xx-enable-module-autoloading.patch-23926
-smb-client-fix-hang-in-wait_for_response-for-negprot.patch-8607
-platform-x86-amd-pmf-make-asus-ga403-quirk-generic.patch-18829
-ice-check-for-xdp-rings-instead-of-bpf-program-when-.patch-24037
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-8101
-tools-hv-rm-.-.cmd-when-make-clean.patch-27420
-drm-amd-pm-fix-the-pp_dpm_pcie-issue-on-smu-v14.0.2-.patch-15721
-spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch-10107
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-10443
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-24730
drm-use-xarray-instead-of-idr-for-minors.patch
accel-use-xarray-instead-of-idr-for-minors.patch
drm-expand-max-drm-device-number-to-full-minorbits.patch
+++ /dev/null
-From d39424e890d5303e70f10f5c405e36b78396c9ec Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 21:40:28 -0300
-Subject: smb: client: fix hang in wait_for_response() for negproto
-
-From: Paulo Alcantara <pc@manguebit.com>
-
-[ Upstream commit 7ccc1465465d78e6411b7bd730d06e7435802b5c ]
-
-Call cifs_reconnect() to wake up processes waiting on negotiate
-protocol to handle the case where server abruptly shut down and had no
-chance to properly close the socket.
-
-Simple reproducer:
-
- ssh 192.168.2.100 pkill -STOP smbd
- mount.cifs //192.168.2.100/test /mnt -o ... [never returns]
-
-Cc: Rickard Andersson <rickaran@axis.com>
-Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/smb/client/connect.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c
-index d2307162a2de1..e325e06357ffb 100644
---- a/fs/smb/client/connect.c
-+++ b/fs/smb/client/connect.c
-@@ -656,6 +656,19 @@ allocate_buffers(struct TCP_Server_Info *server)
- static bool
- server_unresponsive(struct TCP_Server_Info *server)
- {
-+ /*
-+ * If we're in the process of mounting a share or reconnecting a session
-+ * and the server abruptly shut down (e.g. socket wasn't closed, packet
-+ * had been ACK'ed but no SMB response), don't wait longer than 20s to
-+ * negotiate protocol.
-+ */
-+ spin_lock(&server->srv_lock);
-+ if (server->tcpStatus == CifsInNegotiate &&
-+ time_after(jiffies, server->lstrp + 20 * HZ)) {
-+ spin_unlock(&server->srv_lock);
-+ cifs_reconnect(server, false);
-+ return true;
-+ }
- /*
- * We need to wait 3 echo intervals to make sure we handle such
- * situations right:
-@@ -667,7 +680,6 @@ server_unresponsive(struct TCP_Server_Info *server)
- * 65s kernel_recvmsg times out, and we see that we haven't gotten
- * a response in >60s.
- */
-- spin_lock(&server->srv_lock);
- if ((server->tcpStatus == CifsGood ||
- server->tcpStatus == CifsNeedNegotiate) &&
- (!server->ops->can_echo || server->ops->can_echo(server)) &&
---
-2.43.0
-
+++ /dev/null
-From 50099ae73bda1cad5a18e4d8b5533651625d6e39 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index aac41bd05f98f..2fb8d4e55c777 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -472,6 +472,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From 6362c1961fed70c174906aa837ff7e9cda738e21 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 28 Aug 2024 15:00:56 -0300
-Subject: spi: spidev: Add an entry for elgin,jg10309-01
-
-From: Fabio Estevam <festevam@gmail.com>
-
-[ Upstream commit 5f3eee1eef5d0edd23d8ac0974f56283649a1512 ]
-
-The rv1108-elgin-r1 board has an LCD controlled via SPI in userspace.
-The marking on the LCD is JG10309-01.
-
-Add the "elgin,jg10309-01" compatible string.
-
-Signed-off-by: Fabio Estevam <festevam@gmail.com>
-Reviewed-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patch.msgid.link/20240828180057.3167190-2-festevam@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index 5304728c68c20..14bf0fa65befe 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -731,6 +731,7 @@ static int spidev_of_check(struct device *dev)
- static const struct of_device_id spidev_dt_ids[] = {
- { .compatible = "cisco,spi-petra", .data = &spidev_of_check },
- { .compatible = "dh,dhcom-board", .data = &spidev_of_check },
-+ { .compatible = "elgin,jg10309-01", .data = &spidev_of_check },
- { .compatible = "lineartechnology,ltc2488", .data = &spidev_of_check },
- { .compatible = "lwn,bk4", .data = &spidev_of_check },
- { .compatible = "menlo,m53cpld", .data = &spidev_of_check },
---
-2.43.0
-
+++ /dev/null
-From 6531c1133ade0ad1400d9574003d0c0e6766584a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 3 Sep 2024 14:32:27 +0200
-Subject: spi: spidev: Add missing spi_device_id for jg10309-01
-
-From: Geert Uytterhoeven <geert+renesas@glider.be>
-
-[ Upstream commit 5478a4f7b94414def7b56d2f18bc2ed9b0f3f1f2 ]
-
-When the of_device_id entry for "elgin,jg10309-01" was added, the
-corresponding spi_device_id was forgotten, causing a warning message
-during boot-up:
-
- SPI driver spidev has no spi_device_id for elgin,jg10309-01
-
-Fix module autoloading and shut up the warning by adding the missing
-entry.
-
-Fixes: 5f3eee1eef5d0edd ("spi: spidev: Add an entry for elgin,jg10309-01")
-Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
-Link: https://patch.msgid.link/54bbb9d8a8db7e52d13e266f2d4a9bcd8b42a98a.1725366625.git.geert+renesas@glider.be
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index 14bf0fa65befe..face93a9cf203 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -702,6 +702,7 @@ static const struct class spidev_class = {
- static const struct spi_device_id spidev_spi_ids[] = {
- { .name = "bh2228fv" },
- { .name = "dh2228fv" },
-+ { .name = "jg10309-01" },
- { .name = "ltc2488" },
- { .name = "sx1301" },
- { .name = "bk4" },
---
-2.43.0
-
+++ /dev/null
-From 576c11e78f5ad1daf3b937d8279f7f6ded5e1899 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 2 Sep 2024 12:21:03 +0800
-Subject: tools: hv: rm .*.cmd when make clean
-
-From: zhang jiao <zhangjiao2@cmss.chinamobile.com>
-
-[ Upstream commit 5e5cc1eb65256e6017e3deec04f9806f2f317853 ]
-
-rm .*.cmd when make clean
-
-Signed-off-by: zhang jiao <zhangjiao2@cmss.chinamobile.com>
-Reviewed-by: Saurabh Sengar <ssengar@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240902042103.5867-1-zhangjiao2@cmss.chinamobile.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240902042103.5867-1-zhangjiao2@cmss.chinamobile.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/hv/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/hv/Makefile b/tools/hv/Makefile
-index 2e60e2c212cd9..34ffcec264ab0 100644
---- a/tools/hv/Makefile
-+++ b/tools/hv/Makefile
-@@ -52,7 +52,7 @@ $(OUTPUT)hv_fcopy_uio_daemon: $(HV_FCOPY_UIO_DAEMON_IN)
-
- clean:
- rm -f $(ALL_PROGRAMS)
-- find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
-+ find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete -o -name '\.*.cmd' -delete
-
- install: $(ALL_PROGRAMS)
- install -d -m 755 $(DESTDIR)$(sbindir); \
---
-2.43.0
-
+++ /dev/null
-From f7975e39305d0da5d43417b666929e86f3158dec Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:01 +0300
-Subject: wifi: iwlwifi: clear trans->state earlier upon error
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 094513f8a2fbddee51b055d8035f995551f98fce ]
-
-When the firmware crashes, we first told the op_mode and only then,
-changed the transport's state. This is a problem if the op_mode's
-nic_error() handler needs to send a host command: it'll see that the
-transport's state still reflects that the firmware is alive.
-
-Today, this has no consequences since we set the STATUS_FW_ERROR bit and
-that will prevent sending host commands. iwl_fw_dbg_stop_restart_recording
-looks at this bit to know not to send a host command for example.
-
-To fix the hibernation, we needed to reset the firmware without having
-an error and checking STATUS_FW_ERROR to see whether the firmware is
-alive will no longer hold, so this change is necessary as well.
-
-Change the flow a bit.
-Change trans->state before calling the op_mode's nic_error() method and
-check trans->state instead of STATUS_FW_ERROR. This will keep the
-current behavior of iwl_fw_dbg_stop_restart_recording upon firmware
-error, and it'll allow us to call iwl_fw_dbg_stop_restart_recording
-safely even if STATUS_FW_ERROR is clear, but yet, the firmware is not
-alive.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.9d7427fbdfd7.Ia056ca57029a382c921d6f7b6a6b28fc480f2f22@changeid
-[I missed this was a dependency for the hibernation fix, changed
- the commit message a bit accordingly]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 2 +-
- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-index 945ffc083d25c..79fffa82cfd92 100644
---- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-@@ -3352,7 +3352,7 @@ void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
- {
- int ret __maybe_unused = 0;
-
-- if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status))
-+ if (!iwl_trans_fw_running(fwrt->trans))
- return;
-
- if (fw_has_capa(&fwrt->fw->ucode_capa,
-diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-index b93cef7b23301..4c56dccb18a9b 100644
---- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-@@ -1579,8 +1579,8 @@ static inline void iwl_trans_fw_error(struct iwl_trans *trans, bool sync)
-
- /* prevent double restarts due to the same erroneous FW */
- if (!test_and_set_bit(STATUS_FW_ERROR, &trans->status)) {
-- iwl_op_mode_nic_error(trans->op_mode, sync);
- trans->state = IWL_TRANS_NO_FW;
-+ iwl_op_mode_nic_error(trans->op_mode, sync);
- }
- }
-
---
-2.43.0
-
+++ /dev/null
-From 10e3810c8040063f5aea91abd700bba098d0dc27 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:13 +0300
-Subject: wifi: iwlwifi: lower message level for FW buffer destination
-
-From: Benjamin Berg <benjamin.berg@intel.com>
-
-[ Upstream commit f8a129c1e10256c785164ed5efa5d17d45fbd81b ]
-
-An invalid buffer destination is not a problem for the driver and it
-does not make sense to report it with the KERN_ERR message level. As
-such, change the message to use IWL_DEBUG_FW.
-
-Reported-by: Len Brown <lenb@kernel.org>
-Closes: https://lore.kernel.org/r/CAJvTdKkcxJss=DM2sxgv_MR5BeZ4_OC-3ad6tA40TYH2yqHCWw@mail.gmail.com
-Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.20abf78f05bc.Ifbcecc2ae9fb40b9698302507dcba8b922c8d856@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-index ebf11f276b20a..37f0bc9e0d963 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-@@ -89,7 +89,8 @@ iwl_pcie_ctxt_info_dbg_enable(struct iwl_trans *trans,
- }
- break;
- default:
-- IWL_ERR(trans, "WRT: Invalid buffer destination\n");
-+ IWL_DEBUG_FW(trans, "WRT: Invalid buffer destination (%d)\n",
-+ le32_to_cpu(fw_mon_cfg->buf_location));
- }
- out:
- if (dbg_flags)
---
-2.43.0
-
+++ /dev/null
-From 1603ca62c3ce2af6cec7f1a1ea6ae44071aa1422 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index 259afecd1a98d..83551d962a46c 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -5819,6 +5819,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -5914,8 +5918,11 @@ void iwl_mvm_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From a8590ab257b1dfb0b86d18a540e22d401f2619f7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:06 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_max_scan_ie_fw_cmd_room()
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit 916a5d9c5354c426220a0a6533a5e8ea1287d6ea ]
-
-Driver creates also the WFA TPC element, consider that in the
-calculation.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.e710ce446b7f.I2715c6742e9c3d160e2ba41bc4b35de370d2ce34@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index 89adc6421eeee..d7c276237c74e 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -48,6 +48,8 @@
- /* Number of iterations on the channel for mei filtered scan */
- #define IWL_MEI_SCAN_NUM_ITER 5U
-
-+#define WFA_TPC_IE_LEN 9
-+
- struct iwl_mvm_scan_timing_params {
- u32 suspend_time;
- u32 max_out_time;
-@@ -303,8 +305,8 @@ static int iwl_mvm_max_scan_ie_fw_cmd_room(struct iwl_mvm *mvm)
-
- max_probe_len = SCAN_OFFLOAD_PROBE_REQ_SIZE;
-
-- /* we create the 802.11 header and SSID element */
-- max_probe_len -= 24 + 2;
-+ /* we create the 802.11 header SSID element and WFA TPC element */
-+ max_probe_len -= 24 + 2 + WFA_TPC_IE_LEN;
-
- /* DS parameter set element is added on 2.4GHZ band if required */
- if (iwl_mvm_rrm_scan_needed(mvm))
-@@ -731,8 +733,6 @@ static u8 *iwl_mvm_copy_and_insert_ds_elem(struct iwl_mvm *mvm, const u8 *ies,
- return newpos;
- }
-
--#define WFA_TPC_IE_LEN 9
--
- static void iwl_mvm_add_tpc_report_ie(u8 *pos)
- {
- pos[0] = WLAN_EID_VENDOR_SPECIFIC;
---
-2.43.0
-
+++ /dev/null
-From 12a0c866caa54d801e1580c0a19ee3c489eee63e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:05 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_scan_fits() calculation
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit d44162280899c3fc2c6700e21e491e71c3c96e3d ]
-
-The calculation should consider also the 6GHz IE's len, fix that.
-In addition, in iwl_mvm_sched_scan_start() the scan_fits helper is
-called only in case non_psc_incldued is true, but it should be called
-regardless, fix that as well.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.7db825442fd2.I99f4d6587709de02072fd57957ec7472331c6b1d@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 ++++++++++---------
- 1 file changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index 7615c91a55c62..89adc6421eeee 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -837,8 +837,8 @@ static inline bool iwl_mvm_scan_fits(struct iwl_mvm *mvm, int n_ssids,
- return ((n_ssids <= PROBE_OPTION_MAX) &&
- (n_channels <= mvm->fw->ucode_capa.n_scan_channels) &
- (ies->common_ie_len +
-- ies->len[NL80211_BAND_2GHZ] +
-- ies->len[NL80211_BAND_5GHZ] <=
-+ ies->len[NL80211_BAND_2GHZ] + ies->len[NL80211_BAND_5GHZ] +
-+ ies->len[NL80211_BAND_6GHZ] <=
- iwl_mvm_max_scan_ie_fw_cmd_room(mvm)));
- }
-
-@@ -3179,18 +3179,16 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- params.n_channels = j;
- }
-
-- if (non_psc_included &&
-- !iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-- kfree(params.channels);
-- return -ENOBUFS;
-+ if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-+ ret = -ENOBUFS;
-+ goto out;
- }
-
- uid = iwl_mvm_build_scan_cmd(mvm, vif, &hcmd, ¶ms, type);
--
-- if (non_psc_included)
-- kfree(params.channels);
-- if (uid < 0)
-- return uid;
-+ if (uid < 0) {
-+ ret = uid;
-+ goto out;
-+ }
-
- ret = iwl_mvm_send_cmd(mvm, &hcmd);
- if (!ret) {
-@@ -3208,6 +3206,9 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;
- }
-
-+out:
-+ if (non_psc_included)
-+ kfree(params.channels);
- return ret;
- }
-
---
-2.43.0
-
+++ /dev/null
-From 6c8292a7ec62a4f31ab293e3f38e28f2ad50e431 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:10 +0300
-Subject: wifi: iwlwifi: mvm: pause TCM when the firmware is stopped
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 0668ebc8c2282ca1e7eb96092a347baefffb5fe7 ]
-
-Not doing so will make us send a host command to the transport while the
-firmware is not alive, which will trigger a WARNING.
-
-bad state = 0
-WARNING: CPU: 2 PID: 17434 at drivers/net/wireless/intel/iwlwifi/iwl-trans.c:115 iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-RIP: 0010:iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-Call Trace:
- <TASK>
- iwl_mvm_send_cmd+0x40/0xc0 [iwlmvm]
- iwl_mvm_config_scan+0x198/0x260 [iwlmvm]
- iwl_mvm_recalc_tcm+0x730/0x11d0 [iwlmvm]
- iwl_mvm_tcm_work+0x1d/0x30 [iwlmvm]
- process_one_work+0x29e/0x640
- worker_thread+0x2df/0x690
- ? rescuer_thread+0x540/0x540
- kthread+0x192/0x1e0
- ? set_kthread_struct+0x90/0x90
- ret_from_fork+0x22/0x30
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.5abe71ca1b6b.I97a968cb8be1f24f94652d9b110ecbf6af73f89e@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-index 498afbe4ee6be..6375cc3c48f3c 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-@@ -1521,6 +1521,8 @@ void iwl_mvm_stop_device(struct iwl_mvm *mvm)
-
- clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status);
-
-+ iwl_mvm_pause_tcm(mvm, false);
-+
- iwl_fw_dbg_stop_sync(&mvm->fwrt);
- iwl_trans_stop_device(mvm->trans);
- iwl_free_fw_paging(&mvm->fwrt);
---
-2.43.0
-
+++ /dev/null
-From 1ed8d766ab15e822f93a242a2f5f7df5d20d8370 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 5 Aug 2024 17:20:35 +0300
-Subject: wifi: mac80211: free skb on error path in ieee80211_beacon_get_ap()
-
-From: Dmitry Antipov <dmantipov@yandex.ru>
-
-[ Upstream commit 786c5be9ac29a39b6f37f1fdd2ea59d0fe35d525 ]
-
-In 'ieee80211_beacon_get_ap()', free allocated skb in case of error
-returned by 'ieee80211_beacon_protect()'. Compile tested only.
-
-Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
-Link: https://patch.msgid.link/20240805142035.227847-1-dmantipov@yandex.ru
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/mac80211/tx.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index edba4a31844fb..bca7b341dd772 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -5348,8 +5348,10 @@ ieee80211_beacon_get_ap(struct ieee80211_hw *hw,
- if (beacon->tail)
- skb_put_data(skb, beacon->tail, beacon->tail_len);
-
-- if (ieee80211_beacon_protect(skb, local, sdata, link) < 0)
-+ if (ieee80211_beacon_protect(skb, local, sdata, link) < 0) {
-+ dev_kfree_skb(skb);
- return NULL;
-+ }
-
- ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
- chanctx_conf, csa_off_base);
---
-2.43.0
-
+++ /dev/null
-From 98e33cde8b7a7855082fd1ed8ef94fbf5bb37cf6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index 41632fb57796d..ead967479fa63 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -424,6 +424,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.priv_high & HV_ISOLATION) {
---
-2.43.0
-
+++ /dev/null
-From 9657a3feed538b2a6092f0cdf6dc36e76312cda8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 30 Aug 2024 15:24:58 +0800
-Subject: ALSA: hda: add HDMI codec ID for Intel PTL
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
-
-[ Upstream commit e9481d9b83f8d9b3251aa428b02d8eba89d839ff ]
-
-Add HDMI codec ID for Intel Panther Lake platform.
-
-Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
-Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
-Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
-Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
-Link: https://patch.msgid.link/20240830072458.110831-1-yung-chuan.liao@linux.intel.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_hdmi.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
-index 82c0d3a3327ab..f030700cd60d7 100644
---- a/sound/pci/hda/patch_hdmi.c
-+++ b/sound/pci/hda/patch_hdmi.c
-@@ -4646,6 +4646,7 @@ HDA_CODEC_ENTRY(0x8086281c, "Alderlake-P HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x8086281d, "Meteor Lake HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x8086281f, "Raptor Lake P HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x80862820, "Lunar Lake HDMI", patch_i915_adlp_hdmi),
-+HDA_CODEC_ENTRY(0x80862822, "Panther Lake HDMI", patch_i915_adlp_hdmi),
- HDA_CODEC_ENTRY(0x80862880, "CedarTrail HDMI", patch_generic_hdmi),
- HDA_CODEC_ENTRY(0x80862882, "Valleyview2 HDMI", patch_i915_byt_hdmi),
- HDA_CODEC_ENTRY(0x80862883, "Braswell HDMI", patch_i915_byt_hdmi),
---
-2.43.0
-
+++ /dev/null
-From cb3ad21cc6c76faff83f806ce8b7d554ae0259ab Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 10:54:19 +0800
-Subject: ALSA: hda/realtek - Fixed ALC256 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 9b82ff1362f50914c8292902e07be98a9f59d33d ]
-
-Dell platform, plug headphone or headset, it had a chance to get no
-sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/bb8e2de30d294dc287944efa0667685a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 50 ++++++++++++++++++++++++++---------
- 1 file changed, 37 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 6661fed2c2bbf..47e92185c6c52 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4931,6 +4931,30 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
-+static void alc_hp_mute_disable(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
-+ msleep(delay);
-+}
-+
-+static void alc_hp_enable_unmute(struct hda_codec *codec, unsigned int delay)
-+{
-+ if (delay <= 0)
-+ delay = 75;
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-+ msleep(delay);
-+ snd_hda_codec_write(codec, 0x21, 0,
-+ AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-+ msleep(delay);
-+}
-+
- static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
-@@ -5032,6 +5056,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0236:
- case 0x10ec0256:
- case 0x19e58326:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, coef0256);
- break;
- case 0x10ec0234:
-@@ -5303,6 +5328,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x45, 0xc089);
- msleep(50);
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5400,6 +5426,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5515,6 +5542,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0256:
- case 0x19e58326:
- alc_process_coef_fw(codec, coef0256);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
-@@ -5620,25 +5648,21 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x06, 0x6104);
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x09a3);
-
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, coef0255);
- msleep(300);
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x0070) == 0x0070;
--
-+ if (!is_ctia) {
-+ alc_write_coef_idx(codec, 0x45, 0xe089);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x0070) == 0x0070)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_write_coefex_idx(codec, 0x57, 0x3, 0x0da3);
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0234:
- case 0x10ec0274:
---
-2.43.0
-
+++ /dev/null
-From 4a1fc26e224e18baf31208e8d350fd12411011b0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 16:46:56 +0800
-Subject: ALSA: hda/realtek - FIxed ALC285 headphone no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 1fa7b099d60ad64f559bd3b8e3f0d94b2e015514 ]
-
-Dell platform with ALC215 ALC285 ALC289 ALC225 ALC295 ALC299, plug
-headphone or headset.
-It had a chance to get no sound from headphone.
-Replace depop procedure will solve this issue.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/d0de1b03fd174520945dde216d765223@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 47e92185c6c52..130508f5ad9c8 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5091,6 +5091,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-+ alc_hp_mute_disable(codec, 75);
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
- break;
-@@ -5316,6 +5317,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- case 0x10ec0299:
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0255:
- alc_process_coef_fw(codec, coef0255);
-@@ -5475,6 +5477,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- alc_process_coef_fw(codec, coef0225_2);
- else
- alc_process_coef_fw(codec, coef0225_1);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- case 0x10ec0867:
- alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
-@@ -5580,6 +5583,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
- case 0x10ec0289:
- case 0x10ec0299:
- alc_process_coef_fw(codec, coef0225);
-+ alc_hp_enable_unmute(codec, 75);
- break;
- }
- codec_dbg(codec, "Headset jack set to Nokia-style headset mode.\n");
-@@ -5739,12 +5743,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- case 0x10ec0295:
- case 0x10ec0289:
- case 0x10ec0299:
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
--
- alc_process_coef_fw(codec, alc225_pre_hsmode);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
- val = alc_read_coef_idx(codec, 0x45);
-@@ -5761,15 +5759,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- val = alc_read_coef_idx(codec, 0x46);
- is_ctia = (val & 0x00f0) == 0x00f0;
- }
-+ if (!is_ctia) {
-+ alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x38<<10);
-+ alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
-+ msleep(100);
-+ val = alc_read_coef_idx(codec, 0x46);
-+ if ((val & 0x00f0) == 0x00f0)
-+ is_ctia = false;
-+ else
-+ is_ctia = true;
-+ }
- alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
- alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
- alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
--
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT);
-- msleep(80);
-- snd_hda_codec_write(codec, 0x21, 0,
-- AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
- break;
- case 0x10ec0867:
- is_ctia = true;
---
-2.43.0
-
+++ /dev/null
-From 71f999ccb233dbe9ad3170ac879edddb51e91103 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:55 +0800
-Subject: ASoC: allow module autoloading for table board_ids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 5f7c98b7519a3a847d9182bd99d57ea250032ca1 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-3-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/amd/acp/acp-sof-mach.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sound/soc/amd/acp/acp-sof-mach.c b/sound/soc/amd/acp/acp-sof-mach.c
-index 354d0fc55299b..0c5254c52b794 100644
---- a/sound/soc/amd/acp/acp-sof-mach.c
-+++ b/sound/soc/amd/acp/acp-sof-mach.c
-@@ -162,6 +162,8 @@ static const struct platform_device_id board_ids[] = {
- },
- { }
- };
-+MODULE_DEVICE_TABLE(platform, board_ids);
-+
- static struct platform_driver acp_asoc_audio = {
- .driver = {
- .name = "sof_mach",
---
-2.43.0
-
+++ /dev/null
-From acf70c1db3a97d62aecebc81a83f9708c838c94c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 21 Aug 2024 14:19:54 +0800
-Subject: ASoC: allow module autoloading for table db1200_pids
-
-From: Hongbo Li <lihongbo22@huawei.com>
-
-[ Upstream commit 0e9fdab1e8df490354562187cdbb8dec643eae2c ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly
-autoloaded based on the alias from platform_device_id table.
-
-Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
-Link: https://patch.msgid.link/20240821061955.2273782-2-lihongbo22@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/au1x/db1200.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
-index 400eaf9f8b140..f185711180cb4 100644
---- a/sound/soc/au1x/db1200.c
-+++ b/sound/soc/au1x/db1200.c
-@@ -44,6 +44,7 @@ static const struct platform_device_id db1200_pids[] = {
- },
- {},
- };
-+MODULE_DEVICE_TABLE(platform, db1200_pids);
-
- /*------------------------- AC97 PART ---------------------------*/
-
---
-2.43.0
-
+++ /dev/null
-From 210c77b447c7790304c589ad28f1dcc29579e384 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 29 Aug 2024 16:03:05 +0300
-Subject: ASoC: amd: yc: Add a quirk for MSI Bravo 17 (D7VEK)
-
-From: Markuss Broks <markuss.broks@gmail.com>
-
-[ Upstream commit 283844c35529300c8e10f7a263e35e3c5d3580ac ]
-
-MSI Bravo 17 (D7VEK), like other laptops from the family,
-has broken ACPI tables and needs a quirk for internal mic
-to work.
-
-Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
-Link: https://patch.msgid.link/20240829130313.338508-1-markuss.broks@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/amd/yc/acp6x-mach.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c
-index f6c1dbd0ebcf5..248e3bcbf386b 100644
---- a/sound/soc/amd/yc/acp6x-mach.c
-+++ b/sound/soc/amd/yc/acp6x-mach.c
-@@ -353,6 +353,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
- DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 15 C7VF"),
- }
- },
-+ {
-+ .driver_data = &acp6x_card,
-+ .matches = {
-+ DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
-+ DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 17 D7VEK"),
-+ }
-+ },
- {
- .driver_data = &acp6x_card,
- .matches = {
---
-2.43.0
-
+++ /dev/null
-From 7f673cd700b002df124287454726d0d3b9fb7195 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:24 +0000
-Subject: ASoC: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 6ba20539ac6b12ea757b3bfe11adf8de1672d7b8 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-5-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/chv3-codec.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/chv3-codec.c b/sound/soc/codecs/chv3-codec.c
-index ab99effa68748..40020500b1fe8 100644
---- a/sound/soc/codecs/chv3-codec.c
-+++ b/sound/soc/codecs/chv3-codec.c
-@@ -26,6 +26,7 @@ static const struct of_device_id chv3_codec_of_match[] = {
- { .compatible = "google,chv3-codec", },
- { }
- };
-+MODULE_DEVICE_TABLE(of, chv3_codec_of_match);
-
- static struct platform_driver chv3_codec_platform_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From cd819434670a299ca6f75ecc19d81b2ebb72edbd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:22 +0000
-Subject: ASoC: google: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 8e1bb4a41aa78d6105e59186af3dcd545fc66e70 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-3-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/google/chv3-i2s.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/google/chv3-i2s.c b/sound/soc/google/chv3-i2s.c
-index 0f65134449066..462e970b954f1 100644
---- a/sound/soc/google/chv3-i2s.c
-+++ b/sound/soc/google/chv3-i2s.c
-@@ -322,6 +322,7 @@ static const struct of_device_id chv3_i2s_of_match[] = {
- { .compatible = "google,chv3-i2s" },
- {},
- };
-+MODULE_DEVICE_TABLE(of, chv3_i2s_of_match);
-
- static struct platform_driver chv3_i2s_driver = {
- .probe = chv3_i2s_probe,
---
-2.43.0
-
+++ /dev/null
-From 9e571353666f106d6fffa1bb5d69ffb9a8426166 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:21 +0000
-Subject: ASoC: intel: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit ae61a3391088d29aa8605c9f2db84295ab993a49 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-2-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/keembay/kmb_platform.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/intel/keembay/kmb_platform.c b/sound/soc/intel/keembay/kmb_platform.c
-index 6b06b7b5ede86..ffe558ef49220 100644
---- a/sound/soc/intel/keembay/kmb_platform.c
-+++ b/sound/soc/intel/keembay/kmb_platform.c
-@@ -815,6 +815,7 @@ static const struct of_device_id kmb_plat_of_match[] = {
- { .compatible = "intel,keembay-tdm", .data = &intel_kmb_tdm_dai},
- {}
- };
-+MODULE_DEVICE_TABLE(of, kmb_plat_of_match);
-
- static int kmb_plat_dai_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From ad4939e5970baca9837803a36d9009c8fa97786e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 23 Aug 2024 09:43:05 +0200
-Subject: ASoC: Intel: soc-acpi-cht: Make Lenovo Yoga Tab 3 X90F DMI match less
- strict
-
-From: Hans de Goede <hdegoede@redhat.com>
-
-[ Upstream commit 839a4ec06f75cec8fec2cc5fc14e921d0c3f7369 ]
-
-There are 2G and 4G RAM versions of the Lenovo Yoga Tab 3 X90F and it
-turns out that the 2G version has a DMI product name of
-"CHERRYVIEW D1 PLATFORM" where as the 4G version has
-"CHERRYVIEW C0 PLATFORM". The sys-vendor + product-version check are
-unique enough that the product-name check is not necessary.
-
-Drop the product-name check so that the existing DMI match for the 4G
-RAM version also matches the 2G RAM version.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
-Link: https://patch.msgid.link/20240823074305.16873-1-hdegoede@redhat.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/intel/common/soc-acpi-intel-cht-match.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-index 5e2ec60e2954b..e4c3492a0c282 100644
---- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-@@ -84,7 +84,6 @@ static const struct dmi_system_id lenovo_yoga_tab3_x90[] = {
- /* Lenovo Yoga Tab 3 Pro YT3-X90, codec missing from DSDT */
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
- DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
- },
- },
---
-2.43.0
-
+++ /dev/null
-From 63ff036f88f74c82bc2e6a751cf4a05160afba59 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 1 Aug 2024 16:43:26 +0800
-Subject: ASoC: mediatek: mt8188: Mark AFE_DAC_CON0 register as volatile
-
-From: YR Yang <yr.yang@mediatek.com>
-
-[ Upstream commit ff9f065318e17a1a97981d9e535fcfc6ce5d5614 ]
-
-Add AFE Control Register 0 to the volatile_register.
-AFE_DAC_CON0 can be modified by both the SOF and ALSA drivers.
-If this register is read and written in cache mode, the cached value
-might not reflect the actual value when the register is modified by
-another driver. It can cause playback or capture failures. Therefore,
-it is necessary to add AFE_DAC_CON0 to the list of volatile registers.
-
-Signed-off-by: YR Yang <yr.yang@mediatek.com>
-Reviewed-by: Fei Shao <fshao@chromium.org>
-Reviewed-by: Trevor Wu <trevor.wu@mediatek.com>
-Link: https://patch.msgid.link/20240801084326.1472-1-yr.yang@mediatek.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/mediatek/mt8188/mt8188-afe-pcm.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c b/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c
-index 5e14655c5617e..11f30b183520f 100644
---- a/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c
-+++ b/sound/soc/mediatek/mt8188/mt8188-afe-pcm.c
-@@ -2748,6 +2748,7 @@ static bool mt8188_is_volatile_reg(struct device *dev, unsigned int reg)
- case AFE_ASRC12_NEW_CON9:
- case AFE_LRCK_CNT:
- case AFE_DAC_MON0:
-+ case AFE_DAC_CON0:
- case AFE_DL2_CUR:
- case AFE_DL3_CUR:
- case AFE_DL6_CUR:
---
-2.43.0
-
+++ /dev/null
-From 3314ecce86e5f4324dc0e6a663c1024883eb2d84 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 9 Aug 2024 13:56:27 +0000
-Subject: ASoC: SOF: mediatek: Add missing board compatible
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Albert Jakieła <jakiela@google.com>
-
-[ Upstream commit c0196faaa927321a63e680427e075734ee656e42 ]
-
-Add Google Dojo compatible.
-
-Signed-off-by: Albert Jakieła <jakiela@google.com>
-Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
-Link: https://patch.msgid.link/20240809135627.544429-1-jakiela@google.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/sof/mediatek/mt8195/mt8195.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sound/soc/sof/mediatek/mt8195/mt8195.c b/sound/soc/sof/mediatek/mt8195/mt8195.c
-index b5b4ea854da4b..94db51d88dda0 100644
---- a/sound/soc/sof/mediatek/mt8195/mt8195.c
-+++ b/sound/soc/sof/mediatek/mt8195/mt8195.c
-@@ -625,6 +625,9 @@ static struct snd_sof_of_mach sof_mt8195_machs[] = {
- {
- .compatible = "google,tomato",
- .sof_tplg_filename = "sof-mt8195-mt6359-rt1019-rt5682.tplg"
-+ }, {
-+ .compatible = "google,dojo",
-+ .sof_tplg_filename = "sof-mt8195-mt6359-max98390-rt5682.tplg"
- }, {
- .compatible = "mediatek,mt8195",
- .sof_tplg_filename = "sof-mt8195.tplg"
---
-2.43.0
-
+++ /dev/null
-From 1efaed113342d2a3d931521e468557d9c4461a9f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 08:49:23 +0000
-Subject: ASoC: tda7419: fix module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 934b44589da9aa300201a00fe139c5c54f421563 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded
-based on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240826084924.368387-4-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/codecs/tda7419.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/tda7419.c b/sound/soc/codecs/tda7419.c
-index e187d74a17376..3914deb060cac 100644
---- a/sound/soc/codecs/tda7419.c
-+++ b/sound/soc/codecs/tda7419.c
-@@ -623,6 +623,7 @@ static const struct of_device_id tda7419_of_match[] = {
- { .compatible = "st,tda7419" },
- { },
- };
-+MODULE_DEVICE_TABLE(of, tda7419_of_match);
-
- static struct i2c_driver tda7419_driver = {
- .driver = {
---
-2.43.0
-
+++ /dev/null
-From 659df859dc84a4b0db91d177c7e90c4ec7bf663c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Jan 2024 15:26:34 -0500
-Subject: block: Fix where bio IO priority gets set
-
-From: Hongyu Jin <hongyu.jin@unisoc.com>
-
-[ Upstream commit f3c89983cb4fc00be64eb0d5cbcfcdf2cacb965e ]
-
-Commit 82b74cac2849 ("blk-ioprio: Convert from rqos policy to direct
-call") pushed setting bio I/O priority down into blk_mq_submit_bio()
--- which is too low within block core's submit_bio() because it
-skips setting I/O priority for block drivers that implement
-fops->submit_bio() (e.g. DM, MD, etc).
-
-Fix this by moving bio_set_ioprio() up from blk-mq.c to blk-core.c and
-call it from submit_bio(). This ensures all block drivers call
-bio_set_ioprio() during initial bio submission.
-
-Fixes: a78418e6a04c ("block: Always initialize bio IO priority on submit")
-Co-developed-by: Yibin Ding <yibin.ding@unisoc.com>
-Signed-off-by: Yibin Ding <yibin.ding@unisoc.com>
-Signed-off-by: Hongyu Jin <hongyu.jin@unisoc.com>
-Reviewed-by: Eric Biggers <ebiggers@google.com>
-Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
-[snitzer: revised commit header]
-Signed-off-by: Mike Snitzer <snitzer@kernel.org>
-Reviewed-by: Ming Lei <ming.lei@redhat.com>
-Link: https://lore.kernel.org/r/20240130202638.62600-2-snitzer@kernel.org
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- block/blk-core.c | 10 ++++++++++
- block/blk-mq.c | 10 ----------
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/block/blk-core.c b/block/blk-core.c
-index bf058cea9016a..4f25d2c4bc705 100644
---- a/block/blk-core.c
-+++ b/block/blk-core.c
-@@ -49,6 +49,7 @@
- #include "blk-pm.h"
- #include "blk-cgroup.h"
- #include "blk-throttle.h"
-+#include "blk-ioprio.h"
-
- struct dentry *blk_debugfs_root;
-
-@@ -819,6 +820,14 @@ void submit_bio_noacct(struct bio *bio)
- }
- EXPORT_SYMBOL(submit_bio_noacct);
-
-+static void bio_set_ioprio(struct bio *bio)
-+{
-+ /* Nobody set ioprio so far? Initialize it based on task's nice value */
-+ if (IOPRIO_PRIO_CLASS(bio->bi_ioprio) == IOPRIO_CLASS_NONE)
-+ bio->bi_ioprio = get_current_ioprio();
-+ blkcg_set_ioprio(bio);
-+}
-+
- /**
- * submit_bio - submit a bio to the block device layer for I/O
- * @bio: The &struct bio which describes the I/O
-@@ -841,6 +850,7 @@ void submit_bio(struct bio *bio)
- count_vm_events(PGPGOUT, bio_sectors(bio));
- }
-
-+ bio_set_ioprio(bio);
- submit_bio_noacct(bio);
- }
- EXPORT_SYMBOL(submit_bio);
-diff --git a/block/blk-mq.c b/block/blk-mq.c
-index 7cc315527a44c..733d72f4d1cc9 100644
---- a/block/blk-mq.c
-+++ b/block/blk-mq.c
-@@ -40,7 +40,6 @@
- #include "blk-stat.h"
- #include "blk-mq-sched.h"
- #include "blk-rq-qos.h"
--#include "blk-ioprio.h"
-
- static DEFINE_PER_CPU(struct llist_head, blk_cpu_done);
- static DEFINE_PER_CPU(call_single_data_t, blk_cpu_csd);
-@@ -2956,14 +2955,6 @@ static bool blk_mq_can_use_cached_rq(struct request *rq, struct blk_plug *plug,
- return true;
- }
-
--static void bio_set_ioprio(struct bio *bio)
--{
-- /* Nobody set ioprio so far? Initialize it based on task's nice value */
-- if (IOPRIO_PRIO_CLASS(bio->bi_ioprio) == IOPRIO_CLASS_NONE)
-- bio->bi_ioprio = get_current_ioprio();
-- blkcg_set_ioprio(bio);
--}
--
- /**
- * blk_mq_submit_bio - Create and send a request to block device.
- * @bio: Bio pointer.
-@@ -2988,7 +2979,6 @@ void blk_mq_submit_bio(struct bio *bio)
- blk_status_t ret;
-
- bio = blk_queue_bounce(bio, q);
-- bio_set_ioprio(bio);
-
- if (plug) {
- rq = rq_list_peek(&plug->cached_rq);
---
-2.43.0
-
+++ /dev/null
-From a62406bbada6e50a800af7a249826220b80cd33a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 5 Jul 2024 17:24:42 +0200
-Subject: can: mcp251xfd: mcp251xfd_ring_init(): check TX-coalescing
- configuration
-
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-
-[ Upstream commit ac2b81eb8b2d104033560daea886ee84531e3d0a ]
-
-When changing the interface from CAN-CC to CAN-FD mode the old
-coalescing parameters are re-used. This might cause problem, as the
-configured parameters are too big for CAN-FD mode.
-
-During testing an invalid TX coalescing configuration has been seen.
-The problem should be been fixed in the previous patch, but add a
-safeguard here to ensure that the number of TEF coalescing buffers (if
-configured) is exactly the half of all TEF buffers.
-
-Link: https://lore.kernel.org/all/20240805-mcp251xfd-fix-ringconfig-v1-2-72086f0ca5ee@pengutronix.de
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c | 14 +++++++++++---
- 1 file changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-index f72582d4d3e8e..83c18035b2a24 100644
---- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-ring.c
-@@ -290,7 +290,7 @@ int mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
- const struct mcp251xfd_rx_ring *rx_ring;
- u16 base = 0, ram_used;
- u8 fifo_nr = 1;
-- int i;
-+ int err = 0, i;
-
- netdev_reset_queue(priv->ndev);
-
-@@ -386,10 +386,18 @@ int mcp251xfd_ring_init(struct mcp251xfd_priv *priv)
- netdev_err(priv->ndev,
- "Error during ring configuration, using more RAM (%u bytes) than available (%u bytes).\n",
- ram_used, MCP251XFD_RAM_SIZE);
-- return -ENOMEM;
-+ err = -ENOMEM;
- }
-
-- return 0;
-+ if (priv->tx_obj_num_coalesce_irq &&
-+ priv->tx_obj_num_coalesce_irq * 2 != priv->tx->obj_num) {
-+ netdev_err(priv->ndev,
-+ "Error during ring configuration, number of TEF coalescing buffers (%u) must be half of TEF buffers (%u).\n",
-+ priv->tx_obj_num_coalesce_irq, priv->tx->obj_num);
-+ err = -EINVAL;
-+ }
-+
-+ return err;
- }
-
- void mcp251xfd_ring_free(struct mcp251xfd_priv *priv)
---
-2.43.0
-
+++ /dev/null
-From 4ea9dfa757c3148a5f42327b31c604151ce1ef53 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 10:45:17 +0800
-Subject: drm: komeda: Fix an issue related to normalized zpos
-
-From: hongchi.peng <hongchi.peng@siengine.com>
-
-[ Upstream commit 258905cb9a6414be5c9ca4aa20ef855f8dc894d4 ]
-
-We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
-to their blending zorder in CU. If there's only one slave plane in
-affected planes and its layer_split property is enabled, order++ for
-its split layer, so that when calculating the normalized_zpos
-of master planes, the split layer of the slave plane is included, but
-the max_slave_zorder does not include the split layer and keep zero
-because there's only one slave plane in affacted planes, although we
-actually use two slave layers in this commit.
-
-In most cases, this bug does not result in a commit failure, but assume
-the following situation:
- slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
- 0;(use slave_layer 2 as its split layer)
- master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
- 2;(use master_layer 2 as its split layer)
- master_layer 1: zpos = 4, normalized_zpos = 4;
- master_layer 3: zpos = 5, normalized_zpos = 5;
- kcrtc_st->max_slave_zorder = 0;
-When we use master_layer 3 as a input of CU in function
-komeda_compiz_set_input and check it with function
-komeda_component_check_input, the parameter idx is equal to
-normailzed_zpos minus max_slave_zorder, the value of idx is 5
-and is euqal to CU's max_active_inputs, so that
-komeda_component_check_input returns a -EINVAL value.
-
-To fix the bug described above, when calculating the max_slave_zorder
-with the layer_split enabled, count the split layer in this calculation
-directly.
-
-Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
-Acked-by: Liviu Dudau <liviu.dudau@arm.com>
-Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-index 9299026701f34..1a5fa7df284de 100644
---- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
-@@ -160,6 +160,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- struct drm_plane *plane;
- struct list_head zorder_list;
- int order = 0, err;
-+ u32 slave_zpos = 0;
-
- DRM_DEBUG_ATOMIC("[CRTC:%d:%s] calculating normalized zpos values\n",
- crtc->base.id, crtc->name);
-@@ -199,10 +200,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,
- plane_st->zpos, plane_st->normalized_zpos);
-
- /* calculate max slave zorder */
-- if (has_bit(drm_plane_index(plane), kcrtc->slave_planes))
-+ if (has_bit(drm_plane_index(plane), kcrtc->slave_planes)) {
-+ slave_zpos = plane_st->normalized_zpos;
-+ if (to_kplane_st(plane_st)->layer_split)
-+ slave_zpos++;
- kcrtc_st->max_slave_zorder =
-- max(plane_st->normalized_zpos,
-- kcrtc_st->max_slave_zorder);
-+ max(slave_zpos, kcrtc_st->max_slave_zorder);
-+ }
- }
-
- crtc_st->zpos_changed = true;
---
-2.43.0
-
+++ /dev/null
-From ef71077248aac009f1052ecfddbe33c9a4fd516f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 30 Jul 2024 08:21:42 +0200
-Subject: hwmon: (asus-ec-sensors) remove VRM temp X570-E GAMING
-
-From: Ross Brown <true.robot.ross@gmail.com>
-
-[ Upstream commit 9efaebc0072b8e95505544bf385c20ee8a29d799 ]
-
-X570-E GAMING does not have VRM temperature sensor.
-
-Signed-off-by: Ross Brown <true.robot.ross@gmail.com>
-Signed-off-by: Eugene Shalygin <eugene.shalygin@gmail.com>
-Link: https://lore.kernel.org/r/20240730062320.5188-2-eugene.shalygin@gmail.com
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/hwmon/asus-ec-sensors.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/asus-ec-sensors.c b/drivers/hwmon/asus-ec-sensors.c
-index 51f9c2db403e7..f20b864c1bb20 100644
---- a/drivers/hwmon/asus-ec-sensors.c
-+++ b/drivers/hwmon/asus-ec-sensors.c
-@@ -402,7 +402,7 @@ static const struct ec_board_info board_info_strix_b550_i_gaming = {
-
- static const struct ec_board_info board_info_strix_x570_e_gaming = {
- .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB |
-- SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM |
-+ SENSOR_TEMP_T_SENSOR |
- SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU |
- SENSOR_IN_CPU_CORE,
- .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX,
---
-2.43.0
-
+++ /dev/null
-From 6ac7c4d223797c6303332e439ba8822af5f92517 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 26 Aug 2024 23:11:32 +0800
-Subject: LoongArch: Define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE
-
-From: Huacai Chen <chenhuacai@loongson.cn>
-
-[ Upstream commit 274ea3563e5ab9f468c15bfb9d2492803a66d9be ]
-
-Currently we call irq_set_noprobe() in a loop for all IRQs, but indeed
-it only works for IRQs below NR_IRQS_LEGACY because at init_IRQ() only
-legacy interrupts have been allocated.
-
-Instead, we can define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE in asm/hwirq.h
-and the core will automatically set the flag for all interrupts.
-
-Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
-Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/loongarch/include/asm/hw_irq.h | 2 ++
- arch/loongarch/kernel/irq.c | 3 ---
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/arch/loongarch/include/asm/hw_irq.h b/arch/loongarch/include/asm/hw_irq.h
-index af4f4e8fbd858..8156ffb674159 100644
---- a/arch/loongarch/include/asm/hw_irq.h
-+++ b/arch/loongarch/include/asm/hw_irq.h
-@@ -9,6 +9,8 @@
-
- extern atomic_t irq_err_count;
-
-+#define ARCH_IRQ_INIT_FLAGS IRQ_NOPROBE
-+
- /*
- * interrupt-retrigger: NOP for now. This may not be appropriate for all
- * machines, we'll see ...
-diff --git a/arch/loongarch/kernel/irq.c b/arch/loongarch/kernel/irq.c
-index 883e5066ae445..df42c063f6c43 100644
---- a/arch/loongarch/kernel/irq.c
-+++ b/arch/loongarch/kernel/irq.c
-@@ -122,9 +122,6 @@ void __init init_IRQ(void)
- panic("IPI IRQ request failed\n");
- #endif
-
-- for (i = 0; i < NR_IRQS; i++)
-- irq_set_noprobe(i);
--
- for_each_possible_cpu(i) {
- page = alloc_pages_node(cpu_to_node(i), GFP_KERNEL, order);
-
---
-2.43.0
-
+++ /dev/null
-From 88e2a172ceef7c3b73202b53e015bb5d2cf6b348 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 29 Jul 2024 08:33:27 +0300
-Subject: microblaze: don't treat zero reserved memory regions as error
-
-From: Mike Rapoport <rppt@kernel.org>
-
-[ Upstream commit 0075df288dd8a7abfe03b3766176c393063591dd ]
-
-Before commit 721f4a6526da ("mm/memblock: remove empty dummy entry") the
-check for non-zero of memblock.reserved.cnt in mmu_init() would always
-be true either because memblock.reserved.cnt is initialized to 1 or
-because there were memory reservations earlier.
-
-The removal of dummy empty entry in memblock caused this check to fail
-because now memblock.reserved.cnt is initialized to 0.
-
-Remove the check for non-zero of memblock.reserved.cnt because it's
-perfectly fine to have an empty memblock.reserved array that early in
-boot.
-
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Mike Rapoport <rppt@kernel.org>
-Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
-Tested-by: Guenter Roeck <linux@roeck-us.net>
-Link: https://lore.kernel.org/r/20240729053327.4091459-1-rppt@kernel.org
-Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/microblaze/mm/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
-index 3827dc76edd82..4520c57415797 100644
---- a/arch/microblaze/mm/init.c
-+++ b/arch/microblaze/mm/init.c
-@@ -193,11 +193,6 @@ asmlinkage void __init mmu_init(void)
- {
- unsigned int kstart, ksize;
-
-- if (!memblock.reserved.cnt) {
-- pr_emerg("Error memory count\n");
-- machine_restart(NULL);
-- }
--
- if ((u32) memblock.memory.regions[0].size < 0x400000) {
- pr_emerg("Memory must be greater than 4MB\n");
- machine_restart(NULL);
---
-2.43.0
-
+++ /dev/null
-From af666d8b88b5d3e49e227e311eefe9de6ab1ea6a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 15:30:06 +0800
-Subject: net: ftgmac100: Ensure tx descriptor updates are visible
-
-From: Jacky Chou <jacky_chou@aspeedtech.com>
-
-[ Upstream commit 4186c8d9e6af57bab0687b299df10ebd47534a0a ]
-
-The driver must ensure TX descriptor updates are visible
-before updating TX pointer and TX clear pointer.
-
-This resolves TX hangs observed on AST2600 when running
-iperf3.
-
-Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/faraday/ftgmac100.c | 26 ++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index 9135b918dd490..848e41a4b1dbb 100644
---- a/drivers/net/ethernet/faraday/ftgmac100.c
-+++ b/drivers/net/ethernet/faraday/ftgmac100.c
-@@ -572,7 +572,7 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int *processed)
- (*processed)++;
- return true;
-
-- drop:
-+drop:
- /* Clean rxdes0 (which resets own bit) */
- rxdes->rxdes0 = cpu_to_le32(status & priv->rxdes0_edorr_mask);
- priv->rx_pointer = ftgmac100_next_rx_pointer(priv, pointer);
-@@ -656,6 +656,11 @@ static bool ftgmac100_tx_complete_packet(struct ftgmac100 *priv)
- ftgmac100_free_tx_packet(priv, pointer, skb, txdes, ctl_stat);
- txdes->txdes0 = cpu_to_le32(ctl_stat & priv->txdes0_edotr_mask);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- priv->tx_clean_pointer = ftgmac100_next_tx_pointer(priv, pointer);
-
- return true;
-@@ -809,6 +814,11 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- dma_wmb();
- first->txdes0 = cpu_to_le32(f_ctl_stat);
-
-+ /* Ensure the descriptor config is visible before setting the tx
-+ * pointer.
-+ */
-+ smp_wmb();
-+
- /* Update next TX pointer */
- priv->tx_pointer = pointer;
-
-@@ -829,7 +839,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
-
- return NETDEV_TX_OK;
-
-- dma_err:
-+dma_err:
- if (net_ratelimit())
- netdev_err(netdev, "map tx fragment failed\n");
-
-@@ -851,7 +861,7 @@ static netdev_tx_t ftgmac100_hard_start_xmit(struct sk_buff *skb,
- * last fragment, so we know ftgmac100_free_tx_packet()
- * hasn't freed the skb yet.
- */
-- drop:
-+drop:
- /* Drop the packet */
- dev_kfree_skb_any(skb);
- netdev->stats.tx_dropped++;
-@@ -1344,7 +1354,7 @@ static void ftgmac100_reset(struct ftgmac100 *priv)
- ftgmac100_init_all(priv, true);
-
- netdev_dbg(netdev, "Reset done !\n");
-- bail:
-+bail:
- if (priv->mii_bus)
- mutex_unlock(&priv->mii_bus->mdio_lock);
- if (netdev->phydev)
-@@ -1543,15 +1553,15 @@ static int ftgmac100_open(struct net_device *netdev)
-
- return 0;
-
-- err_ncsi:
-+err_ncsi:
- napi_disable(&priv->napi);
- netif_stop_queue(netdev);
-- err_alloc:
-+err_alloc:
- ftgmac100_free_buffers(priv);
- free_irq(netdev->irq, netdev);
-- err_irq:
-+err_irq:
- netif_napi_del(&priv->napi);
-- err_hw:
-+err_hw:
- iowrite32(0, priv->base + FTGMAC100_OFFSET_IER);
- ftgmac100_free_rings(priv);
- return err;
---
-2.43.0
-
+++ /dev/null
-From 935ff5c0a940accbf733b43b3512b7af76c2a0bd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:23 +0800
-Subject: ocfs2: add bounds checking to ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit 9e3041fecdc8f78a5900c3aa51d3d756e73264d6 ]
-
-Add a paranoia check to make sure it doesn't stray beyond valid memory
-region containing ocfs2 xattr entries when scanning for a match. It will
-prevent out-of-bound access in case of crafted images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-1-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Jun Piao <piaojun@huawei.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Stable-dep-of: af77c4fc1871 ("ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index b562cfef888ad..e6220f7f7cf34 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1062,7 +1062,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
- return i_ret + b_ret;
- }
-
--static int ocfs2_xattr_find_entry(int name_index,
-+static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- const char *name,
- struct ocfs2_xattr_search *xs)
- {
-@@ -1076,6 +1076,10 @@ static int ocfs2_xattr_find_entry(int name_index,
- name_len = strlen(name);
- entry = xs->here;
- for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
-+ if ((void *)entry >= xs->end) {
-+ ocfs2_error(inode->i_sb, "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-@@ -1166,7 +1170,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode,
- xs->base = (void *)xs->header;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret)
- return ret;
- size = le64_to_cpu(xs->here->xe_value_size);
-@@ -2698,7 +2702,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode,
-
- /* Find the named attribute. */
- if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- if (ret && ret != -ENODATA)
- return ret;
- xs->not_found = ret;
-@@ -2833,7 +2837,7 @@ static int ocfs2_xattr_block_find(struct inode *inode,
- xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
- xs->here = xs->header->xh_entries;
-
-- ret = ocfs2_xattr_find_entry(name_index, name, xs);
-+ ret = ocfs2_xattr_find_entry(inode, name_index, name, xs);
- } else
- ret = ocfs2_xattr_index_block_find(inode, blk_bh,
- name_index,
---
-2.43.0
-
+++ /dev/null
-From 2743fac4ab917d33c67f852f03d4210c9fe5c027 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 20 May 2024 10:40:24 +0800
-Subject: ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
-
-From: Ferry Meng <mengferry@linux.alibaba.com>
-
-[ Upstream commit af77c4fc1871847b528d58b7fdafb4aa1f6a9262 ]
-
-xattr in ocfs2 maybe 'non-indexed', which saved with additional space
-requested. It's better to check if the memory is out of bound before
-memcmp, although this possibility mainly comes from crafted poisonous
-images.
-
-Link: https://lkml.kernel.org/r/20240520024024.1976129-2-joseph.qi@linux.alibaba.com
-Signed-off-by: Ferry Meng <mengferry@linux.alibaba.com>
-Signed-off-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Reported-by: lei lu <llfamsec@gmail.com>
-Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
-Cc: Changwei Ge <gechangwei@live.cn>
-Cc: Gang He <ghe@suse.com>
-Cc: Joel Becker <jlbec@evilplan.org>
-Cc: Jun Piao <piaojun@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Cc: Mark Fasheh <mark@fasheh.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ocfs2/xattr.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
-index e6220f7f7cf34..29d53d1d1476b 100644
---- a/fs/ocfs2/xattr.c
-+++ b/fs/ocfs2/xattr.c
-@@ -1068,7 +1068,7 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- {
- struct ocfs2_xattr_entry *entry;
- size_t name_len;
-- int i, cmp = 1;
-+ int i, name_offset, cmp = 1;
-
- if (name == NULL)
- return -EINVAL;
-@@ -1083,10 +1083,15 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index,
- cmp = name_index - ocfs2_xattr_get_type(entry);
- if (!cmp)
- cmp = name_len - entry->xe_name_len;
-- if (!cmp)
-- cmp = memcmp(name, (xs->base +
-- le16_to_cpu(entry->xe_name_offset)),
-- name_len);
-+ if (!cmp) {
-+ name_offset = le16_to_cpu(entry->xe_name_offset);
-+ if ((xs->base + name_offset + name_len) > xs->end) {
-+ ocfs2_error(inode->i_sb,
-+ "corrupted xattr entries");
-+ return -EFSCORRUPTED;
-+ }
-+ cmp = memcmp(name, (xs->base + name_offset), name_len);
-+ }
- if (cmp == 0)
- break;
- entry += 1;
---
-2.43.0
-
+++ /dev/null
-From 5122fc1718602c0a7893c235458ee9e5336b8898 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 31 Jul 2024 01:16:26 +0200
-Subject: pinctrl: at91: make it work with current gpiolib
-
-From: Thomas Blocher <thomas.blocher@ek-dev.de>
-
-[ Upstream commit 752f387faaae0ae2e84d3f496922524785e77d60 ]
-
-pinctrl-at91 currently does not support the gpio-groups devicetree
-property and has no pin-range.
-Because of this at91 gpios stopped working since patch
-commit 2ab73c6d8323fa1e ("gpio: Support GPIO controllers without pin-ranges")
-This was discussed in the patches
-commit fc328a7d1fcce263 ("gpio: Revert regression in sysfs-gpio (gpiolib.c)")
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-
-As a workaround manually set pin-range via gpiochip_add_pin_range() until
-a) pinctrl-at91 is reworked to support devicetree gpio-groups
-b) another solution as mentioned in
-commit 56e337f2cf132632 ("Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"")
-is found
-
-Signed-off-by: Thomas Blocher <thomas.blocher@ek-dev.de>
-Link: https://lore.kernel.org/5b992862-355d-f0de-cd3d-ff99e67a4ff1@ek-dev.de
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/pinctrl/pinctrl-at91.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
-index 608f55c5ba5fe..ad30fd47a4bb0 100644
---- a/drivers/pinctrl/pinctrl-at91.c
-+++ b/drivers/pinctrl/pinctrl-at91.c
-@@ -1410,8 +1410,11 @@ static int at91_pinctrl_probe(struct platform_device *pdev)
-
- /* We will handle a range of GPIO pins */
- for (i = 0; i < gpio_banks; i++)
-- if (gpio_chips[i])
-+ if (gpio_chips[i]) {
- pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
-+ gpiochip_add_pin_range(&gpio_chips[i]->chip, dev_name(info->pctl->dev), 0,
-+ gpio_chips[i]->range.pin_base, gpio_chips[i]->range.npins);
-+ }
-
- dev_info(dev, "initialized AT91 pinctrl driver\n");
-
---
-2.43.0
-
+++ /dev/null
-From 5a88abdb6858518e11feb782dca8cd9e53e8be70 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 15:24:15 +0200
-Subject: platform/x86: x86-android-tablets: Make Lenovo Yoga Tab 3 X90F DMI
- match less strict
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Hans de Goede <hdegoede@redhat.com>
-
-[ Upstream commit a3379eca24a7da5118a7d090da6f8eb8611acac8 ]
-
-There are 2G and 4G RAM versions of the Lenovo Yoga Tab 3 X90F and it
-turns out that the 2G version has a DMI product name of
-"CHERRYVIEW D1 PLATFORM" where as the 4G version has
-"CHERRYVIEW C0 PLATFORM". The sys-vendor + product-version check are
-unique enough that the product-name check is not necessary.
-
-Drop the product-name check so that the existing DMI match for the 4G
-RAM version also matches the 2G RAM version.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Link: https://lore.kernel.org/r/20240825132415.8307-1-hdegoede@redhat.com
-Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/platform/x86/x86-android-tablets/dmi.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/platform/x86/x86-android-tablets/dmi.c b/drivers/platform/x86/x86-android-tablets/dmi.c
-index 5d6c12494f082..0c9d9caf074cb 100644
---- a/drivers/platform/x86/x86-android-tablets/dmi.c
-+++ b/drivers/platform/x86/x86-android-tablets/dmi.c
-@@ -122,7 +122,6 @@ const struct dmi_system_id x86_android_tablet_ids[] __initconst = {
- /* Lenovo Yoga Tab 3 Pro YT3-X90F */
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"),
- DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
- },
- .driver_data = (void *)&lenovo_yt3_info,
---
-2.43.0
-
+++ /dev/null
-From 8dc5add9e0dd6783082ed7bf5676f18e9e7071cf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 20 Aug 2024 23:51:31 -0700
-Subject: scsi: lpfc: Fix overflow build issue
-
-From: Sherry Yang <sherry.yang@oracle.com>
-
-[ Upstream commit 3417c9574e368f0330637505f00d3814ca8854d2 ]
-
-Build failed while enabling "CONFIG_GCOV_KERNEL=y" and
-"CONFIG_GCOV_PROFILE_ALL=y" with following error:
-
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c: In function 'lpfc_get_cgnbuf_info':
-BUILDSTDERR: ./include/linux/fortify-string.h:114:33: error: '__builtin_memcpy' accessing 18446744073709551615 bytes at offsets 0 and 0 overlaps 9223372036854775807 bytes at offset -9223372036854775808 [-Werror=restrict]
-BUILDSTDERR: 114 | #define __underlying_memcpy __builtin_memcpy
-BUILDSTDERR: | ^
-BUILDSTDERR: ./include/linux/fortify-string.h:637:9: note: in expansion of macro '__underlying_memcpy'
-BUILDSTDERR: 637 | __underlying_##op(p, q, __fortify_size); \
-BUILDSTDERR: | ^~~~~~~~~~~~~
-BUILDSTDERR: ./include/linux/fortify-string.h:682:26: note: in expansion of macro '__fortify_memcpy_chk'
-BUILDSTDERR: 682 | #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \
-BUILDSTDERR: | ^~~~~~~~~~~~~~~~~~~~
-BUILDSTDERR: drivers/scsi/lpfc/lpfc_bsg.c:5468:9: note: in expansion of macro 'memcpy'
-BUILDSTDERR: 5468 | memcpy(cgn_buff, cp, cinfosz);
-BUILDSTDERR: | ^~~~~~
-
-This happens from the commit 06bb7fc0feee ("kbuild: turn on -Wrestrict by
-default"). Address this issue by using size_t type.
-
-Signed-off-by: Sherry Yang <sherry.yang@oracle.com>
-Link: https://lore.kernel.org/r/20240821065131.1180791-1-sherry.yang@oracle.com
-Reviewed-by: Justin Tee <justin.tee@broadcom.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/lpfc/lpfc_bsg.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
-index c305d16cfae9a..0166f86c7b71a 100644
---- a/drivers/scsi/lpfc/lpfc_bsg.c
-+++ b/drivers/scsi/lpfc/lpfc_bsg.c
-@@ -5409,7 +5409,7 @@ lpfc_get_cgnbuf_info(struct bsg_job *job)
- struct get_cgnbuf_info_req *cgnbuf_req;
- struct lpfc_cgn_info *cp;
- uint8_t *cgn_buff;
-- int size, cinfosz;
-+ size_t size, cinfosz;
- int rc = 0;
-
- if (job->request_len < sizeof(struct fc_bsg_request) +
---
-2.43.0
-
spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch
ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch
ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch
-asoc-sof-mediatek-add-missing-board-compatible.patch-5915
-asoc-mediatek-mt8188-mark-afe_dac_con0-register-as-v.patch-21457
-asoc-allow-module-autoloading-for-table-db1200_pids.patch-8057
-asoc-allow-module-autoloading-for-table-board_ids.patch-2785
-alsa-hda-realtek-fixed-alc256-headphone-no-sound.patch-25734
-alsa-hda-realtek-fixed-alc285-headphone-no-sound.patch-26432
-scsi-lpfc-fix-overflow-build-issue.patch-31210
-pinctrl-at91-make-it-work-with-current-gpiolib.patch-28971
-hwmon-asus-ec-sensors-remove-vrm-temp-x570-e-gaming.patch-9928
-microblaze-don-t-treat-zero-reserved-memory-regions-.patch-31555
-platform-x86-x86-android-tablets-make-lenovo-yoga-ta.patch-17246
-net-ftgmac100-ensure-tx-descriptor-updates-are-visib.patch-32270
-loongarch-define-arch_irq_init_flags-as-irq_noprobe.patch-1229
-wifi-iwlwifi-lower-message-level-for-fw-buffer-desti.patch-4051
-wifi-iwlwifi-mvm-fix-iwl_mvm_scan_fits-calculation.patch-172
-wifi-iwlwifi-mvm-fix-iwl_mvm_max_scan_ie_fw_cmd_room.patch-19348
-wifi-iwlwifi-mvm-pause-tcm-when-the-firmware-is-stop.patch-12444
-wifi-iwlwifi-mvm-don-t-wait-for-tx-queues-if-firmwar.patch-3142
-wifi-mac80211-free-skb-on-error-path-in-ieee80211_be.patch-5317
-wifi-iwlwifi-clear-trans-state-earlier-upon-error.patch-22712
-can-mcp251xfd-mcp251xfd_ring_init-check-tx-coalescin.patch-7452
-asoc-intel-soc-acpi-cht-make-lenovo-yoga-tab-3-x90f-.patch-30745
-asoc-intel-fix-module-autoloading.patch-21602
-asoc-google-fix-module-autoloading.patch-15470
-asoc-tda7419-fix-module-autoloading.patch-4059
-asoc-fix-module-autoloading.patch-28573
-spi-spidev-add-an-entry-for-elgin-jg10309-01.patch-32027
-asoc-amd-yc-add-a-quirk-for-msi-bravo-17-d7vek.patch-27127
-alsa-hda-add-hdmi-codec-id-for-intel-ptl.patch-23030
-drm-komeda-fix-an-issue-related-to-normalized-zpos.patch-6170
-spi-bcm63xx-enable-module-autoloading.patch-18248
-smb-client-fix-hang-in-wait_for_response-for-negprot.patch-21836
-x86-hyperv-set-x86_feature_tsc_known_freq-when-hyper.patch-18207
-tools-hv-rm-.-.cmd-when-make-clean.patch-32761
-block-fix-where-bio-io-priority-gets-set.patch-9532
-spi-spidev-add-missing-spi_device_id-for-jg10309-01.patch-2226
-ocfs2-add-bounds-checking-to-ocfs2_xattr_find_entry.patch-1249
-ocfs2-strict-bound-check-before-memcmp-in-ocfs2_xatt.patch-1407
drm-use-xarray-instead-of-idr-for-minors.patch
accel-use-xarray-instead-of-idr-for-minors.patch
drm-expand-max-drm-device-number-to-full-minorbits.patch
+++ /dev/null
-From a4c5163ee429b7b18996ef28a3ddec0645dd4233 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 21:40:28 -0300
-Subject: smb: client: fix hang in wait_for_response() for negproto
-
-From: Paulo Alcantara <pc@manguebit.com>
-
-[ Upstream commit 7ccc1465465d78e6411b7bd730d06e7435802b5c ]
-
-Call cifs_reconnect() to wake up processes waiting on negotiate
-protocol to handle the case where server abruptly shut down and had no
-chance to properly close the socket.
-
-Simple reproducer:
-
- ssh 192.168.2.100 pkill -STOP smbd
- mount.cifs //192.168.2.100/test /mnt -o ... [never returns]
-
-Cc: Rickard Andersson <rickaran@axis.com>
-Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/smb/client/connect.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c
-index d2307162a2de1..e325e06357ffb 100644
---- a/fs/smb/client/connect.c
-+++ b/fs/smb/client/connect.c
-@@ -656,6 +656,19 @@ allocate_buffers(struct TCP_Server_Info *server)
- static bool
- server_unresponsive(struct TCP_Server_Info *server)
- {
-+ /*
-+ * If we're in the process of mounting a share or reconnecting a session
-+ * and the server abruptly shut down (e.g. socket wasn't closed, packet
-+ * had been ACK'ed but no SMB response), don't wait longer than 20s to
-+ * negotiate protocol.
-+ */
-+ spin_lock(&server->srv_lock);
-+ if (server->tcpStatus == CifsInNegotiate &&
-+ time_after(jiffies, server->lstrp + 20 * HZ)) {
-+ spin_unlock(&server->srv_lock);
-+ cifs_reconnect(server, false);
-+ return true;
-+ }
- /*
- * We need to wait 3 echo intervals to make sure we handle such
- * situations right:
-@@ -667,7 +680,6 @@ server_unresponsive(struct TCP_Server_Info *server)
- * 65s kernel_recvmsg times out, and we see that we haven't gotten
- * a response in >60s.
- */
-- spin_lock(&server->srv_lock);
- if ((server->tcpStatus == CifsGood ||
- server->tcpStatus == CifsNeedNegotiate) &&
- (!server->ops->can_echo || server->ops->can_echo(server)) &&
---
-2.43.0
-
+++ /dev/null
-From 403343f438ee418e6393547cbbcb482669b5a5e7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 31 Aug 2024 09:42:31 +0000
-Subject: spi: bcm63xx: Enable module autoloading
-
-From: Liao Chen <liaochen4@huawei.com>
-
-[ Upstream commit 709df70a20e990d262c473ad9899314039e8ec82 ]
-
-Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
-on the alias from of_device_id table.
-
-Signed-off-by: Liao Chen <liaochen4@huawei.com>
-Link: https://patch.msgid.link/20240831094231.795024-1-liaochen4@huawei.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
-index aac41bd05f98f..2fb8d4e55c777 100644
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -472,6 +472,7 @@ static const struct of_device_id bcm63xx_spi_of_match[] = {
- { .compatible = "brcm,bcm6358-spi", .data = &bcm6358_spi_reg_offsets },
- { },
- };
-+MODULE_DEVICE_TABLE(of, bcm63xx_spi_of_match);
-
- static int bcm63xx_spi_probe(struct platform_device *pdev)
- {
---
-2.43.0
-
+++ /dev/null
-From e35e429c9aafc2dc68d02b0b14236aa23a7dc7ab Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 28 Aug 2024 15:00:56 -0300
-Subject: spi: spidev: Add an entry for elgin,jg10309-01
-
-From: Fabio Estevam <festevam@gmail.com>
-
-[ Upstream commit 5f3eee1eef5d0edd23d8ac0974f56283649a1512 ]
-
-The rv1108-elgin-r1 board has an LCD controlled via SPI in userspace.
-The marking on the LCD is JG10309-01.
-
-Add the "elgin,jg10309-01" compatible string.
-
-Signed-off-by: Fabio Estevam <festevam@gmail.com>
-Reviewed-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patch.msgid.link/20240828180057.3167190-2-festevam@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index b97206d47ec6d..edc47a97cbe41 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -735,6 +735,7 @@ static int spidev_of_check(struct device *dev)
- static const struct of_device_id spidev_dt_ids[] = {
- { .compatible = "cisco,spi-petra", .data = &spidev_of_check },
- { .compatible = "dh,dhcom-board", .data = &spidev_of_check },
-+ { .compatible = "elgin,jg10309-01", .data = &spidev_of_check },
- { .compatible = "lineartechnology,ltc2488", .data = &spidev_of_check },
- { .compatible = "lwn,bk4", .data = &spidev_of_check },
- { .compatible = "menlo,m53cpld", .data = &spidev_of_check },
---
-2.43.0
-
+++ /dev/null
-From 54f25fe2feaba5bdeb3ae87c99dbb5dad5b6b1e8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 3 Sep 2024 14:32:27 +0200
-Subject: spi: spidev: Add missing spi_device_id for jg10309-01
-
-From: Geert Uytterhoeven <geert+renesas@glider.be>
-
-[ Upstream commit 5478a4f7b94414def7b56d2f18bc2ed9b0f3f1f2 ]
-
-When the of_device_id entry for "elgin,jg10309-01" was added, the
-corresponding spi_device_id was forgotten, causing a warning message
-during boot-up:
-
- SPI driver spidev has no spi_device_id for elgin,jg10309-01
-
-Fix module autoloading and shut up the warning by adding the missing
-entry.
-
-Fixes: 5f3eee1eef5d0edd ("spi: spidev: Add an entry for elgin,jg10309-01")
-Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
-Link: https://patch.msgid.link/54bbb9d8a8db7e52d13e266f2d4a9bcd8b42a98a.1725366625.git.geert+renesas@glider.be
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/spi/spidev.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
-index edc47a97cbe41..16bb4fc3a4ba9 100644
---- a/drivers/spi/spidev.c
-+++ b/drivers/spi/spidev.c
-@@ -706,6 +706,7 @@ static struct class *spidev_class;
- static const struct spi_device_id spidev_spi_ids[] = {
- { .name = "bh2228fv" },
- { .name = "dh2228fv" },
-+ { .name = "jg10309-01" },
- { .name = "ltc2488" },
- { .name = "sx1301" },
- { .name = "bk4" },
---
-2.43.0
-
+++ /dev/null
-From 8df0615188be0354dbfdadb8f7ce31ac44d5a9d0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 2 Sep 2024 12:21:03 +0800
-Subject: tools: hv: rm .*.cmd when make clean
-
-From: zhang jiao <zhangjiao2@cmss.chinamobile.com>
-
-[ Upstream commit 5e5cc1eb65256e6017e3deec04f9806f2f317853 ]
-
-rm .*.cmd when make clean
-
-Signed-off-by: zhang jiao <zhangjiao2@cmss.chinamobile.com>
-Reviewed-by: Saurabh Sengar <ssengar@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240902042103.5867-1-zhangjiao2@cmss.chinamobile.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240902042103.5867-1-zhangjiao2@cmss.chinamobile.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/hv/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/hv/Makefile b/tools/hv/Makefile
-index fe770e679ae8f..5643058e2d377 100644
---- a/tools/hv/Makefile
-+++ b/tools/hv/Makefile
-@@ -47,7 +47,7 @@ $(OUTPUT)hv_fcopy_daemon: $(HV_FCOPY_DAEMON_IN)
-
- clean:
- rm -f $(ALL_PROGRAMS)
-- find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete
-+ find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete -o -name '\.*.cmd' -delete
-
- install: $(ALL_PROGRAMS)
- install -d -m 755 $(DESTDIR)$(sbindir); \
---
-2.43.0
-
+++ /dev/null
-From 9dfcd6367430fbed82b93e44470403882c011efa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:01 +0300
-Subject: wifi: iwlwifi: clear trans->state earlier upon error
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 094513f8a2fbddee51b055d8035f995551f98fce ]
-
-When the firmware crashes, we first told the op_mode and only then,
-changed the transport's state. This is a problem if the op_mode's
-nic_error() handler needs to send a host command: it'll see that the
-transport's state still reflects that the firmware is alive.
-
-Today, this has no consequences since we set the STATUS_FW_ERROR bit and
-that will prevent sending host commands. iwl_fw_dbg_stop_restart_recording
-looks at this bit to know not to send a host command for example.
-
-To fix the hibernation, we needed to reset the firmware without having
-an error and checking STATUS_FW_ERROR to see whether the firmware is
-alive will no longer hold, so this change is necessary as well.
-
-Change the flow a bit.
-Change trans->state before calling the op_mode's nic_error() method and
-check trans->state instead of STATUS_FW_ERROR. This will keep the
-current behavior of iwl_fw_dbg_stop_restart_recording upon firmware
-error, and it'll allow us to call iwl_fw_dbg_stop_restart_recording
-safely even if STATUS_FW_ERROR is clear, but yet, the firmware is not
-alive.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.9d7427fbdfd7.Ia056ca57029a382c921d6f7b6a6b28fc480f2f22@changeid
-[I missed this was a dependency for the hibernation fix, changed
- the commit message a bit accordingly]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 2 +-
- drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-index 62aee4965021d..2a408e1ce06ec 100644
---- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-@@ -3206,7 +3206,7 @@ void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
- {
- int ret __maybe_unused = 0;
-
-- if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status))
-+ if (!iwl_trans_fw_running(fwrt->trans))
- return;
-
- if (fw_has_capa(&fwrt->fw->ucode_capa,
-diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-index 9dcc1506bd0b0..e8f48cb8d2da1 100644
---- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
-@@ -1554,8 +1554,8 @@ static inline void iwl_trans_fw_error(struct iwl_trans *trans, bool sync)
-
- /* prevent double restarts due to the same erroneous FW */
- if (!test_and_set_bit(STATUS_FW_ERROR, &trans->status)) {
-- iwl_op_mode_nic_error(trans->op_mode, sync);
- trans->state = IWL_TRANS_NO_FW;
-+ iwl_op_mode_nic_error(trans->op_mode, sync);
- }
- }
-
---
-2.43.0
-
+++ /dev/null
-From 6283e674ea715665a77ec55e76e404166897f753 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:13 +0300
-Subject: wifi: iwlwifi: lower message level for FW buffer destination
-
-From: Benjamin Berg <benjamin.berg@intel.com>
-
-[ Upstream commit f8a129c1e10256c785164ed5efa5d17d45fbd81b ]
-
-An invalid buffer destination is not a problem for the driver and it
-does not make sense to report it with the KERN_ERR message level. As
-such, change the message to use IWL_DEBUG_FW.
-
-Reported-by: Len Brown <lenb@kernel.org>
-Closes: https://lore.kernel.org/r/CAJvTdKkcxJss=DM2sxgv_MR5BeZ4_OC-3ad6tA40TYH2yqHCWw@mail.gmail.com
-Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.20abf78f05bc.Ifbcecc2ae9fb40b9698302507dcba8b922c8d856@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-index fa4a145468601..9be41673650ee 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-@@ -68,7 +68,8 @@ iwl_pcie_ctxt_info_dbg_enable(struct iwl_trans *trans,
- }
- break;
- default:
-- IWL_ERR(trans, "WRT: Invalid buffer destination\n");
-+ IWL_DEBUG_FW(trans, "WRT: Invalid buffer destination (%d)\n",
-+ le32_to_cpu(fw_mon_cfg->buf_location));
- }
- out:
- if (dbg_flags)
---
-2.43.0
-
+++ /dev/null
-From 1add549c4258f5762ba6bb91c8c5b88f50d178b5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:04 +0300
-Subject: wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 3a84454f5204718ca5b4ad2c1f0bf2031e2403d1 ]
-
-There is a WARNING in iwl_trans_wait_tx_queues_empty() (that was
-recently converted from just a message), that can be hit if we
-wait for TX queues to become empty after firmware died. Clearly,
-we can't expect anything from the firmware after it's declared dead.
-
-Don't call iwl_trans_wait_tx_queues_empty() in this case. While it could
-be a good idea to stop the flow earlier, the flush functions do some
-maintenance work that is not related to the firmware, so keep that part
-of the code running even when the firmware is not running.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.a7cbd794cee9.I44a739fbd4ffcc46b83844dd1c7b2eb0c7b270f6@changeid
-[edit commit message]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-index f973efbbc3795..d2daea3b1f38a 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
-@@ -5589,6 +5589,10 @@ static void iwl_mvm_flush_no_vif(struct iwl_mvm *mvm, u32 queues, bool drop)
- int i;
-
- if (!iwl_mvm_has_new_tx_api(mvm)) {
-+ /* we can't ask the firmware anything if it is dead */
-+ if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
-+ return;
- if (drop) {
- mutex_lock(&mvm->mutex);
- iwl_mvm_flush_tx_path(mvm,
-@@ -5673,8 +5677,11 @@ void iwl_mvm_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
-
- /* this can take a while, and we may need/want other operations
- * to succeed while doing this, so do it without the mutex held
-+ * If the firmware is dead, this can't work...
- */
-- if (!drop && !iwl_mvm_has_new_tx_api(mvm))
-+ if (!drop && !iwl_mvm_has_new_tx_api(mvm) &&
-+ !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
-+ &mvm->status))
- iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
- }
-
---
-2.43.0
-
+++ /dev/null
-From e56b5d64cf7bfdb13b383c205491a8f7c48d5543 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:06 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_max_scan_ie_fw_cmd_room()
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit 916a5d9c5354c426220a0a6533a5e8ea1287d6ea ]
-
-Driver creates also the WFA TPC element, consider that in the
-calculation.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.e710ce446b7f.I2715c6742e9c3d160e2ba41bc4b35de370d2ce34@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index c61068144c638..626620cd892f0 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -48,6 +48,8 @@
- /* Number of iterations on the channel for mei filtered scan */
- #define IWL_MEI_SCAN_NUM_ITER 5U
-
-+#define WFA_TPC_IE_LEN 9
-+
- struct iwl_mvm_scan_timing_params {
- u32 suspend_time;
- u32 max_out_time;
-@@ -296,8 +298,8 @@ static int iwl_mvm_max_scan_ie_fw_cmd_room(struct iwl_mvm *mvm)
-
- max_probe_len = SCAN_OFFLOAD_PROBE_REQ_SIZE;
-
-- /* we create the 802.11 header and SSID element */
-- max_probe_len -= 24 + 2;
-+ /* we create the 802.11 header SSID element and WFA TPC element */
-+ max_probe_len -= 24 + 2 + WFA_TPC_IE_LEN;
-
- /* DS parameter set element is added on 2.4GHZ band if required */
- if (iwl_mvm_rrm_scan_needed(mvm))
-@@ -724,8 +726,6 @@ static u8 *iwl_mvm_copy_and_insert_ds_elem(struct iwl_mvm *mvm, const u8 *ies,
- return newpos;
- }
-
--#define WFA_TPC_IE_LEN 9
--
- static void iwl_mvm_add_tpc_report_ie(u8 *pos)
- {
- pos[0] = WLAN_EID_VENDOR_SPECIFIC;
---
-2.43.0
-
+++ /dev/null
-From 02f2c3eb3007f98cac19626506598068a38d0b03 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:05 +0300
-Subject: wifi: iwlwifi: mvm: fix iwl_mvm_scan_fits() calculation
-
-From: Daniel Gabay <daniel.gabay@intel.com>
-
-[ Upstream commit d44162280899c3fc2c6700e21e491e71c3c96e3d ]
-
-The calculation should consider also the 6GHz IE's len, fix that.
-In addition, in iwl_mvm_sched_scan_start() the scan_fits helper is
-called only in case non_psc_incldued is true, but it should be called
-regardless, fix that as well.
-
-Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
-Reviewed-by: Ilan Peer <ilan.peer@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.7db825442fd2.I99f4d6587709de02072fd57957ec7472331c6b1d@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 ++++++++++---------
- 1 file changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-index 9ca90c0806c0f..c61068144c638 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
-@@ -830,8 +830,8 @@ static inline bool iwl_mvm_scan_fits(struct iwl_mvm *mvm, int n_ssids,
- return ((n_ssids <= PROBE_OPTION_MAX) &&
- (n_channels <= mvm->fw->ucode_capa.n_scan_channels) &
- (ies->common_ie_len +
-- ies->len[NL80211_BAND_2GHZ] +
-- ies->len[NL80211_BAND_5GHZ] <=
-+ ies->len[NL80211_BAND_2GHZ] + ies->len[NL80211_BAND_5GHZ] +
-+ ies->len[NL80211_BAND_6GHZ] <=
- iwl_mvm_max_scan_ie_fw_cmd_room(mvm)));
- }
-
-@@ -3118,18 +3118,16 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- params.n_channels = j;
- }
-
-- if (non_psc_included &&
-- !iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-- kfree(params.channels);
-- return -ENOBUFS;
-+ if (!iwl_mvm_scan_fits(mvm, req->n_ssids, ies, params.n_channels)) {
-+ ret = -ENOBUFS;
-+ goto out;
- }
-
- uid = iwl_mvm_build_scan_cmd(mvm, vif, &hcmd, ¶ms, type);
--
-- if (non_psc_included)
-- kfree(params.channels);
-- if (uid < 0)
-- return uid;
-+ if (uid < 0) {
-+ ret = uid;
-+ goto out;
-+ }
-
- ret = iwl_mvm_send_cmd(mvm, &hcmd);
- if (!ret) {
-@@ -3146,6 +3144,9 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
- mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;
- }
-
-+out:
-+ if (non_psc_included)
-+ kfree(params.channels);
- return ret;
- }
-
---
-2.43.0
-
+++ /dev/null
-From f61d3b6d22b193b141c950335b5f2e19bc119c35 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 25 Aug 2024 19:17:10 +0300
-Subject: wifi: iwlwifi: mvm: pause TCM when the firmware is stopped
-
-From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-
-[ Upstream commit 0668ebc8c2282ca1e7eb96092a347baefffb5fe7 ]
-
-Not doing so will make us send a host command to the transport while the
-firmware is not alive, which will trigger a WARNING.
-
-bad state = 0
-WARNING: CPU: 2 PID: 17434 at drivers/net/wireless/intel/iwlwifi/iwl-trans.c:115 iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-RIP: 0010:iwl_trans_send_cmd+0x1cb/0x1e0 [iwlwifi]
-Call Trace:
- <TASK>
- iwl_mvm_send_cmd+0x40/0xc0 [iwlmvm]
- iwl_mvm_config_scan+0x198/0x260 [iwlmvm]
- iwl_mvm_recalc_tcm+0x730/0x11d0 [iwlmvm]
- iwl_mvm_tcm_work+0x1d/0x30 [iwlmvm]
- process_one_work+0x29e/0x640
- worker_thread+0x2df/0x690
- ? rescuer_thread+0x540/0x540
- kthread+0x192/0x1e0
- ? set_kthread_struct+0x90/0x90
- ret_from_fork+0x22/0x30
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-Link: https://patch.msgid.link/20240825191257.5abe71ca1b6b.I97a968cb8be1f24f94652d9b110ecbf6af73f89e@changeid
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-index 945524470a1e9..b2cf5aeff7e3c 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
-@@ -1418,6 +1418,8 @@ void iwl_mvm_stop_device(struct iwl_mvm *mvm)
-
- clear_bit(IWL_MVM_STATUS_FIRMWARE_RUNNING, &mvm->status);
-
-+ iwl_mvm_pause_tcm(mvm, false);
-+
- iwl_fw_dbg_stop_sync(&mvm->fwrt);
- iwl_trans_stop_device(mvm->trans);
- iwl_free_fw_paging(&mvm->fwrt);
---
-2.43.0
-
+++ /dev/null
-From bf3fc3bf3575857960bb2e6f956decc398d9047f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 5 Aug 2024 17:20:35 +0300
-Subject: wifi: mac80211: free skb on error path in ieee80211_beacon_get_ap()
-
-From: Dmitry Antipov <dmantipov@yandex.ru>
-
-[ Upstream commit 786c5be9ac29a39b6f37f1fdd2ea59d0fe35d525 ]
-
-In 'ieee80211_beacon_get_ap()', free allocated skb in case of error
-returned by 'ieee80211_beacon_protect()'. Compile tested only.
-
-Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
-Link: https://patch.msgid.link/20240805142035.227847-1-dmantipov@yandex.ru
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/mac80211/tx.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index 46b02a6ae0a36..415e951e4138a 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -5311,8 +5311,10 @@ ieee80211_beacon_get_ap(struct ieee80211_hw *hw,
- if (beacon->tail)
- skb_put_data(skb, beacon->tail, beacon->tail_len);
-
-- if (ieee80211_beacon_protect(skb, local, sdata, link) < 0)
-+ if (ieee80211_beacon_protect(skb, local, sdata, link) < 0) {
-+ dev_kfree_skb(skb);
- return NULL;
-+ }
-
- ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
- chanctx_conf, csa_off_base);
---
-2.43.0
-
+++ /dev/null
-From a9a481e5c4ee1e388bd13da82cf024f5086d8cea Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 5 Jun 2024 19:55:59 -0700
-Subject: x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides
- frequency
-
-From: Michael Kelley <mhklinux@outlook.com>
-
-[ Upstream commit 8fcc514809de41153b43ccbe1a0cdf7f72b78e7e ]
-
-A Linux guest on Hyper-V gets the TSC frequency from a synthetic MSR, if
-available. In this case, set X86_FEATURE_TSC_KNOWN_FREQ so that Linux
-doesn't unnecessarily do refined TSC calibration when setting up the TSC
-clocksource.
-
-With this change, a message such as this is no longer output during boot
-when the TSC is used as the clocksource:
-
-[ 1.115141] tsc: Refined TSC clocksource calibration: 2918.408 MHz
-
-Furthermore, the guest and host will have exactly the same view of the
-TSC frequency, which is important for features such as the TSC deadline
-timer that are emulated by the Hyper-V host.
-
-Signed-off-by: Michael Kelley <mhklinux@outlook.com>
-Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
-Link: https://lore.kernel.org/r/20240606025559.1631-1-mhklinux@outlook.com
-Signed-off-by: Wei Liu <wei.liu@kernel.org>
-Message-ID: <20240606025559.1631-1-mhklinux@outlook.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/cpu/mshyperv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
-index fac4b4116efe1..bcb2d640a0cd8 100644
---- a/arch/x86/kernel/cpu/mshyperv.c
-+++ b/arch/x86/kernel/cpu/mshyperv.c
-@@ -423,6 +423,7 @@ static void __init ms_hyperv_init_platform(void)
- ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
- x86_platform.calibrate_tsc = hv_get_tsc_khz;
- x86_platform.calibrate_cpu = hv_get_tsc_khz;
-+ setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
- }
-
- if (ms_hyperv.priv_high & HV_ISOLATION) {
---
-2.43.0
-