linux-gbmc(lts): 6.6 -> 6.12

Upgrade to the next lts version so we keep receiving updated patches.
Nothing is using this version in the default build, so it's trivial to
move forward.

Tested: Booted on AMD Rome, Verified that the sensors and FRU devices
look as expected. Networking is still working and we don't see systemd
service failures.

Google-Bug-Id: 324970585
Change-Id: I67a5e9bbf6c4157aa6b9494737798e4ddc02826d
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/recipes-kernel/linux/files/0001-mmc-sdhci-npcm-Add-NPCM-SDHCI-driver.patch b/recipes-kernel/linux/files/0001-mmc-sdhci-npcm-Add-NPCM-SDHCI-driver.patch
deleted file mode 100644
index df18845..0000000
--- a/recipes-kernel/linux/files/0001-mmc-sdhci-npcm-Add-NPCM-SDHCI-driver.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From b0868a9b4606304a0a70e8f60e53a313776ef74f Mon Sep 17 00:00:00 2001
-From: Tomer Maimon <tmaimon77@gmail.com>
-Date: Mon, 2 Oct 2023 23:06:10 +0300
-Subject: [PATCH] mmc: sdhci-npcm: Add NPCM SDHCI driver
-
-Add Nuvoton NPCM BMC sdhci-pltfm controller driver.
-
-Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
-Acked-by: Adrian Hunter <adrian.hunter@intel.com>
-Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
-Link: https://lore.kernel.org/r/20231002200610.129799-3-tmaimon77@gmail.com
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-(cherry picked from commit 0ebebb21c48408bfa96a6fb18aa1a5bb543e2312)
-Patch Tracking Bug: b/310037171
-Upstream-Status: Accepted
-Justification: Required for nuvoton BMCs
----
- drivers/mmc/host/Kconfig      |  8 +++
- drivers/mmc/host/Makefile     |  1 +
- drivers/mmc/host/sdhci-npcm.c | 94 +++++++++++++++++++++++++++++++++++
- 3 files changed, 103 insertions(+)
- create mode 100644 drivers/mmc/host/sdhci-npcm.c
-
-diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
-index 554e67103c1a..3999d4fddc73 100644
---- a/drivers/mmc/host/Kconfig
-+++ b/drivers/mmc/host/Kconfig
-@@ -429,6 +429,14 @@ config MMC_SDHCI_IPROC
- 
- 	  If unsure, say N.
- 
-+config MMC_SDHCI_NPCM
-+	tristate "Secure Digital Host Controller Interface support for NPCM"
-+	depends on ARCH_NPCM || COMPILE_TEST
-+	depends on MMC_SDHCI_PLTFM
-+	help
-+	  This provides support for the SD/eMMC controller found in
-+	  NPCM BMC family SoCs.
-+
- config MMC_MESON_GX
- 	tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
- 	depends on ARCH_MESON|| COMPILE_TEST
-diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
-index a693fa3d3f1c..d0be4465f3ec 100644
---- a/drivers/mmc/host/Makefile
-+++ b/drivers/mmc/host/Makefile
-@@ -89,6 +89,7 @@ obj-$(CONFIG_MMC_SDHCI_OF_DWCMSHC)	+= sdhci-of-dwcmshc.o
- obj-$(CONFIG_MMC_SDHCI_OF_SPARX5)	+= sdhci-of-sparx5.o
- obj-$(CONFIG_MMC_SDHCI_BCM_KONA)	+= sdhci-bcm-kona.o
- obj-$(CONFIG_MMC_SDHCI_IPROC)		+= sdhci-iproc.o
-+obj-$(CONFIG_MMC_SDHCI_NPCM)		+= sdhci-npcm.o
- obj-$(CONFIG_MMC_SDHCI_MSM)		+= sdhci-msm.o
- obj-$(CONFIG_MMC_SDHCI_ST)		+= sdhci-st.o
- obj-$(CONFIG_MMC_SDHCI_MICROCHIP_PIC32)	+= sdhci-pic32.o
-diff --git a/drivers/mmc/host/sdhci-npcm.c b/drivers/mmc/host/sdhci-npcm.c
-new file mode 100644
-index 000000000000..5bf9d18f364e
---- /dev/null
-+++ b/drivers/mmc/host/sdhci-npcm.c
-@@ -0,0 +1,94 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * NPCM SDHC MMC host controller driver.
-+ *
-+ * Copyright (c) 2023 Nuvoton Technology corporation.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/err.h>
-+#include <linux/io.h>
-+#include <linux/mmc/host.h>
-+#include <linux/mmc/mmc.h>
-+#include <linux/mod_devicetable.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+
-+#include "sdhci-pltfm.h"
-+
-+static const struct sdhci_pltfm_data npcm7xx_sdhci_pdata = {
-+	.quirks  = SDHCI_QUIRK_DELAY_AFTER_POWER,
-+	.quirks2 = SDHCI_QUIRK2_STOP_WITH_TC |
-+		   SDHCI_QUIRK2_NO_1_8_V,
-+};
-+
-+static const struct sdhci_pltfm_data npcm8xx_sdhci_pdata = {
-+	.quirks  = SDHCI_QUIRK_DELAY_AFTER_POWER,
-+	.quirks2 = SDHCI_QUIRK2_STOP_WITH_TC,
-+};
-+
-+static int npcm_sdhci_probe(struct platform_device *pdev)
-+{
-+	const struct sdhci_pltfm_data *data;
-+	struct sdhci_pltfm_host *pltfm_host;
-+	struct device *dev = &pdev->dev;
-+	struct sdhci_host *host;
-+	u32 caps;
-+	int ret;
-+
-+	data = of_device_get_match_data(dev);
-+	if (!data)
-+		return -EINVAL;
-+
-+	host = sdhci_pltfm_init(pdev, data, 0);
-+	if (IS_ERR(host))
-+		return PTR_ERR(host);
-+
-+	pltfm_host = sdhci_priv(host);
-+
-+	pltfm_host->clk = devm_clk_get_optional_enabled(dev, NULL);
-+	if (IS_ERR(pltfm_host->clk)) {
-+		ret = PTR_ERR(pltfm_host->clk);
-+		goto err_sdhci;
-+	}
-+
-+	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
-+	if (caps & SDHCI_CAN_DO_8BIT)
-+		host->mmc->caps |= MMC_CAP_8_BIT_DATA;
-+
-+	ret = mmc_of_parse(host->mmc);
-+	if (ret)
-+		goto err_sdhci;
-+
-+	ret = sdhci_add_host(host);
-+	if (ret)
-+		goto err_sdhci;
-+
-+	return 0;
-+
-+err_sdhci:
-+	sdhci_pltfm_free(pdev);
-+	return ret;
-+}
-+
-+static const struct of_device_id npcm_sdhci_of_match[] = {
-+	{ .compatible = "nuvoton,npcm750-sdhci", .data = &npcm7xx_sdhci_pdata },
-+	{ .compatible = "nuvoton,npcm845-sdhci", .data = &npcm8xx_sdhci_pdata },
-+	{ }
-+};
-+MODULE_DEVICE_TABLE(of, npcm_sdhci_of_match);
-+
-+static struct platform_driver npcm_sdhci_driver = {
-+	.driver = {
-+		.name	= "npcm-sdhci",
-+		.of_match_table = npcm_sdhci_of_match,
-+		.pm	= &sdhci_pltfm_pmops,
-+	},
-+	.probe		= npcm_sdhci_probe,
-+	.remove_new	= sdhci_pltfm_remove,
-+};
-+module_platform_driver(npcm_sdhci_driver);
-+
-+MODULE_DESCRIPTION("NPCM Secure Digital Host Controller Interface driver");
-+MODULE_AUTHOR("Tomer Maimon <tomer.maimon@nuvoton.com>");
-+MODULE_LICENSE("GPL");
--- 
-2.42.0.869.gea05f2083d-goog
-
diff --git a/recipes-kernel/linux/files/0001-pinctrl-npcm7xx-prevent-glitch-when-setting-the-GPIO.patch b/recipes-kernel/linux/files/0001-pinctrl-npcm7xx-prevent-glitch-when-setting-the-GPIO.patch
deleted file mode 100644
index 4f9682e..0000000
--- a/recipes-kernel/linux/files/0001-pinctrl-npcm7xx-prevent-glitch-when-setting-the-GPIO.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 43d61f90a54f6eb440a77449213754b0c738ca50 Mon Sep 17 00:00:00 2001
-From: Tomer Maimon <tmaimon77@gmail.com>
-Date: Mon, 8 May 2023 13:02:35 +0300
-Subject: [PATCH] pinctrl: npcm7xx: prevent glitch when setting the GPIO to
- output high
-
-Enable GPIO output after setting the output value to prevent a glitch
-when pinctrl driver sets gpio pin to output high and the pin is in
-the default state (high->low->high).
-
-Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
-Signed-off-by: William A. Kennington III <william@wkennington.com>
----
- drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c b/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
-index 1e658721aaba..62a46d824b46 100644
---- a/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
-+++ b/drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c
-@@ -1790,8 +1790,8 @@ static int npcm7xx_config_set_one(struct npcm7xx_pinctrl *npcm,
- 		bank->direction_input(&bank->gc, pin % bank->gc.ngpio);
- 		break;
- 	case PIN_CONFIG_OUTPUT:
--		iowrite32(gpio, bank->base + NPCM7XX_GP_N_OES);
- 		bank->direction_output(&bank->gc, pin % bank->gc.ngpio, arg);
-+		iowrite32(gpio, bank->base + NPCM7XX_GP_N_OES);
- 		break;
- 	case PIN_CONFIG_DRIVE_PUSH_PULL:
- 		npcm_gpio_clr(&bank->gc, bank->base + NPCM7XX_GP_N_OTYP, gpio);
--- 
-2.43.0.rc0.421.g78406f8d94-goog
-
diff --git a/recipes-kernel/linux/linux-gbmc_lts.bb b/recipes-kernel/linux/linux-gbmc_lts.bb
index ec25221..0f23e0c 100644
--- a/recipes-kernel/linux/linux-gbmc_lts.bb
+++ b/recipes-kernel/linux/linux-gbmc_lts.bb
@@ -1,27 +1,31 @@
 require linux-gbmc.inc
 
 KERNEL_VERSION_SANITY_SKIP = "1"
-LINUX_MAJOR = "6.6"
-LINUX_VERSION = "${LINUX_MAJOR}.42"
+LINUX_MAJOR = "6.12"
+LINUX_VERSION = "${LINUX_MAJOR}.16"
 PV = "lts-${LINUX_VERSION}"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 S = "${WORKDIR}/linux-${LINUX_MAJOR}"
 
 SRC_URI:prepend = " \
-  ${KERNELORG_MIRROR}/linux/kernel/v6.x/linux-${LINUX_MAJOR}.tar.xz;sha256sum=d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0 \
-  ${KERNELORG_MIRROR}/linux/kernel/v6.x/patch-${LINUX_VERSION}.xz;sha256sum=ee862116da0f361ce3d569547557e6d308b0f7228733bfc81b52eadcad9acdb5 \
+  ${KERNELORG_MIRROR}/linux/kernel/v6.x/linux-${LINUX_MAJOR}.tar.xz;sha256sum=b1a2562be56e42afb3f8489d4c2a7ac472ac23098f1ef1c1e40da601f54625eb \
+  ${KERNELORG_MIRROR}/linux/kernel/v6.x/patch-${LINUX_VERSION}.xz;sha256sum=befcc91870534b297f35ac6cfc861ab8ecc0f97d4e96c442904c731d4a0f3ae7 \
   "
 
 SRC_URI:append = " \
   file://0001-jffs2-add-RENAME_EXCHANGE-support.patch \
   file://0001-mux-Make-it-possible-to-select-MULTIPLEXER-if-EXPERT.patch \
   file://0001-ARM-npcm-Add-CPU-hotplug-callbacks-for-kexec-support.patch \
-  file://0001-mmc-sdhci-npcm-Add-NPCM-SDHCI-driver.patch \
-  file://0001-pinctrl-npcm7xx-prevent-glitch-when-setting-the-GPIO.patch \
-  file://0001-hwmon-Add-driver-for-MPS-MPQ8785-Synchronous-Step-Do.patch \
-  file://0001-hwmon-pmbus-Add-ltc4286-driver.patch \
   file://0001-hwmon-max34451-Workaround-for-lost-page.patch \
+  file://0001-ARM-dts-nuvoton-Add-UDC-nodes.patch \
+  file://0001-i2c-npcm-correct-the-read-write-operation-procedure.patch \
+  file://0002-i2c-npcm-use-a-software-flag-to-indicate-a-BER-condi.patch \
+  file://0003-i2c-npcm-Modify-timeout-evaluation-mechanism.patch \
+  file://0004-i2c-npcm-Assign-client-address-earlier-for-i2c_recov.patch \
+  file://0005-i2c-npcm-use-i2c-frequency-table.patch \
+  file://0006-i2c-npcm-Enable-slave-in-eob-interrupt.patch \
+  file://DOWNSTREAM_0001-i2c-npcm-speed-set.patch \
   "
 
 # Newer kernels don't have HGPIO in pinctrl names