Skip to content

Commit

Permalink
Merge tag 'v5.10.219' into 5.10-main
Browse files Browse the repository at this point in the history
This is the 5.10.219 stable release

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmZuzl4ACgkQONu9yGCS
# aT7+ohAAyRkTis6xeME1FWIJthCJl8FzUq9nfN+OccK3TwCbXyZKXlZK8lVz0T5U
# DvG1Tg+rR76+hIJghMIy2FEPRBA19WMq9a+Ms2ZyyggPrlgksFivO8N8YgnIxabb
# EJPN7pAzO+GA+vd8YeGeK1ldq8QUISlN35s+hkur1jeBctWRcpHeOTjIej/Qytmj
# ny1o7hCp179+SPygSEYEYtguACaQflhfBjOgAQ9DwWjP6vO2W9Vb16X4tiT0udHm
# ExPjOwxbEMN/7m9gKrnl6WcIROSOy55FnfcYZP+NRY4jBlANUgXF1ca9hAhcIKSv
# oOyeRN5S3FZAdxIHG9SFU9b6MPwJSeO5ETQyfiRGNFRkXOa2tKknNSsuACu8kSwx
# SKJIpcuW1DkortwsYFbilXdl6TrK6oCcEczV5qtludcRoDznfUGejb5e81v3yYkO
# no6ORvBJSBnEObY+gpexvxQp2Ae1+YkSLJaDzYWMC+JHBIgWTz2F2qJJkP6bRAUV
# QduFTdTenDnL7zW3DseZGJKotU95cUoKNAwa7wfboZeygHc2+KaUOchKcqI0P9dZ
# pS27RzcAJJ2uufujofyxOOhzFKw98WFurfNsMZTDBwHuqReoiRAS7pi0PeTMuqUv
# GC8V1eIKgeWdI+pdTZLXylziiM41IylLjU/hxCrsykb+EwFa5NY=
# =B1lK
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun Jun 16 13:37:02 2024 CEST
# gpg:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
# gpg: Can't check signature: No public key
  • Loading branch information
frank-w committed Aug 11, 2024
2 parents 4fc2645 + a2ed160 commit a5aab4d
Show file tree
Hide file tree
Showing 299 changed files with 2,650 additions and 1,755 deletions.
6 changes: 6 additions & 0 deletions Documentation/devicetree/bindings/sound/rt5645.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ Optional properties:
a GPIO spec for the external headphone detect pin. If jd-mode = 0,
we will get the JD status by getting the value of hp-detect-gpios.

- cbj-sleeve-gpios:
a GPIO spec to control the external combo jack circuit to tie the sleeve/ring2
contacts to the ground or floating. It could avoid some electric noise from the
active speaker jacks.

- realtek,in2-differential
Boolean. Indicate MIC2 input are differential, rather than single-ended.

