Linux 6.0.10
Greg Kroah-Hartman
maintainerDocumentation/driver-api/miscellaneous.rst +2 -3
@@ -16,12 +16,11 @@ Parallel Port Devices 16x50 UART Driver ================= -.. kernel-doc:: drivers/tty/serial/serial_core.c - :export: - .. kernel-doc:: drivers/tty/serial/8250/8250_core.c :export: +See serial/driver.rst for related APIs. + Pulse-Width Modulation (PWM) ============================
Documentation/process/code-of-conduct-interpretation.rst +1 -1
@@ -51,7 +51,7 @@ the Technical Advisory Board (TAB) or other maintainers if you're uncertain how to handle situations that come up. It will not be considered a violation report unless you want it to be. If you are uncertain about approaching the TAB or any other maintainers, please -reach out to our conflict mediator, Joanna Lee <[email protected]>. +reach out to our conflict mediator, Joanna Lee <[email protected]>. In the end, "be kind to each other" is really what the end goal is for everybody. We know everyone is human and we all fail at times, but the
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 0 -SUBLEVEL = 9 +SUBLEVEL = 10 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm/boot/dts/imx7s.dtsi +2 -2
@@ -1270,10 +1270,10 @@ dma_apbh: dma-apbh@33000000 { clocks = <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>; }; - gpmi: nand-controller@33002000{ + gpmi: nand-controller@33002000 { compatible = "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/sama7g5-pinfunc.h +1 -1
@@ -261,7 +261,7 @@#define PIN_PB2__FLEXCOM6_IO0 PINMUX_PIN(PIN_PB2, 2, 1)#define PIN_PB2__ADTRG PINMUX_PIN(PIN_PB2, 3, 1)#define PIN_PB2__A20 PINMUX_PIN(PIN_PB2, 4, 1) -#define PIN_PB2__FLEXCOM11_IO0 PINMUX_PIN(PIN_PB2, 6, 3) +#define PIN_PB2__FLEXCOM11_IO1 PINMUX_PIN(PIN_PB2, 6, 3)#define PIN_PB3 35#define PIN_PB3__GPIO PINMUX_PIN(PIN_PB3, 0, 0)#define PIN_PB3__RF1 PINMUX_PIN(PIN_PB3, 1, 1)
arch/arm/mach-at91/pm_suspend.S +6 -1
@@ -169,10 +169,15 @@ sr_ena_2: cmp tmp1, #UDDRC_STAT_SELFREF_TYPE_SW bne sr_ena_2 - /* Put DDR PHY's DLL in bypass mode for non-backup modes. */ + /* Disable DX DLLs for non-backup modes. */ cmp r7, #AT91_PM_BACKUP beq sr_ena_3 + /* Do not soft reset the AC DLL. */ + ldr tmp1, [r3, DDR3PHY_ACDLLCR] + bic tmp1, tmp1, DDR3PHY_ACDLLCR_DLLSRST + str tmp1, [r3, DDR3PHY_ACDLLCR] + /* Disable DX DLLs. */ ldr tmp1, [r3, #DDR3PHY_DX0DLLCR] orr tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts +26 -6
@@ -34,11 +34,25 @@ reg_usdhc2_vmmc: regulator-vmmc { off-on-delay-us = <12000>; }; - extcon_usbotg1: extcon-usbotg1 { - compatible = "linux,extcon-usb-gpio"; + connector { + compatible = "gpio-usb-b-connector", "usb-b-connector"; + type = "micro"; + label = "X19"; pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usb1_extcon>; - id-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&pinctrl_usb1_connector>; + id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usb_dr_connector: endpoint { + remote-endpoint = <&usb1_drd_sw>; + }; + }; + }; }; };
@@ -105,13 +119,19 @@ &usbotg1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg1>; dr_mode = "otg"; - extcon = <&extcon_usbotg1>; srp-disable; hnp-disable; adp-disable; power-active-high; over-current-active-low; + usb-role-switch; status = "okay"; + + port { + usb1_drd_sw: endpoint { + remote-endpoint = <&usb_dr_connector>; + }; + }; }; &usbotg2 {
@@ -231,7 +251,7 @@ pinctrl_usbotg1: usbotg1grp { <MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x84>; }; - pinctrl_usb1_extcon: usb1-extcongrp { + pinctrl_usb1_connector: usb1-connectorgrp { fsl,pins = <MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x1c0>; };
arch/arm64/boot/dts/freescale/imx8mm.dtsi +2 -2
@@ -1244,10 +1244,10 @@ dma_apbh: dma-controller@33000000 { clocks = <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>; }; - gpmi: nand-controller@33002000{ + gpmi: nand-controller@33002000 { compatible = "fsl,imx8mm-gpmi-nand", "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
arch/arm64/boot/dts/freescale/imx8mn.dtsi +1 -1
@@ -1102,7 +1102,7 @@ dma_apbh: dma-controller@33000000 { gpmi: nand-controller@33002000 { compatible = "fsl,imx8mn-gpmi-nand", "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
arch/arm64/boot/dts/freescale/imx93-pinfunc.h +0 -0
arch/arm64/boot/dts/qcom/ipq8074.dtsi +1 -1
@@ -668,7 +668,7 @@ watchdog: watchdog@b017000 { apcs_glb: mailbox@b111000 { compatible = "qcom,ipq8074-apcs-apps-global"; - reg = <0x0b111000 0x6000>; + reg = <0x0b111000 0x1000>; #clock-cells = <1>; #mbox-cells = <1>;
arch/arm64/boot/dts/qcom/sa8155p-adp.dts +12 -1
@@ -43,7 +43,6 @@ vreg_s4a_1p8: smps4 { regulator-always-on; regulator-boot-on; - regulator-allow-set-load; vin-supply = <&vreg_3p3>; };
@@ -137,6 +136,9 @@ vreg_l5a_0p88: ldo5 { regulator-max-microvolt = <880000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l7a_1p8: ldo7 {
@@ -152,6 +154,9 @@ vreg_l10a_2p96: ldo10 { regulator-max-microvolt = <2960000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l11a_0p8: ldo11 {
@@ -258,6 +263,9 @@ vreg_l5c_1p2: ldo5 { regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l7c_1p8: ldo7 {
@@ -273,6 +281,9 @@ vreg_l8c_1p2: ldo8 { regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l10c_3p3: ldo10 {
arch/arm64/boot/dts/qcom/sa8295p-adp.dts +12 -0
@@ -83,6 +83,9 @@ vreg_l3c: ldo3 { regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l4c: ldo4 {
@@ -98,6 +101,9 @@ vreg_l6c: ldo6 { regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l7c: ldo7 {
@@ -113,6 +119,9 @@ vreg_l10c: ldo10 { regulator-max-microvolt = <2504000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l17c: ldo17 {
@@ -121,6 +130,9 @@ vreg_l17c: ldo17 { regulator-max-microvolt = <2504000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; };
arch/arm64/boot/dts/qcom/sc7280.dtsi +2 -1
@@ -2177,7 +2177,8 @@ lpasscc: lpasscc@3000000 { lpass_audiocc: clock-controller@3300000 { compatible = "qcom,sc7280-lpassaudiocc"; - reg = <0 0x03300000 0 0x30000>; + reg = <0 0x03300000 0 0x30000>, + <0 0x032a9000 0 0x1000>; clocks = <&rpmhcc RPMH_CXO_CLK>, <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>; clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src";
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts +6 -0
@@ -124,6 +124,9 @@ vreg_l7c: ldo7 { regulator-max-microvolt = <2504000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l13c: ldo13 {
@@ -146,6 +149,9 @@ vreg_l3d: ldo3 { regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l4d: ldo4 {
arch/arm64/boot/dts/qcom/sc8280xp.dtsi +8 -28
@@ -885,13 +885,13 @@ ufs_mem_hc: ufs@1d84000 { ufs_mem_phy: phy@1d87000 { compatible = "qcom,sc8280xp-qmp-ufs-phy"; - reg = <0 0x01d87000 0 0xe10>; + reg = <0 0x01d87000 0 0x1c8>; #address-cells = <2>; #size-cells = <2>; ranges; clock-names = "ref", "ref_aux"; - clocks = <&rpmhcc RPMH_CXO_CLK>, + clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; resets = <&ufs_mem_hc 0>;
@@ -953,13 +953,13 @@ ufs_card_hc: ufs@1da4000 { ufs_card_phy: phy@1da7000 { compatible = "qcom,sc8280xp-qmp-ufs-phy"; - reg = <0 0x01da7000 0 0xe10>; + reg = <0 0x01da7000 0 0x1c8>; #address-cells = <2>; #size-cells = <2>; ranges; clock-names = "ref", "ref_aux"; - clocks = <&gcc GCC_UFS_1_CARD_CLKREF_CLK>, + clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>, <&gcc GCC_UFS_CARD_PHY_AUX_CLK>; resets = <&ufs_card_hc 0>;
@@ -1181,26 +1181,16 @@ usb_0_qmpphy: phy-wrapper@88ec000 { usb_0_ssphy: usb3-phy@88eb400 { reg = <0 0x088eb400 0 0x100>, <0 0x088eb600 0 0x3ec>, - <0 0x088ec400 0 0x1f0>, + <0 0x088ec400 0 0x364>, <0 0x088eba00 0 0x100>, <0 0x088ebc00 0 0x3ec>, - <0 0x088ec700 0 0x64>; + <0 0x088ec200 0 0x18>; #phy-cells = <0>; #clock-cells = <0>; clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; clock-names = "pipe0"; clock-output-names = "usb0_phy_pipe_clk_src"; }; - - usb_0_dpphy: dp-phy@88ed200 { - reg = <0 0x088ed200 0 0x200>, - <0 0x088ed400 0 0x200>, - <0 0x088eda00 0 0x200>, - <0 0x088ea600 0 0x200>, - <0 0x088ea800 0 0x200>; - #clock-cells = <1>; - #phy-cells = <0>; - }; }; usb_1_hsphy: phy@8902000 {
@@ -1242,8 +1232,8 @@ usb_1_qmpphy: phy-wrapper@8904000 { usb_1_ssphy: usb3-phy@8903400 { reg = <0 0x08903400 0 0x100>, - <0 0x08903c00 0 0x3ec>, - <0 0x08904400 0 0x1f0>, + <0 0x08903600 0 0x3ec>, + <0 0x08904400 0 0x364>, <0 0x08903a00 0 0x100>, <0 0x08903c00 0 0x3ec>, <0 0x08904200 0 0x18>;
@@ -1253,16 +1243,6 @@ usb_1_ssphy: usb3-phy@8903400 { clock-names = "pipe0"; clock-output-names = "usb1_phy_pipe_clk_src"; }; - - usb_1_dpphy: dp-phy@8904200 { - reg = <0 0x08904200 0 0x200>, - <0 0x08904400 0 0x200>, - <0 0x08904a00 0 0x200>, - <0 0x08904600 0 0x200>, - <0 0x08904800 0 0x200>; - #clock-cells = <1>; - #phy-cells = <0>; - }; }; system-cache-controller@9200000 {
arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi +6 -0
@@ -348,6 +348,9 @@ vreg_l6c_2p9: ldo6 { regulator-max-microvolt = <2960000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l7c_3p0: ldo7 {
@@ -367,6 +370,9 @@ vreg_l9c_2p9: ldo9 { regulator-max-microvolt = <2960000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l10c_3p3: ldo10 {
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi +6 -0
@@ -317,6 +317,9 @@ vreg_l6c_2p9: ldo6 { regulator-max-microvolt = <2960000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l7c_2p85: ldo7 {
@@ -339,6 +342,9 @@ vreg_l9c_2p9: ldo9 { regulator-max-microvolt = <2960000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l10c_3p3: ldo10 {
arch/arm64/boot/dts/qcom/sm8250.dtsi +1 -0
@@ -334,6 +334,7 @@ CLUSTER_SLEEP_0: cluster-sleep-0 { exit-latency-us = <6562>; min-residency-us = <9987>; local-timer-stop; + status = "disabled"; }; }; };
arch/arm64/boot/dts/qcom/sm8350-hdk.dts +12 -0
@@ -107,6 +107,9 @@ vreg_l5b_0p88: ldo5 { regulator-max-microvolt = <888000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l6b_1p2: ldo6 {
@@ -115,6 +118,9 @@ vreg_l6b_1p2: ldo6 { regulator-max-microvolt = <1208000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l7b_2p96: ldo7 {
@@ -123,6 +129,9 @@ vreg_l7b_2p96: ldo7 { regulator-max-microvolt = <2504000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; vreg_l9b_1p2: ldo9 {
@@ -131,6 +140,9 @@ vreg_l9b_1p2: ldo9 { regulator-max-microvolt = <1200000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; regulator-allow-set-load; + regulator-allowed-modes = + <RPMH_REGULATOR_MODE_LPM + RPMH_REGULATOR_MODE_HPM>; }; };
arch/arm64/include/asm/cputype.h +1 -1
@@ -41,7 +41,7 @@ (((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT)#define MIDR_CPU_MODEL (imp, partnum) \ - (((imp) << MIDR_IMPLEMENTOR_SHIFT) | \ + ((_AT(u32, imp) << MIDR_IMPLEMENTOR_SHIFT) | \ (0xf << MIDR_ARCHITECTURE_SHIFT) | \ ((partnum) << MIDR_PARTNUM_SHIFT))
arch/arm64/include/asm/pgtable.h +2 -2
@@ -863,12 +863,12 @@ static inline bool pte_user_accessible_page(pte_t pte)static inline bool pmd_user_accessible_page (pmd_t pmd) { -return pmd_present (pmd) && (pmd_user (pmd) ||pmd_user_exec (pmd)); +return pmd_leaf (pmd) && (pmd_user (pmd) ||pmd_user_exec (pmd)); }static inline bool pud_user_accessible_page (pud_t pud) { -return pud_present (pud) &&pud_user (pud); +return pud_leaf (pud) &&pud_user (pud); }#endif
arch/arm64/mm/mmu.c +2 -6
@@ -539,7 +539,7 @@ static void __init map_mem(pgd_t *pgdp)*/ BUILD_BUG_ON (pgd_index (direct_map_end -1 ) ==pgd_index (direct_map_end)); -if (can_set_direct_map () ||IS_ENABLED (CONFIG_KFENCE )) +if (can_set_direct_map ()) flags |=NO_BLOCK_MAPPINGS |NO_CONT_MAPPINGS ;/*
@@ -1551,11 +1551,7 @@ int arch_add_memory(int nid, u64 start, u64 size,VM_BUG_ON (!mhp_range_allowed (start, size, true)); -/* -* KFENCE requires linear map to be mapped at page granularity, so that -* it is possible to protect/unprotect single pages in the KFENCE pool. -*/ -if (can_set_direct_map () ||IS_ENABLED (CONFIG_KFENCE )) +if (can_set_direct_map ()) flags |=NO_BLOCK_MAPPINGS |NO_CONT_MAPPINGS ; __create_pgd_mapping(swapper_pg_dir, start, __phys_to_virt(start),
arch/arm64/mm/pageattr.c +9 -2
@@ -21,7 +21,13 @@ bool rodata_full __ro_after_init = IS_ENABLED(CONFIG_RODATA_FULL_DEFAULT_ENABLEDbool can_set_direct_map (void ) { -return rodata_full ||debug_pagealloc_enabled (); +/* +* rodata_full, DEBUG_PAGEALLOC and KFENCE require linear map to be +* mapped at page granularity, so that it is possible to +* protect/unprotect single pages. +*/ +return (rodata_enabled && rodata_full) ||debug_pagealloc_enabled () || +IS_ENABLED (CONFIG_KFENCE ); }static int change_page_range (pte_t *ptep,unsigned long addr,void *data)
@@ -96,7 +102,8 @@ static int change_memory_common(unsigned long addr, int numpages,* If we are manipulating read-only permissions, apply the same * change to the linear mapping of the pages that back this VM area. */ -if (rodata_full && (pgprot_val (set_mask) ==PTE_RDONLY || +if (rodata_enabled && + rodata_full && (pgprot_val (set_mask) ==PTE_RDONLY ||pgprot_val (clear_mask) ==PTE_RDONLY )) {for (i =0 ; i < area->nr_pages; i++) { __change_memory_common((u64)page_address(area->pages[i]),
arch/mips/kernel/relocate_kernel.S +5 -10
@@ -145,8 +145,7 @@ LEAF(kexec_smp_wait) * kexec_args[0..3] are used to prepare register values. */ -kexec_args: - EXPORT(kexec_args) +EXPORT(kexec_args) arg0: PTR_WD 0x0 arg1: PTR_WD 0x0 arg2: PTR_WD 0x0
@@ -159,8 +158,7 @@ arg3: PTR_WD 0x0 * their registers a0-a3. secondary_kexec_args[0..3] are used * to prepare register values. */ -secondary_kexec_args: - EXPORT(secondary_kexec_args) +EXPORT(secondary_kexec_args) s_arg0: PTR_WD 0x0 s_arg1: PTR_WD 0x0 s_arg2: PTR_WD 0x0
@@ -171,19 +169,16 @@ kexec_flag: #endif -kexec_start_address: - EXPORT(kexec_start_address) +EXPORT(kexec_start_address) PTR_WD 0x0 .size kexec_start_address, PTRSIZE -kexec_indirection_page: - EXPORT(kexec_indirection_page) +EXPORT(kexec_indirection_page) PTR_WD 0 .size kexec_indirection_page, PTRSIZE relocate_new_kernel_end: -relocate_new_kernel_size: - EXPORT(relocate_new_kernel_size) +EXPORT(relocate_new_kernel_size) PTR_WD relocate_new_kernel_end - relocate_new_kernel .size relocate_new_kernel_size, PTRSIZE
arch/mips/loongson64/reset.c +10 -0
@@ -16,6 +16,7 @@#include <asm/bootinfo.h> #include <asm/idle.h> #include <asm/reboot.h> +#include <asm/bug.h> #include <loongson.h> #include <boot_param.h>
@@ -159,8 +160,17 @@ static int __init mips_reboot_setup(void)#ifdef CONFIG_KEXEC kexec_argv =kmalloc (KEXEC_ARGV_SIZE ,GFP_KERNEL ); +if (WARN_ON (!kexec_argv)) +return -ENOMEM ; + kdump_argv =kmalloc (KEXEC_ARGV_SIZE ,GFP_KERNEL ); +if (WARN_ON (!kdump_argv)) +return -ENOMEM ; + kexec_envp =kmalloc (KEXEC_ENVP_SIZE ,GFP_KERNEL ); +if (WARN_ON (!kexec_envp)) +return -ENOMEM ; + fw_arg1 =KEXEC_ARGV_ADDR ;memcpy (kexec_envp, (void *)fw_arg2,KEXEC_ENVP_SIZE );
arch/powerpc/Kconfig +1 -1
@@ -284,7 +284,7 @@ config PPC # config PPC_LONG_DOUBLE_128 - depends on PPC64 + depends on PPC64 && ALTIVEC def_bool $(success,test "$(shell,echo __LONG_DOUBLE_128__ | $(CC) -E -P -)" = 1) config PPC_BARRIER_NOSPEC
arch/s390/include/asm/processor.h +10 -1
@@ -202,7 +202,16 @@ unsigned long __get_wchan(struct task_struct *p);/* Has task runtime instrumentation enabled ? */ #define is_ri_task (tsk) (!!(tsk)->thread.ri_cb) -registerunsigned long current_stack_pointer asm("r15" ); +/* avoid using global register due to gcc bug in versions < 8.4 */ +#define current_stack_pointer (__current_stack_pointer()) + +static __always_inline unsigned long __current_stack_pointer (void ) +{ +unsigned long sp; + + asmvolatile ("lgr %0,15" :"=d" (sp)); +return sp; +}static __always_inline unsigned short stap (void ) {
arch/x86/events/amd/core.c +2 -3
@@ -896,8 +896,7 @@ static int amd_pmu_handle_irq(struct pt_regs *regs) pmu_enabled = cpuc->enabled; cpuc->enabled =0 ; -/* stop everything (includes BRS) */ -amd_pmu_disable_all (); +amd_brs_disable_all ();/* Drain BRS is in use (could be inactive) */ if (cpuc->lbr_users)
@@ -908,7 +907,7 @@ static int amd_pmu_handle_irq(struct pt_regs *regs) cpuc->enabled = pmu_enabled;if (pmu_enabled) -amd_pmu_enable_all (0 ); +amd_brs_enable_all ();return amd_pmu_adjust_nmi_window (handled); }
arch/x86/events/amd/uncore.c +1 -0
@@ -553,6 +553,7 @@ static void uncore_clean_online(void)hlist_for_each_entry_safe (uncore, n, &uncore_unused_list, node) {hlist_del (&uncore->node); +kfree (uncore->events);kfree (uncore); } }
arch/x86/events/intel/pt.c +9 -0
@@ -1263,6 +1263,15 @@ static int pt_buffer_try_single(struct pt_buffer *buf, int nr_pages)if (1 << order != nr_pages) goto out; +/* +* Some processors cannot always support single range for more than +* 4KB - refer errata TGL052, ADL037 and RPL017. Future processors might +* also be affected, so for now rather than trying to keep track of +* which ones, just disable it for all. +*/ +if (nr_pages >1 ) + goto out; + buf->single = true; buf->nr_pages = nr_pages; ret =0 ;
arch/x86/include/asm/intel-family.h +10 -1
@@ -107,6 +107,11 @@#define INTEL_FAM6_SAPPHIRERAPIDS_X 0x8F/* Golden Cove */ +#define INTEL_FAM6_EMERALDRAPIDS_X 0xCF + +#define INTEL_FAM6_GRANITERAPIDS_X 0xAD +#define INTEL_FAM6_GRANITERAPIDS_D 0xAE +#define INTEL_FAM6_ALDERLAKE 0x97/* Golden Cove / Gracemont */ #define INTEL_FAM6_ALDERLAKE_L 0x9A/* Golden Cove / Gracemont */ #define INTEL_FAM6_ALDERLAKE_N 0xBE
@@ -118,7 +123,7 @@#define INTEL_FAM6_METEORLAKE 0xAC#define INTEL_FAM6_METEORLAKE_L 0xAA -/* "Small Core" Processors (Atom) */ +/* "Small Core" Processors (Atom/E-Core) */ #define INTEL_FAM6_ATOM_BONNELL 0x1C/* Diamondville, Pineview */ #define INTEL_FAM6_ATOM_BONNELL_MID 0x26/* Silverthorne, Lincroft */
@@ -145,6 +150,10 @@#define INTEL_FAM6_ATOM_TREMONT 0x96/* Elkhart Lake */ #define INTEL_FAM6_ATOM_TREMONT_L 0x9C/* Jasper Lake */ +#define INTEL_FAM6_SIERRAFOREST_X 0xAF + +#define INTEL_FAM6_GRANDRIDGE 0xB6 +/* Xeon Phi */ #define INTEL_FAM6_XEON_PHI_KNL 0x57/* Knights Landing */
arch/x86/kernel/cpu/bugs.c +3 -10
@@ -196,22 +196,15 @@ void __init check_bugs(void) }/* -* NOTE: This function is *only* called for SVM. VMX spec_ctrl handling is -* done in vmenter.S. +* NOTE: This function is *only* called for SVM, since Intel uses +* MSR_IA32_SPEC_CTRL for SSBD. */ void x86_virt_spec_ctrl (u64 guest_spec_ctrl,u64 guest_virt_spec_ctrl,bool setguest) { -u64 msrval, guestval = guest_spec_ctrl, hostval =spec_ctrl_current (); +u64 guestval, hostval;struct thread_info *ti =current_thread_info (); -if (static_cpu_has (X86_FEATURE_MSR_SPEC_CTRL )) { -if (hostval != guestval) { - msrval = setguest ? guestval : hostval; -wrmsrl (MSR_IA32_SPEC_CTRL , msrval); - } - } -/* * If SSBD is not handled in MSR_SPEC_CTRL on AMD, update * MSR_AMD64_L2_CFG or MSR_VIRT_SPEC_CTRL if supported.
arch/x86/kernel/cpu/sgx/ioctl.c +3 -0
@@ -356,6 +356,9 @@ static int sgx_validate_offset_length(struct sgx_encl *encl,if (!length || !IS_ALIGNED (length,PAGE_SIZE ))return -EINVAL ; +if (offset + length < offset) +return -EINVAL ; +if (offset + length -PAGE_SIZE >= encl->size)return -EINVAL ;
arch/x86/kernel/fpu/core.c +1 -1
@@ -605,9 +605,9 @@ int fpu_clone(struct task_struct *dst, unsigned long clone_flags, bool minimal)if (test_thread_flag (TIF_NEED_FPU_LOAD ))fpregs_restore_userregs ();save_fpregs_to_fpstate (dst_fpu); +fpregs_unlock ();if (!(clone_flags &CLONE_THREAD ))fpu_inherit_perms (dst_fpu); -fpregs_unlock ();/* * Children never inherit PASID state.
arch/x86/kvm/kvm-asm-offsets.c +2 -0
@@ -16,8 +16,10 @@ static void __used common(void)BLANK ();OFFSET (SVM_vcpu_arch_regs, vcpu_svm, vcpu.arch.regs);OFFSET (SVM_current_vmcb, vcpu_svm, current_vmcb); +OFFSET (SVM_spec_ctrl, vcpu_svm, spec_ctrl);OFFSET (SVM_vmcb01, vcpu_svm, vmcb01);OFFSET (KVM_VMCB_pa, kvm_vmcb_info, pa); +OFFSET (SD_save_area_pa, svm_cpu_data, save_area_pa); }if (IS_ENABLED (CONFIG_KVM_INTEL )) {
arch/x86/kvm/svm/sev.c +2 -2
@@ -196,7 +196,7 @@ static void sev_asid_free(struct kvm_sev_info *sev)__set_bit (sev->asid, sev_reclaim_asid_bitmap);for_each_possible_cpu (cpu) { - sd =per_cpu (svm_data, cpu); + sd =per_cpu_ptr (&svm_data, cpu); sd->sev_vmcbs[sev->asid] =NULL ; }
@@ -2600,7 +2600,7 @@ void sev_es_unmap_ghcb(struct vcpu_svm *svm)void pre_sev_run (struct vcpu_svm *svm,int cpu) { -struct svm_cpu_data *sd =per_cpu (svm_data, cpu); +struct svm_cpu_data *sd =per_cpu_ptr (&svm_data, cpu);int asid =sev_get_asid (svm->vcpu.kvm);/* Assign the asid allocated with this SEV guest */
arch/x86/kvm/svm/svm.c +34 -57
202 lines not on this page · raw message
arch/x86/kvm/svm/svm.h +5 -5
@@ -281,8 +281,6 @@ struct vcpu_svm { };struct svm_cpu_data { -int cpu; -u64 asid_generation;u32 max_asid;u32 next_asid;
@@ -290,13 +288,15 @@ struct svm_cpu_data {struct kvm_ldttss_desc *tss_desc;struct page *save_area; +unsigned long save_area_pa; +struct vmcb *current_vmcb;/* index = sev_asid, value = vmcb pointer */ struct vmcb **sev_vmcbs; }; -DECLARE_PER_CPU(struct svm_cpu_data *, svm_data); +DECLARE_PER_CPU(struct svm_cpu_data, svm_data);void recalc_intercepts (struct vcpu_svm *svm);
@@ -683,7 +683,7 @@ void sev_es_unmap_ghcb(struct vcpu_svm *svm);/* vmenter.S */ -void __svm_sev_es_vcpu_run (struct vcpu_svm *svm); -void __svm_vcpu_run (struct vcpu_svm *svm); +void __svm_sev_es_vcpu_run (struct vcpu_svm *svm,bool spec_ctrl_intercepted); +void __svm_vcpu_run (struct vcpu_svm *svm,bool spec_ctrl_intercepted);#endif
arch/x86/kvm/svm/svm_ops.h +0 -5
@@ -61,9 +61,4 @@ static __always_inline void vmsave(unsigned long pa) svm_asm1(vmsave, "a" (pa), "memory"); } -static __always_inline void vmload(unsigned long pa) -{ -svm_asm1 (vmload,"a" (pa),"memory" ); -} -#endif /* __KVM_X86_SVM_OPS_H */
arch/x86/kvm/svm/vmenter.S +133 -3
226 lines not on this page · raw message
arch/x86/kvm/xen.c +4 -3
@@ -1667,18 +1667,18 @@ static int kvm_xen_eventfd_assign(struct kvm *kvm,case EVTCHNSTAT_ipi:/* IPI must map back to the same port# */ if (data->u.evtchn.deliver.port.port != data->u.evtchn.send_port) - goto out;/* -EINVAL */ + goto out_noeventfd;/* -EINVAL */ break ;case EVTCHNSTAT_interdomain:if (data->u.evtchn.deliver.port.port) {if (data->u.evtchn.deliver.port.port >=max_evtchn_port (kvm)) - goto out;/* -EINVAL */ + goto out_noeventfd;/* -EINVAL */ }else { eventfd =eventfd_ctx_fdget (data->u.evtchn.deliver.eventfd.fd);if (IS_ERR (eventfd)) { ret =PTR_ERR (eventfd); - goto out; + goto out_noeventfd; } }break ;
@@ -1718,6 +1718,7 @@ static int kvm_xen_eventfd_assign(struct kvm *kvm, out:if (eventfd)eventfd_ctx_put (eventfd); +out_noeventfd:kfree (evtchnfd);return ret; }
block/blk-cgroup.c +1 -1
@@ -1251,7 +1251,7 @@ static int blkcg_css_online(struct cgroup_subsys_state *css)* parent so that offline always happens towards the root. */ if (parent) -blkcg_pin_online (css); +blkcg_pin_online (&parent->css);return 0 ; }
block/blk-core.c +0 -1
@@ -426,7 +426,6 @@ struct request_queue *blk_alloc_queue(int node_id, bool alloc_srcu) PERCPU_REF_INIT_ATOMIC, GFP_KERNEL)) goto fail_stats; -blk_queue_dma_alignment (q,511 );blk_set_default_limits (&q->limits); q->nr_requests =BLKDEV_DEFAULT_RQ ;
block/blk-mq.c +1 -0
@@ -1183,6 +1183,7 @@ static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq) (!blk_queue_nomerges(rq->q) && blk_rq_bytes(last) >= BLK_PLUG_FLUSH_SIZE)) {blk_mq_flush_plug_list (plug, false); + last =NULL ;trace_block_plug (rq->q); }
block/blk-settings.c +5 -3
@@ -57,6 +57,7 @@ void blk_set_default_limits(struct queue_limits *lim) lim->misaligned =0 ; lim->zoned =BLK_ZONED_NONE ; lim->zone_write_granularity =0 ; + lim->dma_alignment =511 ; }EXPORT_SYMBOL (blk_set_default_limits);
@@ -600,6 +601,7 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, t->io_min =max (t->io_min, b->io_min); t->io_opt =lcm_not_zero (t->io_opt, b->io_opt); + t->dma_alignment =max (t->dma_alignment, b->dma_alignment);/* Set non-power-of-2 compatible chunk_sectors boundary */ if (b->chunk_sectors)
@@ -773,7 +775,7 @@ EXPORT_SYMBOL(blk_queue_virt_boundary);**/ void blk_queue_dma_alignment (struct request_queue *q,int mask) { - q->dma_alignment = mask; + q->limits.dma_alignment = mask; }EXPORT_SYMBOL (blk_queue_dma_alignment);
@@ -795,8 +797,8 @@ void blk_queue_update_dma_alignment(struct request_queue *q, int mask) {BUG_ON (mask >PAGE_SIZE ); -if (mask > q->dma_alignment) - q->dma_alignment = mask; +if (mask > q->limits.dma_alignment) + q->limits.dma_alignment = mask; }EXPORT_SYMBOL (blk_queue_update_dma_alignment);
block/sed-opal.c +28 -4
@@ -88,8 +88,8 @@ struct opal_dev {u64 lowest_lba;size_t pos; -u8 cmd[IO_BUFFER_LENGTH ]; -u8 resp[IO_BUFFER_LENGTH ]; +u8 *cmd; +u8 *resp;struct parsed_resp parsed;size_t prev_d_len;
@@ -2134,6 +2134,8 @@ void free_opal_dev(struct opal_dev *dev)return ;clean_opal_dev (dev); +kfree (dev->resp); +kfree (dev->cmd);kfree (dev); }EXPORT_SYMBOL (free_opal_dev);
@@ -2146,17 +2148,39 @@ struct opal_dev *init_opal_dev(void *data, sec_send_recv *send_recv)if (!dev)return NULL ; +/* +* Presumably DMA-able buffers must be cache-aligned. Kmalloc makes +* sure the allocated buffer is DMA-safe in that regard. +*/ + dev->cmd =kmalloc (IO_BUFFER_LENGTH ,GFP_KERNEL ); +if (!dev->cmd) + goto err_free_dev; + + dev->resp =kmalloc (IO_BUFFER_LENGTH ,GFP_KERNEL ); +if (!dev->resp) + goto err_free_cmd; +INIT_LIST_HEAD (&dev->unlk_lst);mutex_init (&dev->dev_lock); dev->data = data; dev->send_recv = send_recv;if (check_opal_support (dev) !=0 ) {pr_debug ("Opal is not supported on this device\n" ); -kfree (dev); -return NULL ; + goto err_free_resp; }return dev; + +err_free_resp: +kfree (dev->resp); + +err_free_cmd: +kfree (dev->cmd); + +err_free_dev: +kfree (dev); + +return NULL ; }EXPORT_SYMBOL (init_opal_dev);
drivers/accessibility/speakup/main.c +1 -1
@@ -1778,7 +1778,7 @@ static void speakup_con_update(struct vc_data *vc) {unsigned long flags; -if (!speakup_console[vc->vc_num] || spk_parked) +if (!speakup_console[vc->vc_num] || spk_parked || !synth)return ;if (!spin_trylock_irqsave (&speakup_info.spinlock, flags))/* Speakup output, discard */
drivers/accessibility/speakup/utils.h +1 -1
@@ -54,7 +54,7 @@ static inline int oops(const char *msg, const char *info)static inline struct st_key *hash_name (char *name) { -u_char *pn = (u_char *)name; +unsigned char *pn = (unsigned char *)name;int hash =0 ;while (*pn) {
drivers/acpi/scan.c +1 -0
@@ -796,6 +796,7 @@ static bool acpi_info_matches_ids(struct acpi_device_info *info,static const char *const acpi_ignore_dep_ids[] = {"PNP0D80" ,/* Windows-compatible System Power Management Controller */ "INT33BD" ,/* Intel Baytrail Mailbox Device */ +"LATT2021" ,/* Lattice FW Update Client Driver */ NULL };
drivers/acpi/x86/utils.c +6 -0
@@ -219,6 +219,12 @@ static const struct dmi_system_id force_storage_d3_dmi[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 14 7425 2-in-1"), } }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 16 5625"), + } + }, {} };
drivers/ata/libata-scsi.c +10 -0
@@ -3966,9 +3966,19 @@ static inline ata_xlat_func_t ata_get_xlat_func(struct ata_device *dev, u8 cmd)int __ata_scsi_queuecmd (struct scsi_cmnd *scmd,struct ata_device *dev) { +struct ata_port *ap = dev->link->ap;u8 scsi_op = scmd->cmnd[0 ];ata_xlat_func_t xlat_func; +/* +* scsi_queue_rq() will defer commands if scsi_host_in_recovery(). +* However, this check is done without holding the ap->lock (a libata +* specific lock), so we can have received an error irq since then, +* therefore we must check if EH is pending, while holding ap->lock. +*/ +if (ap->pflags & (ATA_PFLAG_EH_PENDING |ATA_PFLAG_EH_IN_PROGRESS )) +return SCSI_MLQUEUE_DEVICE_BUSY ; +if (unlikely (!scmd->cmd_len)) goto bad_cdb_len;
drivers/ata/libata-transport.c +15 -4
@@ -301,7 +301,9 @@ int ata_tport_add(struct device *parent,pm_runtime_enable (dev);pm_runtime_forbid (dev); -transport_add_device (dev); + error =transport_add_device (dev); +if (error) + goto tport_transport_add_err;transport_configure_device (dev); error =ata_tlink_add (&ap->link);
@@ -312,12 +314,12 @@ int ata_tport_add(struct device *parent, tport_link_err:transport_remove_device (dev); + tport_transport_add_err:device_del (dev); tport_err:transport_destroy_device (dev);put_device (dev); -ata_host_put (ap->host);return error; }
@@ -456,7 +458,9 @@ int ata_tlink_add(struct ata_link *link) goto tlink_err; } -transport_add_device (dev); + error =transport_add_device (dev); +if (error) + goto tlink_transport_err;transport_configure_device (dev);ata_for_each_dev (ata_dev, link,ALL ) {
@@ -471,6 +475,7 @@ int ata_tlink_add(struct ata_link *link)ata_tdev_delete (ata_dev); }transport_remove_device (dev); + tlink_transport_err:device_del (dev); tlink_err:transport_destroy_device (dev);
@@ -708,7 +713,13 @@ static int ata_tdev_add(struct ata_device *ata_dev)return error; } -transport_add_device (dev); + error =transport_add_device (dev); +if (error) { +device_del (dev); +ata_tdev_free (ata_dev); +return error; + } +transport_configure_device (dev);return 0 ; }
drivers/block/drbd/drbd_main.c +2 -2
@@ -2672,7 +2672,7 @@ static int init_submitter(struct drbd_device *device)enum drbd_ret_code drbd_create_device (struct drbd_config_context *adm_ctx,unsigned int minor) {struct drbd_resource *resource = adm_ctx->resource; -struct drbd_connection *connection; +struct drbd_connection *connection, *n;struct drbd_device *device;struct drbd_peer_device *peer_device, *tmp_peer_device;struct gendisk *disk;
@@ -2789,7 +2789,7 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsigreturn NO_ERROR ; out_idr_remove_from_resource: -for_each_connection (connection, resource) { +for_each_connection_safe (connection, n, resource) { peer_device =idr_remove (&connection->peer_devices, vnr);if (peer_device)kref_put (&connection->kref, drbd_destroy_connection);
drivers/cxl/core/mbox.c +1 -1
@@ -174,7 +174,7 @@ int cxl_mbox_send_cmd(struct cxl_dev_state *cxlds, u16 opcode, void *in, };int rc; -if (out_size > cxlds->payload_size) +if (in_size > cxlds->payload_size || out_size > cxlds->payload_size)return -E2BIG ; rc = cxlds->mbox_send (cxlds, &mbox_cmd);
drivers/cxl/pmem.c +1 -1
@@ -151,7 +151,7 @@ static int cxl_pmem_set_config_data(struct cxl_dev_state *cxlds,return -EINVAL ;/* 4-byte status follows the input data in the payload */ -if (struct_size (cmd, in_buf, cmd->in_length) +4 > buf_len) +if (size_add (struct_size (cmd, in_buf, cmd->in_length),4 ) > buf_len)return -EINVAL ; set_lsa =
drivers/firmware/arm_scmi/bus.c +11 -0
@@ -216,9 +216,20 @@ void scmi_device_destroy(struct scmi_device *scmi_dev)device_unregister (&scmi_dev->dev); } +void scmi_device_link_add (struct device *consumer,struct device *supplier) +{ +struct device_link *link; + + link =device_link_add (consumer, supplier,DL_FLAG_AUTOREMOVE_CONSUMER ); + +WARN_ON (!link); +} +void scmi_set_handle (struct scmi_device *scmi_dev) { scmi_dev->handle =scmi_handle_get (&scmi_dev->dev); +if (scmi_dev->handle) +scmi_device_link_add (&scmi_dev->dev, scmi_dev->handle->dev); }int scmi_protocol_register (const struct scmi_protocol *proto)
drivers/firmware/arm_scmi/common.h +4 -1
@@ -97,6 +97,7 @@ static inline void unpack_scmi_header(u32 msg_hdr, struct scmi_msg_hdr *hdr)struct scmi_revision_info *scmi_revision_area_get (const struct scmi_protocol_handle *ph);int scmi_handle_put (const struct scmi_handle *handle); +void scmi_device_link_add (struct device *consumer,struct device *supplier);struct scmi_handle *scmi_handle_get (struct device *dev);void scmi_set_handle (struct scmi_device *scmi_dev); void scmi_setup_protocol_implemented(const struct scmi_protocol_handle *ph,
@@ -117,6 +118,7 @@ void scmi_protocol_release(const struct scmi_handle *handle, u8 protocol_id);* * @dev: Reference to device in the SCMI hierarchy corresponding to this * channel +* @rx_timeout_ms: The configured RX timeout in milliseconds. * @handle: Pointer to SCMI entity handle * @no_completion_irq: Flag to indicate that this channel has no completion * interrupt mechanism for synchronous commands.
@@ -126,6 +128,7 @@ void scmi_protocol_release(const struct scmi_handle *handle, u8 protocol_id);*/ struct scmi_chan_info {struct device *dev; +unsigned int rx_timeout_ms;struct scmi_handle *handle;bool no_completion_irq;void *transport_info;
@@ -232,7 +235,7 @@ void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id);struct scmi_shared_mem ;void shmem_tx_prepare (struct scmi_shared_mem __iomem *shmem, -struct scmi_xfer *xfer); +struct scmi_xfer *xfer,struct scmi_chan_info *cinfo);u32 shmem_read_header (struct scmi_shared_mem __iomem *shmem);void shmem_fetch_response (struct scmi_shared_mem __iomem *shmem,struct scmi_xfer *xfer);
drivers/firmware/arm_scmi/driver.c +20 -12
@@ -2013,6 +2013,7 @@ static int scmi_chan_setup(struct scmi_info *info, struct device *dev,return -ENOMEM ; cinfo->dev = dev; + cinfo->rx_timeout_ms = info->desc->max_rx_timeout_ms; ret = info->desc->ops->chan_setup (cinfo, info->dev, tx);if (ret)
@@ -2277,10 +2278,16 @@ int scmi_protocol_device_request(const struct scmi_device_id *id_table) sdev =scmi_get_protocol_device (child, info, id_table->protocol_id, id_table->name); -/* Set handle if not already set: device existed */ -if (sdev && !sdev->handle) - sdev->handle = -scmi_handle_get_from_info_unlocked (info); +if (sdev) { +/* Set handle if not already set: device existed */ +if (!sdev->handle) + sdev->handle = +scmi_handle_get_from_info_unlocked (info); +/* Relink consumer and suppliers */ +if (sdev->handle) +scmi_device_link_add (&sdev->dev, + sdev->handle->dev); + } }else { dev_err(info->dev, "Failed. SCMI protocol %d not active.\n",
@@ -2479,20 +2486,17 @@ void scmi_free_channel(struct scmi_chan_info *cinfo, struct idr *idr, int id)static int scmi_remove (struct platform_device *pdev) { -int ret =0 , id; +int ret, id;struct scmi_info *info =platform_get_drvdata (pdev);struct device_node *child;mutex_lock (&scmi_list_mutex);if (info->users) - ret = -EBUSY ; -else -list_del (&info->node); +dev_warn (&pdev->dev, +"Still active SCMI users will be forcibly unbound.\n" ); +list_del (&info->node);mutex_unlock (&scmi_list_mutex); -if (ret) -return ret; -scmi_notification_exit (&info->handle);mutex_lock (&info->protocols_mtx);
@@ -2504,7 +2508,11 @@ static int scmi_remove(struct platform_device *pdev)idr_destroy (&info->active_protocols);/* Safe to free channels since no more users */ -return scmi_cleanup_txrx_channels (info); + ret =scmi_cleanup_txrx_channels (info); +if (ret) +dev_warn (&pdev->dev,"Failed to cleanup SCMI channels.\n" ); + +return 0 ; } static ssize_t protocol_version_show(struct device *dev,
drivers/firmware/arm_scmi/mailbox.c +1 -1
@@ -36,7 +36,7 @@ static void tx_prepare(struct mbox_client *cl, void *m) {struct scmi_mailbox *smbox =client_to_scmi_mailbox (cl); -shmem_tx_prepare (smbox->shmem, m); +shmem_tx_prepare (smbox->shmem, m, smbox->cinfo); }static void rx_callback (struct mbox_client *cl,void *m)
drivers/firmware/arm_scmi/optee.c +1 -1
@@ -498,7 +498,7 @@ static int scmi_optee_send_message(struct scmi_chan_info *cinfo,msg_tx_prepare (channel->req.msg, xfer); ret =invoke_process_msg_channel (channel,msg_command_size (xfer)); }else { -shmem_tx_prepare (channel->req.shmem, xfer); +shmem_tx_prepare (channel->req.shmem, xfer, cinfo); ret =invoke_process_smt_channel (channel); }
drivers/firmware/arm_scmi/shmem.c +27 -4
@@ -5,10 +5,13 @@* Copyright (C) 2019 ARM Ltd. */ +#include <linux/ktime.h> #include <linux/io.h> #include <linux/processor.h> #include <linux/types.h> +#include <asm-generic/bug.h> +#include "common.h" /*
@@ -30,16 +33,36 @@ struct scmi_shared_mem { };void shmem_tx_prepare (struct scmi_shared_mem __iomem *shmem, -struct scmi_xfer *xfer) +struct scmi_xfer *xfer,struct scmi_chan_info *cinfo) { +ktime_t stop; +/* * Ideally channel must be free by now unless OS timeout last * request and platform continued to process the same, wait * until it releases the shared memory, otherwise we may endup -* overwriting its response with new message payload or vice-versa +* overwriting its response with new message payload or vice-versa. +* Giving up anyway after twice the expected channel timeout so as +* not to bail-out on intermittent issues where the platform is +* occasionally a bit slower to answer. +* +* Note that after a timeout is detected we bail-out and carry on but +* the transport functionality is probably permanently compromised: +* this is just to ease debugging and avoid complete hangs on boot +* due to a misbehaving SCMI firmware. */ -spin_until_cond (ioread32 (&shmem->channel_status) & -SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE ); + stop =ktime_add_ms (ktime_get (),2 * cinfo->rx_timeout_ms); +spin_until_cond ((ioread32 (&shmem->channel_status) & +SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE ) || +ktime_after (ktime_get (), stop)); +if (!(ioread32 (&shmem->channel_status) & +SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE )) { +WARN_ON_ONCE (1 ); +dev_err (cinfo->dev, +"Timeout waiting for a free TX channel !\n" ); +return ; + } +/* Mark channel busy + clear error */ iowrite32 (0x0 , &shmem->channel_status); iowrite32(xfer->hdr.poll_completion ? 0 : SCMI_SHMEM_FLAG_INTR_ENABLED,
drivers/firmware/arm_scmi/smc.c +1 -1
@@ -188,7 +188,7 @@ static int smc_send_message(struct scmi_chan_info *cinfo,*/ smc_channel_lock_acquire (scmi_info, xfer); -shmem_tx_prepare (scmi_info->shmem, xfer); +shmem_tx_prepare (scmi_info->shmem, xfer, cinfo);arm_smccc_1_1_invoke (scmi_info->func_id,0 ,0 ,0 ,0 ,0 ,0 ,0 , &res);
drivers/firmware/google/coreboot_table.c +29 -8
@@ -149,12 +149,8 @@ static int coreboot_table_probe(struct platform_device *pdev)if (!ptr)return -ENOMEM ; - ret =bus_register (&coreboot_bus_type); -if (!ret) { - ret =coreboot_table_populate (dev, ptr); -if (ret) -bus_unregister (&coreboot_bus_type); - } + ret =coreboot_table_populate (dev, ptr); +memunmap (ptr);return ret;
@@ -169,7 +165,6 @@ static int __cb_dev_unregister(struct device *dev, void *dummy)static int coreboot_table_remove (struct platform_device *pdev) {bus_for_each_dev (&coreboot_bus_type,NULL ,NULL , __cb_dev_unregister); -bus_unregister (&coreboot_bus_type);return 0 ; }
@@ -199,6 +194,32 @@ static struct platform_driver coreboot_table_driver = { .of_match_table = of_match_ptr(coreboot_of_match), }, }; -module_platform_driver (coreboot_table_driver); + +static int __init coreboot_table_driver_init (void ) +{ +int ret; + + ret =bus_register (&coreboot_bus_type); +if (ret) +return ret; + + ret =platform_driver_register (&coreboot_table_driver); +if (ret) { +bus_unregister (&coreboot_bus_type); +return ret; + } + +return 0 ; +} + +static void __exit coreboot_table_driver_exit(void) +{ +platform_driver_unregister (&coreboot_table_driver); +bus_unregister (&coreboot_bus_type); +} + +module_init (coreboot_table_driver_init); +module_exit (coreboot_table_driver_exit); +MODULE_AUTHOR ("Google, Inc." );MODULE_LICENSE ("GPL" );
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +10 -5
@@ -4055,15 +4055,18 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)* at suspend time. * */ -static void amdgpu_device_evict_resources (struct amdgpu_device *adev) +static int amdgpu_device_evict_resources (struct amdgpu_device *adev) { +int ret; +/* No need to evict vram on APUs for suspend to ram or s2idle */ if ((adev->in_s3 || adev->in_s0ix) && (adev->flags &AMD_IS_APU )) -return ; +return 0 ; -if (amdgpu_ttm_evict_resources (adev,TTM_PL_VRAM )) + ret =amdgpu_ttm_evict_resources (adev,TTM_PL_VRAM ); +if (ret)DRM_WARN ("evicting device resources failed\n" ); - +return ret; }/*
@@ -4113,7 +4116,9 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)if (!adev->in_s0ix)amdgpu_amdkfd_suspend (adev, adev->in_runpm); -amdgpu_device_evict_resources (adev); + r =amdgpu_device_evict_resources (adev); +if (r) +return r;amdgpu_fence_driver_hw_fini (adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +2 -0
@@ -500,6 +500,8 @@ static int amdgpu_vkms_sw_init(void *handle)adev_to_drm (adev)->mode_config.fb_base = adev->gmc.aper_base; +adev_to_drm (adev)->mode_config.fb_modifiers_not_supported = true; + r =amdgpu_display_modeset_create_props (adev);if (r)return r;
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +8 -1
@@ -96,7 +96,14 @@ static int mes_v11_0_submit_pkt_and_poll_completion(struct amdgpu_mes *mes,struct amdgpu_device *adev = mes->adev;struct amdgpu_ring *ring = &mes->ring;unsigned long flags; +signed long timeout = adev->usec_timeout; +if (amdgpu_emu_mode) { + timeout *=100 ; + }else if (amdgpu_sriov_vf (adev)) { +/* Worst case in sriov where all other 15 VF timeout, each VF needs about 600ms */ + timeout =15 *600 *1000 ; + }BUG_ON (size %4 !=0 );spin_lock_irqsave (&mes->ring_lock, flags);
@@ -116,7 +123,7 @@ static int mes_v11_0_submit_pkt_and_poll_completion(struct amdgpu_mes *mes,DRM_DEBUG ("MES msg=%d was emitted\n" , x_pkt->header.opcode); r =amdgpu_fence_wait_polling (ring, ring->fence_drv.sync_seq, - adev->usec_timeout * (amdgpu_emu_mode ?100 :1 )); + timeout);if (r <1 ) {DRM_ERROR ("MES failed to response msg=%d\n" , x_pkt->header.opcode);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +29 -6
@@ -146,6 +146,14 @@ MODULE_FIRMWARE(FIRMWARE_NAVI12_DMCU);/* Number of bytes in PSP footer for firmware. */ #define PSP_FOOTER_BYTES 0x100 +/* +* DMUB Async to Sync Mechanism Status +*/ +#define DMUB_ASYNC_TO_SYNC_ACCESS_FAIL 1 +#define DMUB_ASYNC_TO_SYNC_ACCESS_TIMEOUT 2 +#define DMUB_ASYNC_TO_SYNC_ACCESS_SUCCESS 3 +#define DMUB_ASYNC_TO_SYNC_ACCESS_INVALID 4 +/** * DOC: overview *
@@ -1549,6 +1557,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev) adev->dm.dc->debug.visual_confirm = amdgpu_dc_visual_confirm; +/* TODO: Remove after DP2 receiver gets proper support of Cable ID feature */ + adev->dm.dc->debug.ignore_cable_id = true; + r =dm_dmub_hw_init (adev);if (r) {DRM_ERROR ("DMUB interface failed to initialize: status=%d\n" , r);
@@ -1634,12 +1645,6 @@ static int amdgpu_dm_init(struct amdgpu_device *adev) } } -if (amdgpu_dm_initialize_drm_device (adev)) { -DRM_ERROR ( -"amdgpu: failed to initialize sw for display support.\n" ); - goto error; - } -/* Enable outbox notification only after IRQ handlers are registered and DMUB is alive. * It is expected that DMUB will resend any pending notifications at this point, for * example HPD from DPIA.
@@ -1647,6 +1652,12 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)if (dc_is_dmub_outbox_supported (adev->dm.dc))dc_enable_dmub_outbox (adev->dm.dc); +if (amdgpu_dm_initialize_drm_device (adev)) { +DRM_ERROR ( +"amdgpu: failed to initialize sw for display support.\n" ); + goto error; + } +/* create fake encoders for MST */ dm_dp_create_fake_mst_encoders (adev);
@@ -10146,6 +10157,8 @@ static int amdgpu_dm_set_dmub_async_sync_status(bool is_cmd_aux, *operation_result =AUX_RET_ERROR_TIMEOUT ; }else if (status_type ==DMUB_ASYNC_TO_SYNC_ACCESS_FAIL ) { *operation_result =AUX_RET_ERROR_ENGINE_ACQUIRE ; + }else if (status_type ==DMUB_ASYNC_TO_SYNC_ACCESS_INVALID ) { + *operation_result =AUX_RET_ERROR_INVALID_REPLY ; }else { *operation_result =AUX_RET_ERROR_UNKNOWN ; }
@@ -10193,6 +10206,16 @@ int amdgpu_dm_process_dmub_aux_transfer_sync(bool is_cmd_aux, struct dc_context payload->reply[0 ] = adev->dm.dmub_notify->aux_reply.command;if (!payload->write && adev->dm.dmub_notify->aux_reply.length && payload->reply[0 ] ==AUX_TRANSACTION_REPLY_AUX_ACK ) { + +if (payload->length != adev->dm.dmub_notify->aux_reply.length) { +DRM_WARN ("invalid read from DPIA AUX %x(%d) got length %d!\n" , + payload->address, payload->length, + adev->dm.dmub_notify->aux_reply.length); +return amdgpu_dm_set_dmub_async_sync_status (is_cmd_aux, ctx, +DMUB_ASYNC_TO_SYNC_ACCESS_INVALID , + (uint32_t *)operation_result); + } +memcpy (payload->data, adev->dm.dmub_notify->aux_reply.data, adev->dm.dmub_notify->aux_reply.length); }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +0 -6
@@ -50,12 +50,6 @@#define AMDGPU_DMUB_NOTIFICATION_MAX 5 -/* -* DMUB Async to Sync Mechanism Status -*/ -#define DMUB_ASYNC_TO_SYNC_ACCESS_FAIL 1 -#define DMUB_ASYNC_TO_SYNC_ACCESS_TIMEOUT 2 -#define DMUB_ASYNC_TO_SYNC_ACCESS_SUCCESS 3/* #include "include/amdgpu_dal_power_if.h" #include "amdgpu_dm_irq.h"
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +8 -2
@@ -412,7 +412,7 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, {struct amdgpu_crtc *acrtc =NULL ;struct drm_plane *cursor_plane; - +bool is_dcn;int res = -ENOMEM ; cursor_plane =kzalloc (sizeof (*cursor_plane),GFP_KERNEL );
@@ -450,8 +450,14 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm, acrtc->otg_inst =-1 ; dm->adev->mode_info.crtcs[crtc_index] = acrtc; -drm_crtc_enable_color_mgmt (&acrtc->base,MAX_COLOR_LUT_ENTRIES , + +/* Don't enable DRM CRTC degamma property for DCE since it doesn't +* support programmable degamma anywhere. +*/ + is_dcn = dm->adev->dm.dc->caps.color.dpp.dcn_arch; +drm_crtc_enable_color_mgmt (&acrtc->base, is_dcn ?MAX_COLOR_LUT_ENTRIES :0 , true,MAX_COLOR_LUT_ENTRIES ); +drm_mode_crtc_set_gamma_size (&acrtc->base,MAX_COLOR_LEGACY_LUT_ENTRIES );return 0 ;
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +30 -0
@@ -2392,6 +2392,26 @@ static enum bp_result get_vram_info_v25(return result; } +static enum bp_result get_vram_info_v30 ( +struct bios_parser *bp, +struct dc_vram_info *info) +{ +struct atom_vram_info_header_v3_0 *info_v30; +enum bp_result result =BP_RESULT_OK ; + + info_v30 = GET_IMAGE(struct atom_vram_info_header_v3_0, +DATA_TABLES (vram_info)); + +if (info_v30 ==NULL ) +return BP_RESULT_BADBIOSTABLE ; + + info->num_chans = info_v30->channel_num; + info->dram_channel_width_bytes = (1 << info_v30->channel_width) /8 ; + +return result; +} + +/* * get_integrated_info_v11 *
@@ -3025,6 +3045,16 @@ static enum bp_result bios_parser_get_vram_info( }break ; +case 3 : +switch (revision.minor) { +case 0 : + result =get_vram_info_v30 (bp, info); +break ; +default : +break ; + } +break ; +default :return result; }
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +1 -11
@@ -1262,16 +1262,6 @@ void dcn20_pipe_control_lock( lock, &hw_locks, &inst_flags); - }else if (pipe->stream && pipe->stream->mall_stream_config.type ==SUBVP_MAIN ) { -union dmub_inbox0_cmd_lock_hw hw_lock_cmd = {0 }; - hw_lock_cmd.bits.command_code =DMUB_INBOX0_CMD__HW_LOCK ; - hw_lock_cmd.bits.hw_lock_client =HW_LOCK_CLIENT_DRIVER ; - hw_lock_cmd.bits.lock_pipe =1 ; - hw_lock_cmd.bits.otg_inst = pipe->stream_res.tg->inst; - hw_lock_cmd.bits.lock = lock; -if (!lock) - hw_lock_cmd.bits.should_release =1 ; -dmub_hw_lock_mgr_inbox0_cmd (dc->ctx->dmub_srv, hw_lock_cmd); }else if (pipe->plane_state !=NULL && pipe->plane_state->triplebuffer_flips) {if (lock) pipe->stream_res.tg->funcs->triplebuffer_lock (pipe->stream_res.tg);
@@ -1848,7 +1838,7 @@ void dcn20_post_unlock_program_front_end(for (j =0 ; j <TIMEOUT_FOR_PIPE_ENABLE_MS *1000 && hubp->funcs->hubp_is_flip_pending (hubp); j++) -mdelay (1 ); +udelay (1 ); } }
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c +1 -0
@@ -87,6 +87,7 @@ static struct hubp_funcs dcn31_hubp_funcs = { .hubp_init = hubp3_init, .set_unbounded_requesting = hubp31_set_unbounded_requesting, .hubp_soft_reset = hubp31_soft_reset, + .hubp_set_flip_int = hubp1_set_flip_int, .hubp_in_blank = hubp1_in_blank, .program_extended_blank = hubp31_program_extended_blank, };
drivers/gpu/drm/amd/display/dc/dcn314/dcn314_optc.c +1 -1
@@ -237,7 +237,7 @@ static struct timing_generator_funcs dcn314_tg_funcs = { .clear_optc_underflow = optc1_clear_optc_underflow, .setup_global_swap_lock = NULL, .get_crc = optc1_get_crc, - .configure_crc = optc2_configure_crc, + .configure_crc = optc1_configure_crc, .set_dsc_config = optc3_set_dsc_config, .get_dsc_status = optc2_get_dsc_status, .set_dwb_source = NULL,
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c +1 -1
@@ -187,7 +187,7 @@ bool dcn32_all_pipes_have_stream_and_plane(struct dc *dc,struct pipe_ctx *pipe = &context->res_ctx.pipe_ctx[i];if (!pipe->stream) -return false; +continue ;if (!pipe->plane_state)return false;
drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c +1 -0
@@ -1228,6 +1228,7 @@ int dcn20_populate_dml_pipes_from_context( pipes[pipe_cnt].pipe.src.dcc = false; pipes[pipe_cnt].pipe.src.dcc_rate =1 ; pipes[pipe_cnt].pipe.dest.synchronized_vblank_all_planes = synchronized_vblank; + pipes[pipe_cnt].pipe.dest.synchronize_timings = synchronized_vblank; pipes[pipe_cnt].pipe.dest.hblank_start = timing->h_total - timing->h_front_porch; pipes[pipe_cnt].pipe.dest.hblank_end = pipes[pipe_cnt].pipe.dest.hblank_start - timing->h_addressable
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c +5 -2
@@ -364,7 +364,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerformanfor (k =0 ; k < mode_lib->vba.NumberOfActiveSurfaces; ++k) { v->DSCDelay[k] =dml32_DSCDelayRequirement (mode_lib->vba.DSCEnabled[k], mode_lib->vba.ODMCombineEnabled[k], mode_lib->vba.DSCInputBitPerComponent[k], - mode_lib->vba.OutputBpp[k], mode_lib->vba.HActive[k], mode_lib->vba.HTotal[k], + mode_lib->vba.OutputBppPerState[mode_lib->vba.VoltageLevel][k], + mode_lib->vba.HActive[k], mode_lib->vba.HTotal[k], mode_lib->vba.NumberOfDSCSlices[k], mode_lib->vba.OutputFormat[k], mode_lib->vba.Output[k], mode_lib->vba.PixelClock[k], mode_lib->vba.PixelClockBackEnd[k]);
@@ -717,6 +718,8 @@ static void DISPCLKDPPCLKDCFCLKDeepSleepPrefetchParametersWatermarksAndPerforman do { MaxTotalRDBandwidth = 0; + DestinationLineTimesForPrefetchLessThan2 = false; + VRatioPrefetchMoreThanMax = false; #ifdef __DML_VBA_DEBUG__ dml_print("DML::%s: Start loop: VStartup = %d\n", __func__, mode_lib->vba.VStartupLines); #endif
@@ -1627,7 +1630,7 @@ static void mode_support_configuration(struct vba_vars_st *v, && !mode_lib->vba.MSOOrODMSplitWithNonDPLink && !mode_lib->vba.NotEnoughLanesForMSO && mode_lib->vba.LinkCapacitySupport[i] == true && !mode_lib->vba.P2IWith420 - && !mode_lib->vba.DSCOnlyIfNecessaryWithBPP +//&& !mode_lib->vba.DSCOnlyIfNecessaryWithBPP && !mode_lib->vba.DSC422NativeNotSupported && !mode_lib->vba.MPCCombineMethodIncompatible && mode_lib->vba.ODMCombine2To1SupportCheckOK[i] == true
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c +1 -1
@@ -1746,7 +1746,7 @@ unsigned int dml32_DSCDelayRequirement(bool DSCEnabled, } DSCDelayRequirement_val = DSCDelayRequirement_val + (HTotal - HActive) * -dml_ceil (DSCDelayRequirement_val / HActive,1 ); +dml_ceil ((double )DSCDelayRequirement_val / HActive,1 ); DSCDelayRequirement_val = DSCDelayRequirement_val * PixelClock / PixelClockBackEnd;
drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.c +2 -2
@@ -291,8 +291,8 @@ void dml32_rq_dlg_get_dlg_reg(struct display_mode_lib *mode_lib,dml_print ("DML_DLG: %s: vready_after_vcount0 = %d\n" , __func__, dlg_regs->vready_after_vcount0); - dst_x_after_scaler =get_dst_x_after_scaler (mode_lib, e2e_pipe_param, num_pipes, pipe_idx); - dst_y_after_scaler =get_dst_y_after_scaler (mode_lib, e2e_pipe_param, num_pipes, pipe_idx); + dst_x_after_scaler =dml_ceil (get_dst_x_after_scaler (mode_lib, e2e_pipe_param, num_pipes, pipe_idx),1 ); + dst_y_after_scaler =dml_ceil (get_dst_y_after_scaler (mode_lib, e2e_pipe_param, num_pipes, pipe_idx),1 );// do some adjustment on the dst_after scaler to account for odm combine mode dml_print ("DML_DLG: %s: input dst_x_after_scaler = %d\n" , __func__, dst_x_after_scaler);
drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c +1 -1
@@ -624,7 +624,7 @@ static void fetch_pipe_params(struct display_mode_lib *mode_lib) mode_lib->vba.skip_dio_check[mode_lib->vba.NumberOfActivePlanes] = dout->is_virtual; -if (!dout->dsc_enable) +if (dout->dsc_enable) mode_lib->vba.ForcedOutputLinkBPP[mode_lib->vba.NumberOfActivePlanes] = dout->output_bpp;else mode_lib->vba.ForcedOutputLinkBPP[mode_lib->vba.NumberOfActivePlanes] =0.0 ;
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +11 -12
@@ -1131,22 +1131,21 @@ static int smu_smc_hw_setup(struct smu_context *smu)uint64_t features_supported;int ret =0 ; -if (adev->in_suspend &&smu_is_dpm_running (smu)) { -dev_info (adev->dev,"dpm has been enabled\n" ); -/* this is needed specifically */ -switch (adev->ip_versions[MP1_HWIP ][0 ]) { -case IP_VERSION (11 ,0 ,7 ): -case IP_VERSION (11 ,0 ,11 ): -case IP_VERSION (11 ,5 ,0 ): -case IP_VERSION (11 ,0 ,12 ): +switch (adev->ip_versions[MP1_HWIP ][0 ]) { +case IP_VERSION (11 ,0 ,7 ): +case IP_VERSION (11 ,0 ,11 ): +case IP_VERSION (11 ,5 ,0 ): +case IP_VERSION (11 ,0 ,12 ): +if (adev->in_suspend &&smu_is_dpm_running (smu)) { +dev_info (adev->dev,"dpm has been enabled\n" ); ret =smu_system_features_control (smu, true);if (ret)dev_err (adev->dev,"Failed system features control!\n" ); -break ; -default : -break ; +return ret; } -return ret; +break ; +default : +break ; } ret =smu_init_display_count (smu,0 );
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h +8 -0
@@ -1372,6 +1372,14 @@ enum smu_cmn2asic_mapping_type { CMN2ASIC_MAPPING_WORKLOAD, }; +enum smu_baco_seq { +BACO_SEQ_BACO =0 , +BACO_SEQ_MSR , +BACO_SEQ_BAMACO , +BACO_SEQ_ULPS , +BACO_SEQ_COUNT , +}; +#define MSG_MAP (msg, index, valid_in_vf) \ [SMU_MSG_##msg] = {1, (index), (valid_in_vf)}
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h +1 -9
@@ -147,14 +147,6 @@ struct smu_11_5_power_context {uint32_t max_fast_ppt_limit; }; -enum smu_v11_0_baco_seq { -BACO_SEQ_BACO =0 , -BACO_SEQ_MSR , -BACO_SEQ_BAMACO , -BACO_SEQ_ULPS , -BACO_SEQ_COUNT , -}; -#if defined(SWSMU_CODE_LAYER_L2 ) || defined(SWSMU_CODE_LAYER_L3 )int smu_v11_0_init_microcode (struct smu_context *smu);
@@ -257,7 +249,7 @@ int smu_v11_0_baco_enter(struct smu_context *smu);int smu_v11_0_baco_exit (struct smu_context *smu);int smu_v11_0_baco_set_armd3_sequence (struct smu_context *smu, -enum smu_v11_0_baco_seq baco_seq); +enum smu_baco_seq baco_seq);int smu_v11_0_mode1_reset (struct smu_context *smu);
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h +3 -8
@@ -123,14 +123,6 @@ struct smu_13_0_power_context {enum smu_13_0_power_state power_state; }; -enum smu_v13_0_baco_seq { -BACO_SEQ_BACO =0 , -BACO_SEQ_MSR , -BACO_SEQ_BAMACO , -BACO_SEQ_ULPS , -BACO_SEQ_COUNT , -}; -#if defined(SWSMU_CODE_LAYER_L2 ) || defined(SWSMU_CODE_LAYER_L3 )int smu_v13_0_init_microcode (struct smu_context *smu);
@@ -217,6 +209,9 @@ int smu_v13_0_set_azalia_d3_pme(struct smu_context *smu);int smu_v13_0_get_max_sustainable_clocks_by_dc (struct smu_context *smu,struct pp_smu_nv_clock_table *max_clocks); +int smu_v13_0_baco_set_armd3_sequence (struct smu_context *smu, +enum smu_baco_seq baco_seq); +bool smu_v13_0_baco_is_support (struct smu_context *smu);enum smu_baco_state smu_v13_0_baco_get_state (struct smu_context *smu);
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +1 -1
@@ -1576,7 +1576,7 @@ int smu_v11_0_set_azalia_d3_pme(struct smu_context *smu) }int smu_v11_0_baco_set_armd3_sequence (struct smu_context *smu, -enum smu_v11_0_baco_seq baco_seq) +enum smu_baco_seq baco_seq) {return smu_cmn_send_smc_msg_with_param (smu, SMU_MSG_ArmD3, baco_seq,NULL ); }
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +9 -0
@@ -2219,6 +2219,15 @@ int smu_v13_0_gfx_ulv_control(struct smu_context *smu,return ret; } +int smu_v13_0_baco_set_armd3_sequence (struct smu_context *smu, +enum smu_baco_seq baco_seq) +{ +return smu_cmn_send_smc_msg_with_param (smu, + SMU_MSG_ArmD3, + baco_seq, +NULL ); +} +bool smu_v13_0_baco_is_support (struct smu_context *smu) {struct smu_baco_context *smu_baco = &smu->smu_baco;
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +28 -2
@@ -120,6 +120,7 @@ static struct cmn2asic_msg_mapping smu_v13_0_0_message_map[SMU_MSG_MAX_COUNT] =MSG_MAP (Mode1Reset, PPSMC_MSG_Mode1Reset,0 ),MSG_MAP (PrepareMp1ForUnload, PPSMC_MSG_PrepareMp1ForUnload,0 ),MSG_MAP (DFCstateControl, PPSMC_MSG_SetExternalClientDfCstateAllow,0 ), + MSG_MAP(ArmD3, PPSMC_MSG_ArmD3, 0), }; static struct cmn2asic_mapping smu_v13_0_0_clk_map[SMU_CLK_COUNT] = {
@@ -1566,6 +1567,31 @@ static int smu_v13_0_0_set_power_profile_mode(struct smu_context *smu, NULL); } +static int smu_v13_0_0_baco_enter (struct smu_context *smu) +{ +struct smu_baco_context *smu_baco = &smu->smu_baco; +struct amdgpu_device *adev = smu->adev; + +if (adev->in_runpm &&smu_cmn_is_audio_func_enabled (adev)) +return smu_v13_0_baco_set_armd3_sequence (smu, + smu_baco->maco_support ?BACO_SEQ_BAMACO :BACO_SEQ_BACO ); +else +return smu_v13_0_baco_enter (smu); +} + +static int smu_v13_0_0_baco_exit (struct smu_context *smu) +{ +struct amdgpu_device *adev = smu->adev; + +if (adev->in_runpm &&smu_cmn_is_audio_func_enabled (adev)) { +/* Wait for PMFW handling for the Dstate change */ +usleep_range (10000 ,11000 ); +return smu_v13_0_baco_set_armd3_sequence (smu,BACO_SEQ_ULPS ); + }else { +return smu_v13_0_baco_exit (smu); + } +} +static bool smu_v13_0_0_is_mode1_reset_supported (struct smu_context *smu) {struct amdgpu_device *adev = smu->adev;
@@ -1827,8 +1853,8 @@ static const struct pptable_funcs smu_v13_0_0_ppt_funcs = { .baco_is_support = smu_v13_0_baco_is_support, .baco_get_state = smu_v13_0_baco_get_state, .baco_set_state = smu_v13_0_baco_set_state, - .baco_enter = smu_v13_0_baco_enter, - .baco_exit = smu_v13_0_baco_exit, + .baco_enter = smu_v13_0_0_baco_enter, + .baco_exit = smu_v13_0_0_baco_exit, .mode1_reset_is_support = smu_v13_0_0_is_mode1_reset_supported, .mode1_reset = smu_v13_0_mode1_reset, .set_mp1_state = smu_v13_0_0_set_mp1_state,
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +28 -2
@@ -122,6 +122,7 @@ static struct cmn2asic_msg_mapping smu_v13_0_7_message_map[SMU_MSG_MAX_COUNT] =MSG_MAP (PrepareMp1ForUnload, PPSMC_MSG_PrepareMp1ForUnload,0 ),MSG_MAP (SetMGpuFanBoostLimitRpm, PPSMC_MSG_SetMGpuFanBoostLimitRpm,0 ),MSG_MAP (DFCstateControl, PPSMC_MSG_SetExternalClientDfCstateAllow,0 ), + MSG_MAP(ArmD3, PPSMC_MSG_ArmD3, 0), }; static struct cmn2asic_mapping smu_v13_0_7_clk_map[SMU_CLK_COUNT] = {
@@ -1578,6 +1579,31 @@ static int smu_v13_0_7_set_mp1_state(struct smu_context *smu,return ret; } +static int smu_v13_0_7_baco_enter (struct smu_context *smu) +{ +struct smu_baco_context *smu_baco = &smu->smu_baco; +struct amdgpu_device *adev = smu->adev; + +if (adev->in_runpm &&smu_cmn_is_audio_func_enabled (adev)) +return smu_v13_0_baco_set_armd3_sequence (smu, + smu_baco->maco_support ?BACO_SEQ_BAMACO :BACO_SEQ_BACO ); +else +return smu_v13_0_baco_enter (smu); +} + +static int smu_v13_0_7_baco_exit (struct smu_context *smu) +{ +struct amdgpu_device *adev = smu->adev; + +if (adev->in_runpm &&smu_cmn_is_audio_func_enabled (adev)) { +/* Wait for PMFW handling for the Dstate change */ +usleep_range (10000 ,11000 ); +return smu_v13_0_baco_set_armd3_sequence (smu,BACO_SEQ_ULPS ); + }else { +return smu_v13_0_baco_exit (smu); + } +} +static bool smu_v13_0_7_is_mode1_reset_supported (struct smu_context *smu) {struct amdgpu_device *adev = smu->adev;
@@ -1655,8 +1681,8 @@ static const struct pptable_funcs smu_v13_0_7_ppt_funcs = { .baco_is_support = smu_v13_0_baco_is_support, .baco_get_state = smu_v13_0_baco_get_state, .baco_set_state = smu_v13_0_baco_set_state, - .baco_enter = smu_v13_0_baco_enter, - .baco_exit = smu_v13_0_baco_exit, + .baco_enter = smu_v13_0_7_baco_enter, + .baco_exit = smu_v13_0_7_baco_exit, .mode1_reset_is_support = smu_v13_0_7_is_mode1_reset_supported, .mode1_reset = smu_v13_0_mode1_reset, .set_mp1_state = smu_v13_0_7_set_mp1_state,
drivers/gpu/drm/display/drm_dp_dual_mode_helper.c +29 -22
91 lines not on this page · raw message
drivers/gpu/drm/drm_drv.c +1 -1
@@ -615,7 +615,7 @@ static int drm_dev_init(struct drm_device *dev,mutex_init (&dev->clientlist_mutex);mutex_init (&dev->master_mutex); - ret =drmm_add_action (dev, drm_dev_init_release,NULL ); + ret =drmm_add_action_or_reset (dev, drm_dev_init_release,NULL );if (ret)return ret;
drivers/gpu/drm/drm_internal.h +2 -1
@@ -104,7 +104,8 @@ static inline void drm_vblank_flush_worker(struct drm_vblank_crtc *vblank)static inline void drm_vblank_destroy_worker (struct drm_vblank_crtc *vblank) { -kthread_destroy_worker (vblank->worker); +if (vblank->worker) +kthread_destroy_worker (vblank->worker); }int drm_vblank_worker_init (struct drm_vblank_crtc *vblank);
drivers/gpu/drm/imx/imx-tve.c +3 -2
@@ -218,8 +218,9 @@ static int imx_tve_connector_get_modes(struct drm_connector *connector)return ret; } -static int imx_tve_connector_mode_valid (struct drm_connector *connector, -struct drm_display_mode *mode) +static enum drm_mode_status +imx_tve_connector_mode_valid (struct drm_connector *connector, +struct drm_display_mode *mode) {struct imx_tve *tve =con_to_tve (connector);unsigned long rate;
drivers/gpu/drm/lima/lima_devfreq.c +9 -6
@@ -112,11 +112,6 @@ int lima_devfreq_init(struct lima_device *ldev)unsigned long cur_freq;int ret;const char *regulator_names[] = {"mali" ,NULL }; -const char *clk_names[] = {"core" ,NULL }; -struct dev_pm_opp_config config = { - .regulator_names = regulator_names, - .clk_names = clk_names, - };if (!device_property_present (dev,"operating-points-v2" ))/* Optional, continue without devfreq */
@@ -124,7 +119,15 @@ int lima_devfreq_init(struct lima_device *ldev)spin_lock_init (&ldevfreq->lock); - ret =devm_pm_opp_set_config (dev, &config); +/* +* clkname is set separately so it is not affected by the optional +* regulator setting which may return error. +*/ + ret =devm_pm_opp_set_clkname (dev,"core" ); +if (ret) +return ret; + + ret =devm_pm_opp_set_regulators (dev, regulator_names);if (ret) {/* Continue if the optional regulator is missing */ if (ret != -ENODEV )
drivers/gpu/drm/msm/adreno/adreno_device.c +9 -1
@@ -679,6 +679,9 @@ static int adreno_system_suspend(struct device *dev)struct msm_gpu *gpu =dev_to_gpu (dev);int remaining, ret; +if (!gpu) +return 0 ; +suspend_scheduler (gpu); remaining = wait_event_timeout(gpu->retire_event,
@@ -700,7 +703,12 @@ static int adreno_system_suspend(struct device *dev)static int adreno_system_resume (struct device *dev) { -resume_scheduler (dev_to_gpu (dev)); +struct msm_gpu *gpu =dev_to_gpu (dev); + +if (!gpu) +return 0 ; + +resume_scheduler (gpu);return pm_runtime_force_resume (dev); }
drivers/gpu/drm/msm/msm_gpu.c +2 -0
@@ -993,4 +993,6 @@ void msm_gpu_cleanup(struct msm_gpu *gpu) }msm_devfreq_cleanup (gpu); + +platform_set_drvdata (gpu->pdev,NULL ); }
drivers/gpu/drm/msm/msm_gpu.h +4 -0
@@ -282,6 +282,10 @@ struct msm_gpu {static inline struct msm_gpu *dev_to_gpu (struct device *dev) {struct adreno_smmu_priv *adreno_smmu =dev_get_drvdata (dev); + +if (!adreno_smmu) +return NULL ; + return container_of(adreno_smmu, struct msm_gpu, adreno_smmu); }
drivers/gpu/drm/panel/panel-simple.c +2 -0
@@ -2505,6 +2505,7 @@ static const struct display_timing logictechno_lt161010_2nh_timing = {static const struct panel_desc logictechno_lt161010_2nh = { .timings = &logictechno_lt161010_2nh_timing, .num_timings =1 , + .bpc =6 , .size = { .width =154 , .height =86 ,
@@ -2534,6 +2535,7 @@ static const struct display_timing logictechno_lt170410_2whc_timing = {static const struct panel_desc logictechno_lt170410_2whc = { .timings = &logictechno_lt170410_2whc_timing, .num_timings =1 , + .bpc =8 , .size = { .width =217 , .height =136 ,
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +8 -2
@@ -878,10 +878,14 @@ static void vop2_crtc_atomic_disable(struct drm_crtc *crtc, {struct vop2_video_port *vp =to_vop2_video_port (crtc);struct vop2 *vop2 = vp->vop2; +struct drm_crtc_state *old_crtc_state;int ret;vop2_lock (vop2); + old_crtc_state =drm_atomic_get_old_crtc_state (state, crtc); +drm_atomic_helper_disable_planes_on_crtc (old_crtc_state, false); +drm_crtc_vblank_off (crtc);/*
@@ -997,13 +1001,15 @@ static int vop2_plane_atomic_check(struct drm_plane *plane,static void vop2_plane_atomic_disable (struct drm_plane *plane,struct drm_atomic_state *state) { -struct drm_plane_state *old_pstate =drm_atomic_get_old_plane_state (state, plane); +struct drm_plane_state *old_pstate =NULL ;struct vop2_win *win =to_vop2_win (plane);struct vop2 *vop2 = win->vop2;drm_dbg (vop2->drm,"%s disable\n" , win->data->name); -if (!old_pstate->crtc) +if (state) + old_pstate =drm_atomic_get_old_plane_state (state, plane); +if (old_pstate && !old_pstate->crtc)return ;vop2_win_disable (win);
drivers/gpu/drm/scheduler/sched_entity.c +5 -1
@@ -207,6 +207,7 @@ static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f, struct drm_sched_job *job = container_of(cb, struct drm_sched_job, finish_cb); +dma_fence_put (f);INIT_WORK (&job->work, drm_sched_entity_kill_jobs_work);schedule_work (&job->work); }
@@ -234,8 +235,10 @@ static void drm_sched_entity_kill_jobs(struct drm_sched_entity *entity)struct drm_sched_fence *s_fence = job->s_fence;/* Wait for all dependencies to avoid data corruptions */ -while ((f =drm_sched_job_dependency (job, entity))) +while ((f =drm_sched_job_dependency (job, entity))) {dma_fence_wait (f, false); +dma_fence_put (f); + }drm_sched_fence_scheduled (s_fence);dma_fence_set_error (&s_fence->finished, -ESRCH );
@@ -250,6 +253,7 @@ static void drm_sched_entity_kill_jobs(struct drm_sched_entity *entity)continue ; } +dma_fence_get (entity->last_scheduled); r =dma_fence_add_callback (entity->last_scheduled, &job->finish_cb, drm_sched_entity_kill_jobs_cb);
drivers/gpu/drm/vc4/vc4_kms.c +4 -4
@@ -198,8 +198,8 @@ vc4_hvs_get_new_global_state(struct drm_atomic_state *state)struct drm_private_state *priv_state; priv_state =drm_atomic_get_new_private_obj_state (state, &vc4->hvs_channels); -if (IS_ERR (priv_state)) -return ERR_CAST (priv_state); +if (!priv_state) +return ERR_PTR (-EINVAL );return to_vc4_hvs_state (priv_state); }
@@ -211,8 +211,8 @@ vc4_hvs_get_old_global_state(struct drm_atomic_state *state)struct drm_private_state *priv_state; priv_state =drm_atomic_get_old_private_obj_state (state, &vc4->hvs_channels); -if (IS_ERR (priv_state)) -return ERR_CAST (priv_state); +if (!priv_state) +return ERR_PTR (-EINVAL );return to_vc4_hvs_state (priv_state); }
drivers/i2c/busses/i2c-i801.c +1 -0
@@ -1243,6 +1243,7 @@ static const struct {*/ { "Latitude 5480", 0x29 }, { "Vostro V131", 0x1d }, + { "Vostro 5568", 0x29 }, };static void register_dell_lis3lv02d_i2c_device (struct i801_priv *priv)
drivers/i2c/busses/i2c-tegra.c +10 -6
@@ -284,6 +284,7 @@ struct tegra_i2c_dev {struct dma_chan *tx_dma_chan;struct dma_chan *rx_dma_chan;unsigned int dma_buf_size; +struct device *dma_dev;dma_addr_t dma_phys;void *dma_buf;
@@ -420,7 +421,7 @@ static int tegra_i2c_dma_submit(struct tegra_i2c_dev *i2c_dev, size_t len)static void tegra_i2c_release_dma (struct tegra_i2c_dev *i2c_dev) {if (i2c_dev->dma_buf) { -dma_free_coherent (i2c_dev->dev, i2c_dev->dma_buf_size, +dma_free_coherent (i2c_dev->dma_dev, i2c_dev->dma_buf_size, i2c_dev->dma_buf, i2c_dev->dma_phys); i2c_dev->dma_buf =NULL ; }
@@ -467,10 +468,13 @@ static int tegra_i2c_init_dma(struct tegra_i2c_dev *i2c_dev) i2c_dev->tx_dma_chan = chan; +WARN_ON (i2c_dev->tx_dma_chan->device != i2c_dev->rx_dma_chan->device); + i2c_dev->dma_dev = chan->device->dev; + i2c_dev->dma_buf_size = i2c_dev->hw->quirks->max_write_len +I2C_PACKET_HEADER_SIZE ; - dma_buf =dma_alloc_coherent (i2c_dev->dev, i2c_dev->dma_buf_size, + dma_buf =dma_alloc_coherent (i2c_dev->dma_dev, i2c_dev->dma_buf_size, &dma_phys,GFP_KERNEL | __GFP_NOWARN);if (!dma_buf) {dev_err (i2c_dev->dev,"failed to allocate DMA buffer\n" );
@@ -1267,7 +1271,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,if (i2c_dev->dma_mode) {if (i2c_dev->msg_read) { -dma_sync_single_for_device (i2c_dev->dev, +dma_sync_single_for_device (i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size,DMA_FROM_DEVICE );
@@ -1275,7 +1279,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,if (err)return err; }else { -dma_sync_single_for_cpu (i2c_dev->dev, +dma_sync_single_for_cpu (i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size,DMA_TO_DEVICE ); }
@@ -1288,7 +1292,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,memcpy (i2c_dev->dma_buf +I2C_PACKET_HEADER_SIZE , msg->buf, msg->len); -dma_sync_single_for_device (i2c_dev->dev, +dma_sync_single_for_device (i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size,DMA_TO_DEVICE );
@@ -1339,7 +1343,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev, }if (i2c_dev->msg_read && i2c_dev->msg_err ==I2C_ERR_NONE ) { -dma_sync_single_for_cpu (i2c_dev->dev, +dma_sync_single_for_cpu (i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size,DMA_FROM_DEVICE );
drivers/iio/accel/bma400_core.c +12 -12
@@ -737,18 +737,6 @@ static int bma400_init(struct bma400_data *data)unsigned int val;int ret; -/* Try to read chip_id register. It must return 0x90. */ - ret =regmap_read (data->regmap,BMA400_CHIP_ID_REG , &val); -if (ret) { -dev_err (data->dev,"Failed to read chip id register\n" ); -return ret; - } - -if (val !=BMA400_ID_REG_VAL ) { -dev_err (data->dev,"Chip ID mismatch\n" ); -return -ENODEV ; - } - data->regulators[BMA400_VDD_REGULATOR ].supply ="vdd" ; data->regulators[BMA400_VDDIO_REGULATOR ].supply ="vddio" ; ret = devm_regulator_bulk_get(data->dev,
@@ -774,6 +762,18 @@ static int bma400_init(struct bma400_data *data)if (ret)return ret; +/* Try to read chip_id register. It must return 0x90. */ + ret =regmap_read (data->regmap,BMA400_CHIP_ID_REG , &val); +if (ret) { +dev_err (data->dev,"Failed to read chip id register\n" ); +return ret; + } + +if (val !=BMA400_ID_REG_VAL ) { +dev_err (data->dev,"Chip ID mismatch\n" ); +return -ENODEV ; + } + ret =bma400_get_power_mode (data);if (ret) {dev_err (data->dev,"Failed to get the initial power-mode\n" );
drivers/iio/adc/at91_adc.c +3 -1
@@ -634,8 +634,10 @@ static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *idev, trig->ops = &at91_adc_trigger_ops; ret =iio_trigger_register (trig); -if (ret) +if (ret) { +iio_trigger_free (trig);return NULL ; + }return trig; }
drivers/iio/adc/mp2629_adc.c +3 -2
@@ -57,7 +57,8 @@ static struct iio_map mp2629_adc_maps[] = {MP2629_MAP (SYSTEM_VOLT ,"system-volt" ),MP2629_MAP (INPUT_VOLT ,"input-volt" ),MP2629_MAP (BATT_CURRENT ,"batt-current" ), -MP2629_MAP (INPUT_CURRENT ,"input-current" ) + MP2629_MAP(INPUT_CURRENT, "input-current"), + { } }; static int mp2629_read_raw(struct iio_dev *indio_dev,
@@ -74,7 +75,7 @@ static int mp2629_read_raw(struct iio_dev *indio_dev,if (ret)return ret; -if (chan->address ==MP2629_INPUT_VOLT ) +if (chan->channel ==MP2629_INPUT_VOLT ) rval &=GENMASK (6 ,0 ); *val = rval;return IIO_VAL_INT ;
drivers/iio/pressure/ms5611.h +4 -8
@@ -25,13 +25,6 @@ enum { MS5607, }; -struct ms5611_chip_info { -u16 prom[MS5611_PROM_WORDS_NB ]; - -int (*temp_and_pressure_compensate)(struct ms5611_chip_info *chip_info, -s32 *temp,s32 *pressure); -}; -/* * OverSampling Rate descriptor. * Warning: cmd MUST be kept aligned on a word boundary (see
@@ -50,12 +43,15 @@ struct ms5611_state {const struct ms5611_osr *pressure_osr;const struct ms5611_osr *temp_osr; +u16 prom[MS5611_PROM_WORDS_NB ]; +int (*reset)(struct ms5611_state *st);int (*read_prom_word)(struct ms5611_state *st,int index,u16 *word);int (*read_adc_temp_and_pressure)(struct ms5611_state *st,s32 *temp,s32 *pressure); -struct ms5611_chip_info *chip_info; +int (*compensate_temp_and_pressure)(struct ms5611_state *st,s32 *temp, +s32 *pressure);struct regulator *vdd; };
drivers/iio/pressure/ms5611_core.c +27 -24
101 lines not on this page · raw message
drivers/iio/pressure/ms5611_spi.c +1 -1
@@ -91,7 +91,7 @@ static int ms5611_spi_probe(struct spi_device *spi)spi_set_drvdata (spi, indio_dev); spi->mode =SPI_MODE_0 ; - spi->max_speed_hz =20000000 ; + spi->max_speed_hz =min (spi->max_speed_hz,20000000U ); spi->bits_per_word =8 ; ret =spi_setup (spi);if (ret <0 )
drivers/iio/trigger/iio-trig-sysfs.c +5 -1
@@ -203,9 +203,13 @@ static int iio_sysfs_trigger_remove(int id)static int __init iio_sysfs_trig_init (void ) { +int ret;device_initialize (&iio_sysfs_trig_dev);dev_set_name (&iio_sysfs_trig_dev,"iio_sysfs_trigger" ); -return device_add (&iio_sysfs_trig_dev); + ret =device_add (&iio_sysfs_trig_dev); +if (ret) +put_device (&iio_sysfs_trig_dev); +return ret; }module_init (iio_sysfs_trig_init);
drivers/infiniband/hw/efa/efa_main.c +3 -1
@@ -1,6 +1,6 @@// SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause /* -* Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved. +* Copyright 2018-2022 Amazon.com, Inc. or its affiliates. All rights reserved. */ #include <linux/module.h>
@@ -14,10 +14,12 @@#define PCI_DEV_ID_EFA0_VF 0xefa0#define PCI_DEV_ID_EFA1_VF 0xefa1 +#define PCI_DEV_ID_EFA2_VF 0xefa2static const struct pci_device_id efa_pci_tbl[] = { {PCI_VDEVICE (AMAZON ,PCI_DEV_ID_EFA0_VF ) }, {PCI_VDEVICE (AMAZON ,PCI_DEV_ID_EFA1_VF ) }, + {PCI_VDEVICE (AMAZON ,PCI_DEV_ID_EFA2_VF ) }, { } };
drivers/input/joystick/iforce/iforce-main.c +4 -4
@@ -273,22 +273,22 @@ int iforce_init_device(struct device *parent, u16 bustype,* Get device info. */ -if (!iforce_get_id_packet (iforce,'M' , buf, &len) || len <3 ) +if (!iforce_get_id_packet (iforce,'M' , buf, &len) && len >=3 ) input_dev->id.vendor =get_unaligned_le16 (buf +1 );else dev_warn (&iforce->dev->dev,"Device does not respond to id packet M\n" ); -if (!iforce_get_id_packet (iforce,'P' , buf, &len) || len <3 ) +if (!iforce_get_id_packet (iforce,'P' , buf, &len) && len >=3 ) input_dev->id.product =get_unaligned_le16 (buf +1 );else dev_warn (&iforce->dev->dev,"Device does not respond to id packet P\n" ); -if (!iforce_get_id_packet (iforce,'B' , buf, &len) || len <3 ) +if (!iforce_get_id_packet (iforce,'B' , buf, &len) && len >=3 ) iforce->device_memory.end =get_unaligned_le16 (buf +1 );else dev_warn (&iforce->dev->dev,"Device does not respond to id packet B\n" ); -if (!iforce_get_id_packet (iforce,'N' , buf, &len) || len <2 ) +if (!iforce_get_id_packet (iforce,'N' , buf, &len) && len >=2 ) ff_effects = buf[1 ];else dev_warn (&iforce->dev->dev,"Device does not respond to id packet N\n" );
drivers/input/serio/i8042.c +0 -4
@@ -1543,8 +1543,6 @@ static int i8042_probe(struct platform_device *dev) {int error; - i8042_platform_device = dev; -if (i8042_reset ==I8042_RESET_ALWAYS ) { error =i8042_controller_selftest ();if (error)
@@ -1582,7 +1580,6 @@ static int i8042_probe(struct platform_device *dev)i8042_free_aux_ports ();/* in case KBD failed but AUX not */ i8042_free_irqs ();i8042_controller_reset (false); - i8042_platform_device =NULL ;return error; }
@@ -1592,7 +1589,6 @@ static int i8042_remove(struct platform_device *dev)i8042_unregister_ports ();i8042_free_irqs ();i8042_controller_reset (false); - i8042_platform_device =NULL ;return 0 ; }
drivers/iommu/intel/iommu.c +3 -5
@@ -954,11 +954,9 @@ static struct dma_pte *pfn_to_dma_pte(struct dmar_domain *domain,domain_flush_cache (domain, tmp_page,VTD_PAGE_SIZE ); pteval = ((uint64_t )virt_to_dma_pfn (tmp_page) <<VTD_PAGE_SHIFT ) |DMA_PTE_READ |DMA_PTE_WRITE ; -if (domain_use_first_level (domain)) { - pteval |=DMA_FL_PTE_XD |DMA_FL_PTE_US ; -if (iommu_is_dma_domain (&domain->domain)) - pteval |=DMA_FL_PTE_ACCESS ; - } +if (domain_use_first_level (domain)) + pteval |=DMA_FL_PTE_XD |DMA_FL_PTE_US |DMA_FL_PTE_ACCESS ; +if (cmpxchg64 (&pte->val,0ULL , pteval))/* Someone else set it while we were thinking; use theirs. */ free_pgtable_page (tmp_page);
drivers/iommu/intel/pasid.c +3 -2
@@ -652,7 +652,7 @@ int intel_pasid_setup_second_level(struct intel_iommu *iommu,* Since it is a second level only translation setup, we should * set SRE bit as well (addresses are expected to be GPAs). */ -if (pasid !=PASID_RID2PASID ) +if (pasid !=PASID_RID2PASID &&ecap_srs (iommu->ecap))pasid_set_sre (pte);pasid_set_present (pte);spin_unlock (&iommu->lock);
@@ -695,7 +695,8 @@ int intel_pasid_setup_pass_through(struct intel_iommu *iommu,* We should set SRE bit as well since the addresses are expected * to be GPAs. */ -pasid_set_sre (pte); +if (ecap_srs (iommu->ecap)) +pasid_set_sre (pte);pasid_set_present (pte);spin_unlock (&iommu->lock);
drivers/isdn/mISDN/core.c +1 -1
@@ -222,7 +222,7 @@ mISDN_register_device(struct mISDNdevice *dev, err =get_free_devid ();if (err <0 ) - goto error1; +return err; dev->id = err;device_initialize (&dev->dev);
drivers/isdn/mISDN/dsp_pipeline.c +2 -1
@@ -77,6 +77,7 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)if (!entry)return -ENOMEM ; +INIT_LIST_HEAD (&entry->list); entry->elem = elem; entry->dev.class = elements_class;
@@ -107,7 +108,7 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)device_unregister (&entry->dev);return ret; err1: -kfree (entry); +put_device (&entry->dev);return ret; }EXPORT_SYMBOL (mISDN_dsp_element_register);
drivers/md/dm-bufio.c +2 -0
@@ -1858,6 +1858,8 @@ struct dm_bufio_client *dm_bufio_client_create(struct block_device *bdev, unsigndm_io_client_destroy (c->dm_io); bad_dm_io:mutex_destroy (&c->lock); +if (c->no_sleep) +static_branch_dec (&no_sleep_enabled);kfree (c); bad_client:return ERR_PTR (r);
drivers/md/dm-crypt.c +1 -0
@@ -3630,6 +3630,7 @@ static void crypt_io_hints(struct dm_target *ti, struct queue_limits *limits) limits->physical_block_size =max_t (unsigned, limits->physical_block_size, cc->sector_size); limits->io_min =max_t (unsigned, limits->io_min, cc->sector_size); + limits->dma_alignment = limits->logical_block_size -1 ; }static struct target_type crypt_target = {
drivers/md/dm-ioctl.c +2 -2
@@ -655,7 +655,7 @@ static void list_version_get_needed(struct target_type *tt, void *needed_param)size_t *needed = needed_param; *needed +=sizeof (struct dm_target_versions ); - *needed +=strlen (tt->name); + *needed +=strlen (tt->name) +1 ; *needed +=ALIGN_MASK ; }
@@ -720,7 +720,7 @@ static int __list_versions(struct dm_ioctl *param, size_t param_size, const char iter_info.old_vers =NULL ; iter_info.vers = vers; iter_info.flags =0 ; - iter_info.end = (char *)vers+len; + iter_info.end = (char *)vers + needed;/* * Now loop through filling out the names & versions.
drivers/misc/vmw_vmci/vmci_queue_pair.c +2 -0
@@ -854,6 +854,7 @@ static int qp_notify_peer_local(bool attach, struct vmci_handle handle)u32 context_id =vmci_get_context_id ();struct vmci_event_qp ev; +memset (&ev,0 ,sizeof (ev)); ev.msg.hdr.dst =vmci_make_handle (context_id,VMCI_EVENT_HANDLER ); ev.msg.hdr.src =vmci_make_handle (VMCI_HYPERVISOR_CONTEXT_ID ,VMCI_CONTEXT_RESOURCE_ID );
@@ -1467,6 +1468,7 @@ static int qp_notify_peer(bool attach,* kernel. */ +memset (&ev,0 ,sizeof (ev)); ev.msg.hdr.dst =vmci_make_handle (peer_id,VMCI_EVENT_HANDLER ); ev.msg.hdr.src =vmci_make_handle (VMCI_HYPERVISOR_CONTEXT_ID ,VMCI_CONTEXT_RESOURCE_ID );
drivers/mmc/core/core.c +7 -1
@@ -1134,7 +1134,13 @@ u32 mmc_select_voltage(struct mmc_host *host, u32 ocr)mmc_power_cycle (host, ocr); }else { bit =fls (ocr) -1 ; - ocr &=3 << bit; +/* +* The bit variable represents the highest voltage bit set in +* the OCR register. +* To keep a range of 2 values (e.g. 3.2V/3.3V and 3.3V/3.4V), +* we must shift the mask '3' with (bit - 1). +*/ + ocr &=3 << (bit -1 );if (bit != host->ios.vdd)dev_warn (mmc_dev (host),"exceeding card's volts\n" ); }
drivers/mmc/host/sdhci-pci-core.c +2 -0
@@ -1728,6 +1728,8 @@ static int amd_probe(struct sdhci_pci_chip *chip) } } +pci_dev_put (smbus_dev); +if (gen ==AMD_CHIPSET_BEFORE_ML || gen ==AMD_CHIPSET_CZ ) chip->quirks2 |=SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD ;
drivers/mmc/host/sdhci-pci-o2micro.c +7 -0
@@ -32,6 +32,7 @@#define O2_SD_CAPS 0xE0#define O2_SD_ADMA1 0xE2#define O2_SD_ADMA2 0xE7 +#define O2_SD_MISC_CTRL2 0xF0#define O2_SD_INF_MOD 0xF1#define O2_SD_MISC_CTRL4 0xFC#define O2_SD_MISC_CTRL 0x1C0
@@ -874,6 +875,12 @@ static int sdhci_pci_o2_probe(struct sdhci_pci_chip *chip)/* Set Tuning Windows to 5 */ pci_write_config_byte (chip->pdev,O2_SD_TUNING_CTRL ,0x55 ); +//Adjust 1st and 2nd CD debounce time +pci_read_config_dword (chip->pdev,O2_SD_MISC_CTRL2 , &scratch_32); + scratch_32 &=0xFFE7FFFF ; + scratch_32 |=0x00180000 ; +pci_write_config_dword (chip->pdev,O2_SD_MISC_CTRL2 , scratch_32); +pci_write_config_dword (chip->pdev,O2_SD_DETECT_SETTING ,1 );/* Lock WP */ ret =pci_read_config_byte (chip->pdev,O2_SD_LOCK_WP , &scratch);
drivers/mtd/nand/onenand/Kconfig +1 -0
@@ -26,6 +26,7 @@ config MTD_ONENAND_OMAP2 tristate "OneNAND on OMAP2/OMAP3 support" depends on ARCH_OMAP2 || ARCH_OMAP3 || (COMPILE_TEST && ARM) depends on OF || COMPILE_TEST
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amazon/ena/ena_netdev.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +53 -9
62 lines not on this page · raw message
drivers/net/ethernet/broadcom/bnxt/bnxt.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cavium/liquidio/lio_main.c +26 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hnae3.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c +0 -20
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.h +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +95 -72
167 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +7 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_main.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeon_ep/octep_main.c +11 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/sparx5/sparx5_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/pensando/ionic/ionic_main.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/mctp/mctp-i2c.c +32 -15
47 lines not on this page · raw message
drivers/net/usb/smsc95xx.c +42 -4
46 lines not on this page · raw message
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/platform/surface/aggregator/ssh_packet_layer.c +20 -4
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/pmc/pltdrv.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/tty/serial/8250/8250_omap.c +26 -19
45 lines not on this page · raw message
drivers/tty/serial/fsl_lpuart.c +49 -27
76 lines not on this page · raw message
drivers/usb/cdns3/host.c +28 -28
56 lines not on this page · raw message
drivers/vfio/vfio_main.c +29 -21
50 lines not on this page · raw message
fs/erofs/fscache.c +93 -133
226 lines not on this page · raw message
io_uring/poll.c +29 -12
41 lines not on this page · raw message
kernel/trace/kprobe_event_gen_test.c +32 -16
48 lines not on this page · raw message
kernel/trace/ring_buffer.c +50 -21
71 lines not on this page · raw message
net/9p/trans_fd.c +29 -16
45 lines not on this page · raw message
net/kcm/kcmsock.c +7 -53
60 lines not on this page · raw message
sound/soc/codecs/wm8962.c +52 -2
54 lines not on this page · raw message
tools/testing/selftests/bpf/test_progs.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_verifier.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/futex/functional/Makefile +2 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/intel_pstate/Makefile +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/pidfd/pidfd_wait.c +10 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.0.10 kernel.
All users of the 6.0 kernel series must upgrade.
The updated 6.0.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.0.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/driver-api/miscellaneous.rst | 5 Documentation/process/code-of-conduct-interpretation.rst | 2 Makefile | 2 arch/arm/boot/dts/imx7s.dtsi | 4 arch/arm/boot/dts/sama7g5-pinfunc.h | 2 arch/arm/mach-at91/pm_suspend.S | 7 arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 32 + arch/arm64/boot/dts/freescale/imx8mm.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mn.dtsi | 2 arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 13 arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 12 arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 6 arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 36 - arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi | 6 arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 6 arch/arm64/boot/dts/qcom/sm8250.dtsi | 1 arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 12 arch/arm64/include/asm/cputype.h | 2 arch/arm64/include/asm/pgtable.h | 4 arch/arm64/mm/mmu.c | 8 arch/arm64/mm/pageattr.c | 11 arch/mips/kernel/relocate_kernel.S | 15 arch/mips/loongson64/reset.c | 10 arch/powerpc/Kconfig | 2 arch/s390/include/asm/processor.h | 11 arch/x86/events/amd/core.c | 5 arch/x86/events/amd/uncore.c | 1 arch/x86/events/intel/pt.c | 9 arch/x86/include/asm/intel-family.h | 11 arch/x86/kernel/cpu/bugs.c | 13 arch/x86/kernel/cpu/sgx/ioctl.c | 3 arch/x86/kernel/fpu/core.c | 2 arch/x86/kvm/kvm-asm-offsets.c | 2 arch/x86/kvm/svm/sev.c | 4 arch/x86/kvm/svm/svm.c | 91 +--- arch/x86/kvm/svm/svm.h | 10 arch/x86/kvm/svm/svm_ops.h | 5 arch/x86/kvm/svm/vmenter.S | 136 +++++- arch/x86/kvm/xen.c | 7 block/blk-cgroup.c | 2 block/blk-core.c | 1 block/blk-mq.c | 1 block/blk-settings.c | 8 block/sed-opal.c | 32 + drivers/accessibility/speakup/main.c | 2 drivers/accessibility/speakup/utils.h | 2 drivers/acpi/scan.c | 1 drivers/acpi/x86/utils.c | 6 drivers/ata/libata-scsi.c | 10 drivers/ata/libata-transport.c | 19 drivers/block/drbd/drbd_main.c | 4 drivers/cxl/core/mbox.c | 2 drivers/cxl/pmem.c | 2 drivers/firmware/arm_scmi/bus.c | 11 drivers/firmware/arm_scmi/common.h | 5 drivers/firmware/arm_scmi/driver.c | 32 - drivers/firmware/arm_scmi/mailbox.c | 2 drivers/firmware/arm_scmi/optee.c | 2 drivers/firmware/arm_scmi/shmem.c | 31 + drivers/firmware/arm_scmi/smc.c | 2 drivers/firmware/google/coreboot_table.c | 37 + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 9 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 35 + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 6 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 10 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 30 + drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 12 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c | 1 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_optc.c | 2 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 1 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c | 7 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.c | 4 drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.c | 2 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 23 - drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 8 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h | 10 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 11 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 2 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 9 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 30 + drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 30 + drivers/gpu/drm/display/drm_dp_dual_mode_helper.c | 51 +- drivers/gpu/drm/drm_drv.c | 2 drivers/gpu/drm/drm_internal.h | 3 drivers/gpu/drm/imx/imx-tve.c | 5 drivers/gpu/drm/lima/lima_devfreq.c | 15 drivers/gpu/drm/msm/adreno/adreno_device.c | 10 drivers/gpu/drm/msm/msm_gpu.c | 2 drivers/gpu/drm/msm/msm_gpu.h | 4 drivers/gpu/drm/panel/panel-simple.c | 2 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 10 drivers/gpu/drm/scheduler/sched_entity.c | 6 drivers/gpu/drm/vc4/vc4_kms.c | 8 drivers/i2c/busses/i2c-i801.c | 1 drivers/i2c/busses/i2c-tegra.c | 16 drivers/iio/accel/bma400_core.c | 24 - drivers/iio/adc/at91_adc.c | 4 drivers/iio/adc/mp2629_adc.c | 5 drivers/iio/pressure/ms5611.h | 12 drivers/iio/pressure/ms5611_core.c | 51 +- drivers/iio/pressure/ms5611_spi.c | 2 drivers/iio/trigger/iio-trig-sysfs.c | 6 drivers/infiniband/hw/efa/efa_main.c | 4 drivers/input/joystick/iforce/iforce-main.c | 8 drivers/input/serio/i8042.c | 4 drivers/iommu/intel/iommu.c | 8 drivers/iommu/intel/pasid.c | 5 drivers/isdn/mISDN/core.c | 2 drivers/isdn/mISDN/dsp_pipeline.c | 3 drivers/md/dm-bufio.c | 2 drivers/md/dm-crypt.c | 1 drivers/md/dm-ioctl.c | 4 drivers/misc/vmw_vmci/vmci_queue_pair.c | 2 drivers/mmc/core/core.c | 8 drivers/mmc/host/sdhci-pci-core.c | 2 drivers/mmc/host/sdhci-pci-o2micro.c | 7 drivers/mtd/nand/onenand/Kconfig | 1 drivers/mtd/nand/raw/qcom_nandc.c | 12 drivers/net/ethernet/amazon/ena/ena_netdev.c | 8 drivers/net/ethernet/atheros/ag71xx.c | 3 drivers/net/ethernet/broadcom/bgmac.c | 1 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 62 ++ drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 3 drivers/net/ethernet/cavium/liquidio/lio_main.c | 34 + drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c | 20 drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.h | 2 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 167 ++++--- drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 1 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 11 drivers/net/ethernet/huawei/hinic/hinic_main.c | 9 drivers/net/ethernet/marvell/octeon_ep/octep_main.c | 16 drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 2 drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c | 3 drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c | 3 drivers/net/ethernet/microchip/sparx5/sparx5_main.c | 3 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 6 drivers/net/ethernet/pensando/ionic/ionic_main.c | 8 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 drivers/net/macvlan.c | 6 drivers/net/mctp/mctp-i2c.c | 47 +- drivers/net/mhi_net.c | 2 drivers/net/netdevsim/dev.c | 1 drivers/net/phy/dp83867.c | 7 drivers/net/phy/marvell.c | 16 drivers/net/thunderbolt.c | 19 drivers/net/usb/smsc95xx.c | 46 +- drivers/nvme/host/ioctl.c | 6 drivers/nvme/host/nvme.h | 16 drivers/nvme/host/pci.c | 4 drivers/nvme/target/auth.c | 2 drivers/nvme/target/configfs.c | 1 drivers/parport/parport_pc.c | 2 drivers/pinctrl/devicetree.c | 2 drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 3 drivers/pinctrl/pinctrl-rockchip.c | 40 + drivers/platform/surface/aggregator/ssh_packet_layer.c | 24 - drivers/platform/x86/amd/pmc.c | 3 drivers/platform/x86/intel/pmc/core.c | 2 drivers/platform/x86/intel/pmc/pltdrv.c | 9 drivers/platform/x86/thinkpad_acpi.c | 4 drivers/s390/block/dcssblk.c | 1 drivers/s390/scsi/zfcp_fsf.c | 2 drivers/scsi/scsi_debug.c | 6 drivers/scsi/scsi_transport_sas.c | 13 drivers/siox/siox-core.c | 2 drivers/slimbus/Kconfig | 2 drivers/slimbus/stream.c | 8 drivers/soc/imx/soc-imx8m.c | 11 drivers/spi/spi-intel.c | 2 drivers/spi/spi-stm32.c | 1 drivers/spi/spi-tegra210-quad.c | 5 drivers/target/loopback/tcm_loop.c | 3 drivers/tty/n_gsm.c | 2 drivers/tty/serial/8250/8250_lpss.c | 17 drivers/tty/serial/8250/8250_omap.c | 45 + drivers/tty/serial/8250/8250_port.c | 7 drivers/tty/serial/fsl_lpuart.c | 76 ++- drivers/tty/serial/imx.c | 1 drivers/usb/cdns3/host.c | 56 +- drivers/usb/chipidea/otg_fsm.c | 2 drivers/usb/core/quirks.c | 3 drivers/usb/dwc3/core.c | 10 drivers/usb/dwc3/host.c | 10 drivers/usb/host/bcma-hcd.c | 10 drivers/usb/serial/option.c | 19 drivers/usb/typec/mux/intel_pmc_mux.c | 15 drivers/usb/typec/tipd/core.c | 6 drivers/vfio/vfio_main.c | 50 +- drivers/xen/pcpu.c | 2 fs/btrfs/raid56.c | 6 fs/btrfs/tests/qgroup-tests.c | 16 fs/buffer.c | 4 fs/ceph/snap.c | 3 fs/cifs/connect.c | 14 fs/cifs/ioctl.c | 4 fs/cifs/misc.c | 6 fs/cifs/smb2misc.c | 12 fs/cifs/smb2ops.c | 10 fs/cifs/smb2transport.c | 6 fs/erofs/fscache.c | 226 ++++------ fs/gfs2/ops_fstype.c | 17 fs/hugetlbfs/inode.c | 32 - fs/namei.c | 2 fs/netfs/buffered_read.c | 20 fs/netfs/io.c | 3 fs/nfs/nfs4proc.c | 6 fs/nfsd/nfs4state.c | 1 fs/ntfs/attrib.c | 28 + fs/ntfs/inode.c | 7 include/linux/blkdev.h | 15 include/linux/bpf.h | 4 include/linux/hugetlb.h | 2 include/linux/io_uring.h | 3 include/linux/ring_buffer.h | 2 include/linux/trace.h | 4 include/linux/wireless.h | 10 include/net/ip.h | 2 include/net/ipv6.h | 2 include/soc/at91/sama7-ddr.h | 5 include/uapi/linux/ip.h | 6 include/uapi/linux/ipv6.h | 6 io_uring/io_uring.c | 12 io_uring/io_uring.h | 4 io_uring/net.c | 23 - io_uring/poll.c | 41 + kernel/bpf/percpu_freelist.c | 23 - kernel/bpf/syscall.c | 11 kernel/bpf/trampoline.c | 15 kernel/bpf/verifier.c | 14 kernel/events/core.c | 25 - kernel/kprobes.c | 8 kernel/rseq.c | 19 kernel/trace/bpf_trace.c | 6 kernel/trace/ftrace.c | 5 kernel/trace/kprobe_event_gen_test.c | 48 +- kernel/trace/rethook.c | 4 kernel/trace/ring_buffer.c | 71 ++- kernel/trace/synth_event_gen_test.c | 16 kernel/trace/trace.c | 12 kernel/trace/trace_eprobe.c | 3 kernel/trace/trace_events_synth.c | 5 mm/filemap.c | 2 mm/hugetlb.c | 12 mm/maccess.c | 2 mm/memory-failure.c | 5 net/9p/trans_fd.c | 45 + net/bluetooth/l2cap_core.c | 2 net/bpf/test_run.c | 1 net/bridge/br_vlan.c | 17 net/caif/chnl_net.c | 3 net/dsa/dsa2.c | 10 net/dsa/dsa_priv.h | 1 net/dsa/master.c | 3 net/dsa/port.c | 16 net/ipv4/tcp_cdg.c | 2 net/kcm/kcmsock.c | 60 -- net/netfilter/ipset/ip_set_core.c | 8 net/netlink/af_netlink.c | 8 net/sctp/outqueue.c | 13 net/sunrpc/auth_gss/auth_gss.c | 2 net/wireless/wext-core.c | 17 net/x25/x25_dev.c | 2 sound/pci/hda/patch_realtek.c | 2 sound/soc/amd/yc/acp6x-mach.c | 21 sound/soc/codecs/jz4725b.c | 34 - sound/soc/codecs/mt6660.c | 8 sound/soc/codecs/rt1019.c | 20 sound/soc/codecs/rt1019.h | 6 sound/soc/codecs/rt1308-sdw.h | 2 sound/soc/codecs/rt5514-spi.c | 15 sound/soc/codecs/rt5677-spi.c | 19 sound/soc/codecs/rt5682s.c | 15 sound/soc/codecs/rt5682s.h | 1 sound/soc/codecs/tas2764.c | 19 sound/soc/codecs/tas2770.c | 20 sound/soc/codecs/tas2780.c | 19 sound/soc/codecs/wm5102.c | 6 sound/soc/codecs/wm5110.c | 6 sound/soc/codecs/wm8962.c | 54 ++ sound/soc/codecs/wm8997.c | 6 sound/soc/fsl/fsl_asrc.c | 2 sound/soc/fsl/fsl_esai.c | 2 sound/soc/fsl/fsl_sai.c | 2 sound/soc/intel/boards/sof_rt5682.c | 12 sound/soc/intel/boards/sof_sdw.c | 11 sound/soc/soc-core.c | 17 sound/soc/soc-utils.c | 2 sound/soc/sof/topology.c | 20 sound/usb/midi.c | 4 tools/testing/cxl/test/cxl.c | 4 tools/testing/selftests/bpf/test_progs.c | 2 tools/testing/selftests/bpf/test_verifier.c | 2 tools/testing/selftests/futex/functional/Makefile | 6 tools/testing/selftests/intel_pstate/Makefile | 6 tools/testing/selftests/kexec/Makefile | 6 tools/testing/selftests/pidfd/pidfd_wait.c | 10 304 files changed, 2491 insertions(+), 1294 deletions(-)
Aashish Sharma (1):
tracing: Fix warning on variable 'struct trace_array'
Adrian Hunter (1):
perf/x86/intel/pt: Fix sampling using single range output
Aishwarya Kothari (1):
drm/panel: simple: set bpc field for logic technologies displays
Akhil P Oommen (1):
drm/msm/gpu: Fix crash during system suspend after unbind
Akira Yokosawa (1):
docs/driver-api/miscellaneous: Remove kernel-doc of serial_core.c
Al Viro (1):
block: blk_add_rq_to_plug(): clear stale 'last' after flush
Alban Crequy (1):
maccess: Fix writing offset in case of fault in strncpy_from_kernel_nofault()
Alexander Potapenko (2):
misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
mm: fs: initialize fsdata passed to write_begin/write_end interface
Alexander Stein (1):
arm64: dts: imx8mm-tqma8mqml-mba8mx: Fix USB DR
Alexandru Tachici (1):
net: usb: smsc95xx: fix external PHY reset
Alvin Lee (2):
drm/amd/display: Don't return false if no stream drm/amd/display: Enable timing sync on DCN32
Aminuddin Jamaluddin (1):
net: phy: marvell: add sleep time after enabling the loopback bit
Amit Cohen (1):
mlxsw: Avoid warnings when not offloaded FDB entry with IPv6 is removed
Anastasia Belova (2):
cifs: add check for returning value of SMB2_close_init
cifs: add check for returning value of SMB2_set_info_init
Andreas Gruenbacher (1):
gfs2: Switch from strlcpy to strscpy
Andrew Price (1):
gfs2: Check sb_bsize_shift after reading superblock
AngeloGioacchino Del Regno (1):
pinctrl: mediatek: common-v2: Fix bias-disable for PULL_PU_PD_RSEL_TYPE
Ard Biesheuvel (1):
arm64: fix rodata=full again
Baisong Zhong (1):
bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb()
Bean Huo (1):
nvme-pci: add NVME_QUIRK_BOGUS_NID for Micron Nitro
Benjamin Block (1):
scsi: zfcp: Fix double free of FSF request when qdio send fails
Benjamin Coddington (1):
NFSv4: Retry LOCK on OLD_STATEID during delegation return
Benoît Monin (1):
USB: serial: option: add Sierra Wireless EM9191
Borys Popławski (1):
x86/sgx: Add overflow check in sgx_validate_offset_length()
Brian Masney (1):
arm64: dts: qcom: sc8280xp: correct ref clock for ufs_mem_phy
Brian Norris (1):
firmware: coreboot: Register bus in module init
Chen Jun (1):
Input: i8042 - fix leaking of platform device on module removal
Chen Zhongjin (2):
ASoC: core: Fix use-after-free in snd_soc_exit()
ASoC: soc-utils: Remove __exit for snd_soc_util_exit()
Chevron Li (1):
mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce timeout
Chris Mason (1):
blk-cgroup: properly pin the parent in blkcg_css_online
Christian König (1):
drm/scheduler: fix fence ref counting
Christian Marangi (1):
mtd: rawnand: qcom: handle ret from parse with codeword_fixup
Chuang Wang (1):
net: macvlan: Use built-in RCU list checking
Chuck Lever (1):
SUNRPC: Fix crasher in gss_unwrap_resp_integ()
Claudiu Beznea (1):
ARM: at91: pm: avoid soft resetting AC DLL
Colin Ian King (1):
ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" -> "Route"
Cong Wang (1):
kcm: close race conditions on sk_receive_queue
Cristian Marussi (2):
firmware: arm_scmi: Cleanup the core driver removal callback
firmware: arm_scmi: Make tx_prepare time out eventually
D Scott Phillips (1):
arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
Dan Carpenter (1):
drbd: use after free in drbd_create_device()
Dan Williams (1):
tools/testing/cxl: Fix some error exits
Daniil Tatianin (1):
ring_buffer: Do not deactivate non-existant pages
David Howells (2):
netfs: Fix missing xas_retry() calls in xarray iteration
netfs: Fix dodgy maths
Davide Tronchin (3):
USB: serial: option: remove old LARA-R6 PID
USB: serial: option: add u-blox LARA-R6 00B modem
USB: serial: option: add u-blox LARA-L6 modem
Derek Fang (2):
ASoC: rt5682s: Fix the TDM Tx settings
ASoC: rt1019: Fix the TDM settings
Dillon Varone (1):
drm/amd/display: Fix prefetch calculations for dcn32
Dominique Martinet (2):
9p: trans_fd/p9_conn_cancel: drop client lock earlier net/9p: use a dedicated spinlock for trans_fd
Douglas Anderson (6):
arm64: dts: qcom: sa8155p-adp: Specify which LDO modes are allowed
arm64: dts: qcom: sa8295p-adp: Specify which LDO modes are allowed
arm64: dts: qcom: sc8280xp-crd: Specify which LDO modes are allowed
arm64: dts: qcom: sm8150-xperia-kumano: Specify which LDO modes are allowed
arm64: dts: qcom: sm8250-xperia-edo: Specify which LDO modes are allowed
arm64: dts: qcom: sm8350-hdk: Specify which LDO modes are allowed
Duoming Zhou (2):
tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send
usb: chipidea: fix deadlock in ci_otg_del_timer
Dylan Yudaken (1):
io_uring: calculate CQEs from the user visible value
Eiichi Tsukata (1):
KVM: x86/xen: Fix eventfd error handling in kvm_xen_eventfd_assign()
Emil Flink (1):
ALSA: hda/realtek: fix speakers for Samsung Galaxy Book Pro
Eric Dumazet (3):
macvlan: enforce a consistent minimal mtu
tcp: cdg: allow tcp_cdg_release() to be called multiple times
kcm: avoid potential race in kcm_tx_work
Erico Nunes (1):
drm/lima: Fix opp clkname setting in case of missing regulator
Evan Quan (3):
drm/amd/pm: enable runpm support over BACO for SMU13.0.7 drm/amd/pm: enable runpm support over BACO for SMU13.0.0 drm/amd/pm: fix SMU13 runpm hang due to unintentional workaround
Fangzhi Zuo (1):
drm/amd/display: Ignore Cable ID Feature
Filipe Manana (1):
btrfs: remove pointless and double ulist frees in error paths of qgroup tests
Gaosheng Cui (2):
drm/vc4: kms: Fix IS_ERR() vs NULL check for vc4_kms
bnxt_en: Remove debugfs when pci_register_driver failed
Gayatri Kammela (1):
platform/x86/intel: pmc/core: Add Raptor Lake support to pmc core driver
George Shen (4):
drm/amd/display: Fix DCN32 DSC delay calculation drm/amd/display: Use forced DSC bpp in DML drm/amd/display: Round up DST_after_scaler to nearest int drm/amd/display: Support parsing VRAM info v3.0 from VBIOS
Gerald Schaefer (1):
s390/dcssblk: fix deadlock when adding a DCSS
Greg Kroah-Hartman (1):
Linux 6.0.10
Guangbin Huang (1):
net: hns3: fix setting incorrect phy link ksettings for firmware in resetting process
Hangbin Liu (1):
net: use struct_group to copy ip/ipv6 header addresses
Hans de Goede (1):
ACPI: scan: Add LATT2021 to acpi_ignore_dep_ids[]
Hawkins Jiawei (4):
wifi: wext: use flex array destination for memcpy()
ntfs: fix use-after-free in ntfs_attr_find()
ntfs: fix out-of-bounds read in ntfs_attr_find()
ntfs: check overflow when iterating ATTR_RECORDs
Ido Schimmel (1):
bridge: switchdev: Fix memory leaks when changing VLAN protocol
Ilpo Järvinen (4):
serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs
serial: 8250: Flush DMA Rx on RLSI
serial: 8250_lpss: Configure DMA also w/o DMA filter
serial: 8250_lpss: Use 16B DMA burst with Elkhart Lake
Jaco Coetzee (1):
nfp: change eeprom length to max length enumerators
James Houghton (1):
hugetlbfs: don't delete error page from pagecache
Janne Grunau (1):
usb: dwc3: Do not get extcon device when usb-role-switch is used
Jason Gunthorpe (2):
vfio: Rename vfio_ioctl_check_extension()
vfio: Split the register_device ops call into functions
Jason Montleon (2):
ASoC: rt5514: fix legacy dai naming
ASoC: rt5677: fix legacy dai naming
Jeff Layton (1):
nfsd: put the export reference in nfsd4_verify_deleg_dentry
Jelle van der Waa (1):
platform/x86: thinkpad_acpi: Fix reporting a non present second fan on some models
Jeremy Kerr (1):
mctp i2c: don't count unused / invalid keys for flow release
Jian Shen (1):
net: hns3: fix incorrect hw rss hash type of rx packet
Jie Wang (1):
net: hns3: fix return value check bug of rx copybreak
Jingbo Xu (4):
erofs: clean up .read_folio() and .readahead() in fscache mode
erofs: get correct count for unmapped range in fscache mode
erofs: put metabuf in error path in fscache mode
erofs: fix missing xas_retry() in fscache mode
Jiri Olsa (1):
bpf: Prevent bpf program recursion for raw tracepoint probes
Johan Hovold (7):
arm64: dts: qcom: sc8280xp: fix ufs_card_phy ref clock
arm64: dts: qcom: sc8280xp: fix USB0 PHY PCS_MISC registers
arm64: dts: qcom: sc8280xp: fix USB1 PHY RX1 registers
arm64: dts: qcom: sc8280xp: fix USB PHY PCS registers
arm64: dts: qcom: sc8280xp: drop broken DP PHY nodes
arm64: dts: qcom: sc8280xp: fix UFS PHY serdes size
Revert "usb: dwc3: disable USB core PHY management"Jonathan Cameron (2):
cxl/mbox: Add a check on input payload size
iio: accel: bma400: Ensure VDDIO is enable defore reading the chip ID.
Kees Cook (1):
netlink: Bounds-check struct nlmsgerr creation
Keith Busch (4):
block: make dma_alignment a stacking queue_limit
dm-crypt: provide dma_alignment limit in io_hints
nvme: restrict management ioctls to admin
nvme: ensure subsystem reset is single threaded
Krishna Yarlagadda (1):
spi: tegra210-quad: Fix combined sequence
Krzysztof Kozlowski (2):
mtd: onenand: omap2: add dependency on GPMC
slimbus: stream: correct presence rate frequencies
Leohearts (1):
ASoC: amd: yc: Add Lenovo Thinkbook 14+ 2022 21D0 to quirks table
Li Huafei (1):
kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case
Li Jun (1):
usb: cdns3: host: fix endless superspeed hub port reset
Li Zhijian (1):
ksefltests: pidfd: Fix wait_states: Test terminated by timeout
Liao Chang (1):
MIPS: Loongson64: Add WARN_ON on kexec related kmalloc failed
Linus Walleij (1):
USB: bcma: Make GPIO explicitly optional
Liu Jian (1):
net: ag71xx: call phylink_disconnect_phy if ag71xx_hw_enable() fail in ag71xx_open()
Liu Shixin (1):
arm64/mm: fix incorrect file_map_count for non-leaf pmd/pud
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
Maarten Zanders (1):
ASoC: fsl_asrc fsl_esai fsl_sai: allow CONFIG_PM=N
Maciej W. Rozycki (1):
parport_pc: Avoid FIFO port location truncation
Marco Elver (1):
perf: Improve missing SIGTRAP checking
Marek Vasut (4):
spi: stm32: Print summary 'callbacks suppressed' message
ARM: dts: imx7: Fix NAND controller size-cells
arm64: dts: imx8mm: Fix NAND controller size-cells
arm64: dts: imx8mn: Fix NAND controller size-cells
Mario Limonciello (3):
ACPI: x86: Add another system to quirk list for forcing StorageD3Enable drm/amd: Fail the suspend if resources can't be evicted platform/x86/amd: pmc: Remove more CONFIG_DEBUG_FS checks
Martin Povišer (3):
ASoC: tas2770: Fix set_tdm_slot in case of single slot
ASoC: tas2764: Fix set_tdm_slot in case of single slot
ASoC: tas2780: Fix set_tdm_slot in case of single slot
Mathieu Desnoyers (1):
rseq: Use pr_warn_once() when deprecated/unknown ABI flags are encountered
Matthias Schiffer (1):
serial: 8250_omap: remove wait loop from Errata i202 workaround
Mauro Lima (1):
spi: intel: Fix the offset to get the 64K erase opcode
Maximilian Luz (1):
platform/surface: aggregator: Do not check for repeated unsequenced packets
Mel Gorman (1):
x86/fpu: Drop fpregs lock before inheriting FPU permissions
Melissa Wen (1):
drm/amd/display: don't enable DRM CRTC degamma property for DCE
Michael Ellerman (1):
powerpc/64e: Fix amdgpu build on Book3E w/o AltiVec
Michael Margolin (1):
RDMA/efa: Add EFA 0xefa2 PCI ID
Michael Sit Wei Hong (1):
net: phy: dp83867: Fix SGMII FIFO depth for non OF devices
Michael Tretter (2):
drm/rockchip: vop2: fix null pointer in plane_atomic_disable drm/rockchip: vop2: disable planes when disabling the crtc
Mihai Sain (1):
ARM: dts: at91: sama7g5: fix signal name of pin PB2
Mike Kravetz (1):
hugetlb: rename remove_huge_page to hugetlb_delete_from_page_cache
Mike Rapoport (1):
arm64/mm: fold check for KFENCE into can_set_direct_map()
Mikulas Patocka (1):
dm ioctl: fix misbehavior if list_versions races with module loading
Mitja Spes (2):
iio: pressure: ms5611: fixed value compensation bug
iio: pressure: ms5611: changed hardcoded SPI speed to value limited
Mohd Faizal Abdul Rahim (1):
net: stmmac: ensure tx function is not running in stmmac_xdp_release()
Mushahid Hussain (1):
speakup: fix a segfault caused by switching consoles
Nam Cao (1):
i2c: i801: add lis3lv02d's I2C address for Vostro 5568
Nathan Huckleberry (1):
drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
Nevenko Stupar (1):
drm/amd/display: Investigate tool reported FCLK P-state deviations
Nicolas Dumazet (1):
usb: add NO_LPM quirk for Realforce 87U Keyboard
Niklas Cassel (1):
ata: libata-core: do not issue non-internal commands once EH is pending
Paolo Bonzini (4):
KVM: SVM: remove dead field from struct svm_cpu_data
KVM: SVM: do not allocate struct svm_cpu_data dynamically
KVM: SVM: restore host save area from assembly
KVM: SVM: move MSR_IA32_SPEC_CTRL save/restore to assembly
Pavel Begunkov (6):
io_uring/poll: fix double poll req->flags races
io_uring: update res mask in io_poll_check_events
io_uring: fix tw losing poll events
io_uring: fix multishot accept request leaks
io_uring: fix multishot recv request leaks
io_uring: disallow self-propelled ring polling
Peng Fan (1):
arm64: dts: imx93-pinfunc: drop execution permission
Peter Ujfalusi (1):
ASoC: SOF: topology: No need to assign core ID if token parsing failed
Pierre-Louis Bossart (1):
ASoC: Intel: sof_sdw: add quirk variant for LAPBC710 NUC15
Pu Lehui (1):
selftests/bpf: Fix casting error when cross-compiling test_verifier for 32-bit platforms
Qu Wenruo (1):
btrfs: raid56: properly handle the error when unable to find the missing stripe
Quentin Schulz (1):
pinctrl: rockchip: list all pins in a possible mux route for PX30
Rajat Khandelwal (1):
usb: typec: mux: Enter safe mode only when pins need to be reconfigured
Ravi Bangoria (1):
perf/x86/amd: Fix crash due to race between amd_pmu_enable_all, perf NMI and throttling
Reinhard Speyerer (1):
USB: serial: option: add Fibocom FM160 0x0111 composition
Ricardo Cañuelo (3):
selftests/futex: fix build for clang selftests/intel_pstate: fix build for ARCH=x86_64 selftests/kexec: fix build for ARCH=x86_64
Robert Marko (1):
arm64: dts: qcom: ipq8074: correct APCS register space size
Rodrigo Siqueira (2):
drm/amd/display: Remove wrong pipe control lock drm/amd/display: Add HUBP surface flip interrupt handler
Roger Pau Monné (1):
platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when virtualized
Roman Li (1):
drm/amd/display: Fix optc2_configure warning on dcn314
Rongwei Zhang (1):
MIPS: fix duplicate definitions for exported symbols
Sagi Grimberg (2):
nvmet: fix a memory leak
nvmet: fix a memory leak in nvmet_auth_set_key
Sandipan Das (1):
perf/x86/amd/uncore: Fix memory leak for events array
Saravanan Sekar (2):
iio: adc: mp2629: fix wrong comparison of channel
iio: adc: mp2629: fix potential array out of bound access
Satya Priya (1):
arm64: dts: qcom: sc7280: Add the reset reg for lpass audiocc on SC7280
Serge Semin (1):
block: sed-opal: kmalloc the cmd/resp buffers
Shang XiaoJing (8):
drm/drv: Fix potential memory leak in drm_dev_init()
drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker()
net: lan966x: Fix potential null-ptr-deref in lan966x_stats_init()
net: microchip: sparx5: Fix potential null-ptr-deref in sparx_stats_init() and sparx5_start()
tracing: Fix memory leak in test_gen_synth_cmd() and test_empty_synth_event()
tracing: Fix wild-memory-access in register_synth_event()
tracing: kprobe: Fix potential null-ptr-deref on trace_event_file in kprobe_event_gen_test_exit()
tracing: kprobe: Fix potential null-ptr-deref on trace_array in kprobe_event_gen_test_exit()
Shawn Guo (1):
serial: imx: Add missing .thaw_noirq hook
Sherry Sun (1):
tty: serial: fsl_lpuart: don't break the on-going transfer when global reset
Shuah Khan (1):
docs: update mediator contact information in CoC doc
Shuming Fan (1):
ASoC: rt1308-sdw: add the default value of some registers
Shyam Prasad N (1):
cifs: always iterate smb sessions using primary channel
Shyam Sundar S K (1):
platform/x86/amd: pmc: Add new ACPI ID AMDI0009
Siarhei Volkau (4):
ASoC: codecs: jz4725b: add missed Line In power control bit
ASoC: codecs: jz4725b: fix reported volume for Master ctl
ASoC: codecs: jz4725b: use right control for Capture Volume
ASoC: codecs: jz4725b: fix capture selector naming
Simon Rettberg (1):
drm/display: Don't assume dual mode adaptors support i2c sub-addressing
Steven Rostedt (Google) (3):
tracing/ring-buffer: Have polling block on watermark
tracing: Fix race where eprobes can be called before the event
ring-buffer: Include dropped pages in counting dirty patches
Stylon Wang (2):
drm/amd/display: Fix invalid DPIA AUX reply causing system hang drm/amd/display: Fix access timeout to DPIA AUX at boot time
Sven Peter (1):
usb: typec: tipd: Prevent uninitialized event{1,2} in IRQ handler
Takashi Iwai (2):
ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open()
ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book Pro 360
Tetsuo Handa (2):
Input: iforce - invert valid length check when fetching device IDs 9p/trans_fd: always use O_NONBLOCK read/write
Thierry Reding (1):
i2c: tegra: Allocate DMA memory for DMA engine
Tiago Dias Ferreira (1):
nvme-pci: add NVME_QUIRK_BOGUS_NID for Netac NV7000
Tina Zhang (2):
iommu/vt-d: Preset Access bit for IOVA in FL non-leaf paging entries iommu/vt-d: Set SRE bit only when hardware has SRS cap
Tony Lindgren (3):
serial: 8250: omap: Fix missing PM runtime calls for omap8250_set_mctrl()
serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove()
serial: 8250: omap: Flush PM QOS work on remove
Tony Luck (1):
x86/cpu: Add several Intel server CPU model numbers
Ulf Hansson (1):
arm64: dts: qcom: sm8250: Disable the not yet supported cluster idle state
Vasily Gorbik (1):
s390: avoid using global register for current_stack_pointer
Vikas Gupta (2):
bnxt_en: refactor bnxt_cancel_reservations()
bnxt_en: fix the handling of PCIE-AER
Vladimir Oltean (2):
net: dsa: make dsa_master_ioctl() see through port_hwtstamp_get() shims
net: dsa: don't leak tagger-owned storage on switch driver unbind
Wang ShaoBo (1):
mISDN: fix misuse of put_device() in mISDN_register_device()
Wang Wensheng (2):
ftrace: Fix the possible incorrect kernel message
ftrace: Optimize the allocation for mcount entries
Wang Yufen (3):
bpf: Fix memory leaks in __check_func_call
netdevsim: Fix memory leak of nsim_dev->fa_cookie
tracing: Fix memory leak in tracing_read_pipe()
Wei Yongjun (3):
net: bgmac: Drop free_netdev() from bgmac_enet_remove()
net: mhi: Fix memory leak in mhi_net_dellink() net/x25: Fix skb leak in x25_lapb_receive_frame()
Xiaolei Wang (2):
ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK
soc: imx8m: Enable OCOTP clock before reading the register
Xin Long (2):
sctp: remove the unnecessary sinfo_stream check in sctp_prsctp_prune_unsent
sctp: clear out_curr if all frag chunks of current msg are pruned
Xiongfeng Wang (1):
mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put()
Xiu Jianfeng (1):
ftrace: Fix null pointer dereference in ftrace_add_mod()
Xiubo Li (1):
ceph: avoid putting the realm twice when decoding snaps fails
Xu Kuohai (1):
bpf: Initialize same number of free nodes for each pcpu_freelist
Yang Jihong (1):
selftests/bpf: Fix test_progs compilation failure in 32-bit arch
Yang Yingliang (11):
scsi: scsi_transport_sas: Fix error handling in sas_phy_add()
siox: fix possible memory leak in siox_device_add()
ata: libata-transport: fix double ata_host_put() in ata_tport_add()
ata: libata-transport: fix error handling in ata_tport_add()
ata: libata-transport: fix error handling in ata_tlink_add()
ata: libata-transport: fix error handling in ata_tdev_add()
mISDN: fix possible memory leak in mISDN_dsp_element_register() xen/pcpu: fix possible memory leak in register_pcpu()
iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init()
scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus()
Yann Gautier (1):
mmc: core: properly select voltage range without power cycle
Yi Yang (1):
rethook: fix a potential memleak in rethook_alloc()
Yifan Zhang (1):
drm/amdgpu: set fb_modifiers_not_supported in vkms
Yiqing Yao (1):
drm/amdgpu: Adjust MES polling timeout for sriov
Yong Zhi (1):
ASoC: Intel: sof_rt5682: Add quirk for Rex board
Yu Zhe (1):
cxl/pmem: Use size_add() against integer overflow
Yuan Can (5):
net: hinic: Fix error handling in hinic_module_init()
net: ionic: Fix error handling in ionic_init_module()
net: ena: Fix error handling in ena_init()
net: thunderbolt: Fix error handling in tbnet_init()
scsi: scsi_debug: Fix possible UAF in sdebug_add_host_helper()
Zeng Heng (1):
pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map
Zhang Qilong (4):
ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe"
ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe"
ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe"
ASoC: mt6660: Keep the pm_runtime enables before component stuff in mt6660_i2c_probe
Zhang Xiaoxu (2):
cifs: Fix connections leak when tlink setup failed
cifs: Fix wrong return value checking when GETFLAGS
Zheng Bin (1):
slimbus: qcom-ngd: Fix build error when CONFIG_SLIM_QCOM_NGD_CTRL=y && CONFIG_QCOM_RPROC_COMMON=m
Zheng Yejian (1):
tracing: Fix potential null-pointer-access of entry in list 'tr->err_log'
Zhengchao Shao (2):
net: liquidio: release resources when liquidio driver open failed
net: caif: fix double disconnect client in chnl_net_open()
Zhihao Cheng (1):
dm bufio: Fix missing decrement of no_sleep_enabled if dm_bufio_client_create failed
Ziyang Xuan (4):
octeon_ep: delete unnecessary napi rollback under set_queues_err in octep_open()
octeon_ep: ensure octep_get_link_status() successfully before octep_link_up()
octeon_ep: fix potential memory leak in octep_device_setup()
octeon_ep: ensure get mac address successfully before eth_hw_addr_set()
linkt (1):
ASoC: amd: yc: Adding Lenovo ThinkBook 14 Gen 4+ ARA and Lenovo ThinkBook 16 Gen 4+ ARA to the Quirks List
Đoàn Trần Công Danh (1):
speakup: replace utils' u_char with unsigned char