Expand Down Expand Up @@ -68,6 +73,7 @@ codec: rt5650@1a {
compatible = "realtek,rt5650";
reg = <0x1a>;
hp-detect-gpios = <&gpio 19 0>;
cbj-sleeve-gpios = <&gpio 20 0>;
interrupt-parent = <&gpio>;
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
realtek,dmic-en = "true";
Expand Down
10 changes: 5 additions & 5 deletions Documentation/driver-api/fpga/fpga-bridge.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ FPGA Bridge
API to implement a new FPGA bridge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* struct fpga_bridge The FPGA Bridge structure
* struct fpga_bridge_ops Low level Bridge driver ops
* devm_fpga_bridge_create() Allocate and init a bridge struct
* fpga_bridge_register() Register a bridge
* fpga_bridge_unregister() Unregister a bridge
* struct fpga_bridge - The FPGA Bridge structure
* struct fpga_bridge_ops - Low level Bridge driver ops
* devm_fpga_bridge_create() - Allocate and init a bridge struct
* fpga_bridge_register() - Register a bridge
* fpga_bridge_unregister() - Unregister a bridge

.. kernel-doc:: include/linux/fpga/fpga-bridge.h
:functions: fpga_bridge
Expand Down
12 changes: 6 additions & 6 deletions Documentation/driver-api/fpga/fpga-mgr.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,12 @@ in state.
API for implementing a new FPGA Manager driver
----------------------------------------------

* ``fpga_mgr_states`` Values for :c:expr:`fpga_manager->state`.
* struct fpga_manager the FPGA manager struct
* struct fpga_manager_ops Low level FPGA manager driver ops
* devm_fpga_mgr_create() Allocate and init a manager struct
* fpga_mgr_register() Register an FPGA manager
* fpga_mgr_unregister() Unregister an FPGA manager
* ``fpga_mgr_states`` - Values for :c:expr:`fpga_manager->state`.
* struct fpga_manager - the FPGA manager struct
* struct fpga_manager_ops - Low level FPGA manager driver ops
* devm_fpga_mgr_create() - Allocate and init a manager struct
* fpga_mgr_register() - Register an FPGA manager
* fpga_mgr_unregister() - Unregister an FPGA manager

.. kernel-doc:: include/linux/fpga/fpga-mgr.h
:functions: fpga_mgr_states
Expand Down
8 changes: 4 additions & 4 deletions Documentation/driver-api/fpga/fpga-programming.rst
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ will generate that list. Here's some sample code of what to do next::
API for programming an FPGA
---------------------------

* fpga_region_program_fpga() Program an FPGA
* fpga_image_info() Specifies what FPGA image to program
* fpga_image_info_alloc() Allocate an FPGA image info struct
* fpga_image_info_free() Free an FPGA image info struct
* fpga_region_program_fpga() - Program an FPGA
* fpga_image_info() - Specifies what FPGA image to program
* fpga_image_info_alloc() - Allocate an FPGA image info struct
* fpga_image_info_free() - Free an FPGA image info struct

.. kernel-doc:: drivers/fpga/fpga-region.c
:functions: fpga_region_program_fpga
Expand Down
33 changes: 21 additions & 12 deletions Documentation/driver-api/fpga/fpga-region.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,25 @@ An example of usage can be seen in the probe function of [#f2]_.
API to add a new FPGA region
----------------------------

* struct fpga_region — The FPGA region struct
* devm_fpga_region_create() — Allocate and init a region struct
* fpga_region_register() — Register an FPGA region
* fpga_region_unregister() — Unregister an FPGA region
* struct fpga_region - The FPGA region struct
* struct fpga_region_info - Parameter structure for __fpga_region_register_full()
* __fpga_region_register_full() - Create and register an FPGA region using the
fpga_region_info structure to provide the full flexibility of options
* __fpga_region_register() - Create and register an FPGA region using standard
arguments
* fpga_region_unregister() - Unregister an FPGA region

Helper macros ``fpga_region_register()`` and ``fpga_region_register_full()``
automatically set the module that registers the FPGA region as the owner.

The FPGA region's probe function will need to get a reference to the FPGA
Manager it will be using to do the programming. This usually would happen
during the region's probe function.

* fpga_mgr_get() Get a reference to an FPGA manager, raise ref count
* of_fpga_mgr_get() Get a reference to an FPGA manager, raise ref count,
* fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count
* of_fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count,
given a device node.
* fpga_mgr_put() Put an FPGA manager
* fpga_mgr_put() - Put an FPGA manager

The FPGA region will need to specify which bridges to control while programming
the FPGA. The region driver can build a list of bridges during probe time
Expand All @@ -66,20 +72,23 @@ the list of bridges to program just before programming
(:c:expr:`fpga_region->get_bridges`). The FPGA bridge framework supplies the
following APIs to handle building or tearing down that list.

* fpga_bridge_get_to_list() Get a ref of an FPGA bridge, add it to a
* fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
list
* of_fpga_bridge_get_to_list() Get a ref of an FPGA bridge, add it to a
* of_fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
list, given a device node
* fpga_bridges_put() Given a list of bridges, put them
* fpga_bridges_put() - Given a list of bridges, put them

.. kernel-doc:: include/linux/fpga/fpga-region.h
:functions: fpga_region

.. kernel-doc:: include/linux/fpga/fpga-region.h
:functions: fpga_region_info

.. kernel-doc:: drivers/fpga/fpga-region.c
:functions: devm_fpga_region_create
:functions: __fpga_region_register_full

.. kernel-doc:: drivers/fpga/fpga-region.c
:functions: fpga_region_register
:functions: __fpga_region_register

.. kernel-doc:: drivers/fpga/fpga-region.c
:functions: fpga_region_unregister
Expand Down
36 changes: 36 additions & 0 deletions Documentation/filesystems/f2fs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,14 @@ compress_extension=%s Support adding specified extension, so that f2fs can enab
For other files, we can still enable compression via ioctl.
Note that, there is one reserved special extension '*', it
can be set to enable compression for all files.
compress_chksum Support verifying chksum of raw data in compressed cluster.
compress_mode=%s Control file compression mode. This supports "fs" and "user"
modes. In "fs" mode (default), f2fs does automatic compression
on the compression enabled files. In "user" mode, f2fs disables
the automaic compression and gives the user discretion of
choosing the target file and the timing. The user can do manual
compression/decompression on the compression enabled files using
ioctls.
inlinecrypt When possible, encrypt/decrypt the contents of encrypted
files using the blk-crypto framework rather than
filesystem-layer encryption. This allows the use of
Expand Down Expand Up @@ -810,6 +818,34 @@ Compress metadata layout::
| data length | data chksum | reserved | compressed data |
+-------------+-------------+----------+----------------------------+

Compression mode
--------------------------

f2fs supports "fs" and "user" compression modes with "compression_mode" mount option.
With this option, f2fs provides a choice to select the way how to compress the
compression enabled files (refer to "Compression implementation" section for how to
enable compression on a regular inode).

1) compress_mode=fs
This is the default option. f2fs does automatic compression in the writeback of the
compression enabled files.

2) compress_mode=user
This disables the automaic compression and gives the user discretion of choosing the
target file and the timing. The user can do manual compression/decompression on the
compression enabled files using F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE
ioctls like the below.

To decompress a file,

fd = open(filename, O_WRONLY, 0);
ret = ioctl(fd, F2FS_IOC_DECOMPRESS_FILE);

To compress a file,

fd = open(filename, O_WRONLY, 0);
ret = ioctl(fd, F2FS_IOC_COMPRESS_FILE);

NVMe Zoned Namespace devices
----------------------------

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 10
SUBLEVEL = 218
SUBLEVEL = 219
EXTRAVERSION =
NAME = Dare mighty things

Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
gic: interrupt-controller@f1001000 {
compatible = "arm,gic-400";
reg = <0x0 0xf1001000 0x0 0x1000>, /* GICD */
<0x0 0xf1002000 0x0 0x100>; /* GICC */
<0x0 0xf1002000 0x0 0x2000>; /* GICC */
#address-cells = <0>;
#interrupt-cells = <3>;
interrupt-controller;
Expand Down
4 changes: 2 additions & 2 deletions arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124";

aliases {
rtc0 = "/i2c@7000d000/as3722@40";
rtc1 = "/rtc@7000e000";
rtc0 = &as3722;
rtc1 = &tegra_rtc;
serial0 = &uarta;
};

Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/boot/dts/nvidia/tegra132.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@
status = "disabled";
};

rtc@7000e000 {
tegra_rtc: rtc@7000e000 {
compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
reg = <0x0 0x7000e000 0x0 0x100>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
vddrf-supply = <&vreg_l1_1p3>;
vddch0-supply = <&vdd_ch0_3p3>;

local-bd-address = [ 02 00 00 00 5a ad ];
local-bd-address = [ 00 00 00 00 00 00 ];

max-speed = <3200000>;
};
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/include/asm/asm-bug.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
14470: .long 14471f - 14470b; \
_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
.short flags; \
.align 2; \
.popsection; \
14471:
#else
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/kvm/guest.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
case PSR_AA32_MODE_SVC:
case PSR_AA32_MODE_ABT:
case PSR_AA32_MODE_UND:
case PSR_AA32_MODE_SYS:
if (!vcpu_el1_is_32bit(vcpu))
return -EINVAL;
break;
Expand Down
4 changes: 3 additions & 1 deletion arch/m68k/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,9 @@ resume:
movec %a0,%dfc

/* restore status register */
movew %a1@(TASK_THREAD+THREAD_SR),%sr
movew %a1@(TASK_THREAD+THREAD_SR),%d0
oriw #0x0700,%d0
movew %d0,%sr

rts

Expand Down
36 changes: 18 additions & 18 deletions arch/m68k/mac/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -452,30 +452,18 @@ void mac_poweroff(void)

void mac_reset(void)
{
if (macintosh_config->adb_type == MAC_ADB_II &&
macintosh_config->ident != MAC_MODEL_SE30) {
/* need ROMBASE in booter */
/* indeed, plus need to MAP THE ROM !! */

if (mac_bi_data.rombase == 0)
mac_bi_data.rombase = 0x40800000;

/* works on some */
rom_reset = (void *) (mac_bi_data.rombase + 0xa);

local_irq_disable();
rom_reset();
#ifdef CONFIG_ADB_CUDA
} else if (macintosh_config->adb_type == MAC_ADB_EGRET ||
macintosh_config->adb_type == MAC_ADB_CUDA) {
if (macintosh_config->adb_type == MAC_ADB_EGRET ||
macintosh_config->adb_type == MAC_ADB_CUDA) {
cuda_restart();
} else
#endif
#ifdef CONFIG_ADB_PMU
} else if (macintosh_config->adb_type == MAC_ADB_PB2) {
if (macintosh_config->adb_type == MAC_ADB_PB2) {
pmu_restart();
} else
#endif
} else if (CPU_IS_030) {

if (CPU_IS_030) {
/* 030-specific reset routine. The idea is general, but the
* specific registers to reset are '030-specific. Until I
* have a non-030 machine, I can't test anything else.
Expand Down Expand Up @@ -523,6 +511,18 @@ void mac_reset(void)
"jmp %/a0@\n\t" /* jump to the reset vector */
".chip 68k"
: : "r" (offset), "a" (rombase) : "a0");
} else {
/* need ROMBASE in booter */
/* indeed, plus need to MAP THE ROM !! */

if (mac_bi_data.rombase == 0)
mac_bi_data.rombase = 0x40800000;

/* works on some */
rom_reset = (void *)(mac_bi_data.rombase + 0xa);

local_irq_disable();
rom_reset();
}

/* should never get here */
Expand Down
1 change: 0 additions & 1 deletion arch/microblaze/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ ifdef CONFIG_FUNCTION_TRACER
# Do not trace early boot code and low level code
CFLAGS_REMOVE_timer.o = -pg
CFLAGS_REMOVE_intc.o = -pg
CFLAGS_REMOVE_early_printk.o = -pg
CFLAGS_REMOVE_ftrace.o = -pg
CFLAGS_REMOVE_process.o = -pg
endif
Expand Down
2 changes: 1 addition & 1 deletion arch/microblaze/kernel/cpu/cpuinfo-static.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ static const char family_string[] = CONFIG_XILINX_MICROBLAZE0_FAMILY;
static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;

#define err_printk(x) \
early_printk("ERROR: Microblaze " x "-different for kernel and DTS\n");
pr_err("ERROR: Microblaze " x "-different for kernel and DTS\n");

void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu)
{
Expand Down
1 change: 1 addition & 0 deletions arch/parisc/kernel/parisc_ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ EXPORT_SYMBOL(memset);
#include <linux/atomic.h>
EXPORT_SYMBOL(__xchg8);
EXPORT_SYMBOL(__xchg32);
EXPORT_SYMBOL(__cmpxchg_u8);
EXPORT_SYMBOL(__cmpxchg_u32);
EXPORT_SYMBOL(__cmpxchg_u64);
#ifdef CONFIG_SMP
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/include/asm/hvcall.h
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ struct hvcall_mpp_data {
unsigned long backing_mem;
};

int h_get_mpp(struct hvcall_mpp_data *);
long h_get_mpp(struct hvcall_mpp_data *mpp_data);

struct hvcall_mpp_x_data {
unsigned long coalesced_bytes;
Expand Down
6 changes: 3 additions & 3 deletions arch/powerpc/platforms/pseries/lpar.c
Original file line number Diff line number Diff line change
Expand Up @@ -1883,10 +1883,10 @@ void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf)
* h_get_mpp
* H_GET_MPP hcall returns info in 7 parms
*/
int h_get_mpp(struct hvcall_mpp_data *mpp_data)
long h_get_mpp(struct hvcall_mpp_data *mpp_data)
{
int rc;
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
long rc;

rc = plpar_hcall9(H_GET_MPP, retbuf);

Expand Down
6 changes: 3 additions & 3 deletions arch/powerpc/platforms/pseries/lparcfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,8 @@ struct hvcall_ppp_data {
*/
static unsigned int h_get_ppp(struct hvcall_ppp_data *ppp_data)
{
unsigned long rc;
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
long rc;

rc = plpar_hcall9(H_GET_PPP, retbuf);

Expand Down Expand Up @@ -192,7 +192,7 @@ static void parse_ppp_data(struct seq_file *m)
struct hvcall_ppp_data ppp_data;
struct device_node *root;
const __be32 *perf_level;
int rc;
long rc;

rc = h_get_ppp(&ppp_data);
if (rc)
Expand Down
2 changes: 2 additions & 0 deletions arch/powerpc/sysdev/fsl_msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,10 +573,12 @@ static const struct fsl_msi_feature ipic_msi_feature = {
.msiir_offset = 0x38,
};

#ifdef CONFIG_EPAPR_PARAVIRT
static const struct fsl_msi_feature vmpic_msi_feature = {
.fsl_pic_ip = FSL_PIC_IP_VMPIC,
.msiir_offset = 0,
};
#endif

static const struct of_device_id fsl_of_msi_ids[] = {
{
Expand Down
Loading

0 comments on commit a5aab4d

Please sign in to comment.